В течение некоторого времени я искал использование PHP-рамки для своей работы. Я писал процедурный стиль до недавнего времени и все еще пытаюсь найти способ обойти мир / стиль. Я понял, что PHP-платформа поможет мне написать лучший код, и я уверен, что буду склоняться к проекту Laravel в ближайшем будущем.
Сейчас я нуждаюсь в уровне базы данных, который я могу использовать в своем существующем коде. Я использую mysqli с подготовленными операторами прямо сейчас, так как мне было легко реализовать (используя MySQL раньше).
Я рассматривал http://medoo.in как «простой» способ использования оболочки / класса pdo, но отсутствие активности на странице поддержки и тот факт, что я работаю над использованием Laravel в будущем , заставил меня задаться вопросом, могу ли я теперь использовать слой базы данных Laravel для моего существующего кода.
Может ли это быть сделано, и будет ли это иметь смысл, или я не понимаю и смешиваю концепции стилизации кода?
ИМО абсолютно верно для перехода к подходу ООП шаг за шагом.
На ваш вопрос:
Да, вы можете использовать Eloquent отдельно.
Вот сайт packagist: https://packagist.org/packages/illuminate/database Добавьте "illuminate/database": "5.0.*@dev"
на ваш composer.json
и запустите composer update
. Теперь вам нужно загрузиться с помощью Eloquent. ( https://github.com/illuminate/database )
Из файла репо копируется копия:
Инструкции по использованию
Сначала создайте новый экземпляр менеджера «Capsule». Капсула стремится максимально упростить настройку библиотеки для использования вне рамок Laravel.
use Illuminate\Database\Capsule\Manager as Capsule; $capsule = new Capsule; $capsule->addConnection([ 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'database', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ]); // Set the event dispatcher used by Eloquent models... (optional) use Illuminate\Events\Dispatcher; use Illuminate\Container\Container; $capsule->setEventDispatcher(new Dispatcher(new Container)); // Set the cache manager instance used by connections... (optional) $capsule->setCacheManager(...); // Make this Capsule instance available globally via static methods... (optional) $capsule->setAsGlobal(); // Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher()) $capsule->bootEloquent();
Как только экземпляр Capsule был зарегистрирован. Вы можете использовать его так:
Использование Query Builder
$users = Capsule::table('users')->where('votes', '>', 100)->get();
К другим основным методам можно получить доступ непосредственно из капсулы так же, как и к фазе БД:
$results = Capsule::select('select * from users where id = ?', array(1));
Использование построителя схем
Capsule::schema()->create('users', function($table) { $table->increments('id'); $table->string('email')->unique(); $table->timestamps(); });
Использование Яркому ОРМ
class User extends Illuminate\Database\Eloquent\Model {} $users = User::where('votes', '>', 1)->get();
Для получения дополнительной документации по использованию различных средств баз данных, предоставляемых этой библиотекой, обратитесь к документации по инфраструктуре Laravel.