Подтвердить что ты не робот

Могу ли я использовать автономный уровень базы данных Laravel?

В течение некоторого времени я искал использование PHP-платформы для своей работы. Я писал процедурный стиль до недавнего времени и все еще пытаюсь найти способ обойти мир/стиль. Я понял, что PHP-платформа поможет мне написать лучший код, и я уверен, что буду склоняться к проекту Laravel в ближайшем будущем.

Сейчас я нуждаюсь в уровне базы данных, который я могу использовать в своем существующем коде. Я использую mysqli с подготовленными операторами прямо сейчас, поскольку это было легко для меня реализовать (используя MySQL раньше).

Я рассматривал http://medoo.in как "простой" способ использования оболочки/класса pdo, но отсутствие активности на странице поддержки и тот факт, что я работаю над использованием Laravel в будущем, заставило меня задаться вопросом, могу ли я теперь использовать слой базы данных Laravel для моего существующего кода.

Может ли это быть сделано, и будет ли это иметь смысл, или я не понимаю и смешиваю концепции стилизации кода?

4b9b3361

Ответ 1

IMO это абсолютно верно для перехода к подходу ООП шаг за шагом.

На ваш вопрос:

Да, вы можете использовать Eloquent standalone.

Вот сайт packagist: https://packagist.org/packages/illuminate/database Добавьте "illuminate/database": "5.0.*@dev" к вашему composer.json и запустите composer update. Теперь вам нужно загрузиться с помощью Eloquent. (https://github.com/illuminate/database)

Скопировано из файла repo readme:

Инструкции по использованию

Сначала создайте новый экземпляр менеджера "Капсула". Капсула стремится максимально упростить настройку библиотеки для использования за пределами рамки 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 был зарегистрирован. Вы можете использовать его так:

Использование построителя запросов

$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();
});

Использование ярко выраженного ORM

class User extends Illuminate\Database\Eloquent\Model {}

$users = User::where('votes', '>', 1)->get();

Для получения дополнительной документации по использованию различных средств баз данных, предоставляемых этой библиотекой, обратитесь к документации по инфраструктуре Laravel.

Ответ 2

Бастиан ответ довольно хорошо. Но есть еще одна вещь. Это не может работать без Event Lib. Установить его;

composer require illuminate/events

Ты хорош идти