Подключение к Oracle: CodeIgniter vs Laravel

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

Сначала я склонялся к CodeIgniter, главным образом из-за поддержки Oracle (в нем есть драйверы, написанные для использования собственных драйверов OCI8 от Oracle).

Laravel – еще одна альтернатива, которую я рассмотрел. Это популярный вариант, даже с некоторыми предыдущими пользователями CodeIgniter (например, см. Этот ответ ). Однако его поддержка Oracle кажется очень ограниченной; насколько я могу судить, Laravel широко использует PDO, но PDO для Oracle является экспериментальным и не рекомендуется .

Есть ли простой способ подключения к Oracle с использованием Laravel в агностической базе данных?

Я не уверен, что это решит все проблемы, но эта библиотека packagist должна заставить Oracle работать с Laravel.

Обратите внимание, что OCI8 все еще может представлять проблему : /

После изучения ссылки, предоставленной fideloper, похоже, что некоторые полезные кодеры (разработчики) продолжали разрабатывать драйвер пользовательского пространства PDO для Oracle, который использует преимущества встроенных функций драйвера PHP OCI8.

Согласно этому сайту, это можно установить в Laravel, используя композитор:

Добавьте yajra/laravel-oci8 как требование к composer.json :

 { "require": { "yajra/laravel-oci8": "*" } } 

А затем запустите:

 composer update 

После того, как Composer установил или обновил ваши пакеты, вам необходимо зарегистрировать поставщика услуг. Откройте приложение app / config / app.php и найдите ключ поставщика и добавьте:

 yajra\Oci8\Oci8ServiceProvider 

Наконец, вам нужно настроить действительную конфигурацию базы данных, используя драйвер «pdo-via-oci8». Настройте соединение, как обычно:

 'connection-name' => array( 'host' => 'something', 'port' => 'something', 'username' => 'something', 'password' => 'something', 'charset' => 'something', 'prefix' => 'something', ) 

Затем Laravel может получить доступ к Oracle в агностическом режиме базы данных с использованием Eloquent и т. Д. Я дал это базовое тестирование, похоже, что он работает хорошо.