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

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

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

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

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

2 ответов


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

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


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

по данным этот сайт это может быть установлено в Laravel с помощью composer:

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

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

и затем выполнить:

composer update

раз Composer установил или обновил пакеты, необходимые для регистрации поставщика услуг. Откройте приложение/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 в базе данных агностическим способом, используя красноречивый и т. д. Я дал этому некоторое базовое тестирование, кажется, работает хорошо.