Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Однако разработчики фреймворка явно не рассчитывали на то, что количество поддерживаемых СУБД может расширяться за счёт сторонних пакетов. Об этом говорит то, что в классе фабрик подключений Illuminate\Database\Connectors\ConnectionFactory имена классов подключений перечислены явно.
Вы не правы. Не до конца разобрались. За непосредственно работу с подключениями отвечает DatabaseManager implements ConnectionResolverInterface. Он уже в свою очередь использует ConnectionFactory, которая содержет работу с встроенными (доступными из коробки) типами подключений. но стоит посмотреть на метод makeConnection (https://github.com/laravel/framework/blob/5.3/src/Illuminate/Database/DatabaseManager.php#L156-L177) Видим что тут есть проверка на наличие экстеншена, и только потом если его нет то идет обращение к стандартной фактори.
т.е. у вас в коде сервис провайдера должно быть что то вроде
<?php
/...
$this->app->extend('db', function (DatabaseManager $manager) {
return $manager->extend('firebird', function() {
return new FirebirdConnector;
});
});А почему не jacquestvanzuydam/laravel-firebird? Я знаю чем он не нравится мне, но чем он не подошел вам?
Добавление поддержки СУБД Firebird в фреймворк Laravel