@naneri
PHP разработчик.

Где в Laravel подключается Eloquent?

Решил поизучать архитектуру Laravel - один из вопросов на которые не нашёл ответа: где в laravel подключается Eloquent?

Если его подрубить в другом фреймворке как библиотеку, его инициализация проходит так:
use Illuminate\Database\Capsule\Manager as Capsule;  

$capsule = new Capsule; 

$capsule->addConnection(array(
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => 'test',
    'username'  => 'test',
    'password'  => 'l4m3p455w0rd!',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => ''
));

$capsule->bootEloquent();


Но в самом Laravel я этого не нашёл.
  • Вопрос задан
  • 241 просмотр
Решения вопроса 1
Denormalization
@Denormalization
Там всё немного сложнее.

В Illuminate\Database\DatabaseServiceProvider регистрируется DatabaseManager, ConnectionFactory, и EloquentFactory. И потом они там сами друг друга любят.

Illuminate\Database\Capsule\Manager не используется в самом Laravel, он для внешних проектов придуман/
Illuminate\Database\Capsule\Manager по сути принимает DatabaseManager который в свою очередь принимает ConnectionFactory который и рулит подключением в зависимости от конфига.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AmdY
@AmdY
PHP и прочие вебштучки
С архитектурой laravel нужно быть аккуратным, там много плохих практик, которые используются для упрощения апи и синтаксического сахара.
В данном случае нужно копаться с контейнером laravel.com/docs/5.1/container чтобы понять как создаются и хранятся сервисы, как работает лараволовский фасад.
Есть хорошие слайды по паттернам внутри ларавел www.slideshare.net/sparksphill/software-design-pat...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы