连接到Oracle:CodeIgniter与Laravel

时间:2013-09-18 19:30:41

标签: php oracle codeigniter laravel

我一直在寻找我正在开发的项目的PHP框架。其中一个主要要求是与数据库交互的简便方法。最初这必须是Oracle,但将来有可能切换到不同的数据库后端。因此,我希望能够编写尽可能与数据库无关的代码。

我最初倾向于CodeIgniter,主要是因为它支持Oracle(它包括为了利用Oracle自己的OCI8驱动程序而编写的驱动程序)。

Laravel是我考虑过的另一种选择。它似乎是一个受欢迎的选项,即使对于一些以前的CodeIgniter用户(例如,请参阅this answer)。但是,它的Oracle支持似乎非常有限;据我所知,Laravel广泛使用PDO,但是PDO for Oracle是experimental and not recommended

有一种简单的方法可以使用Laravel以数据库无关的方式连接到Oracle吗?

2 个答案:

答案 0 :(得分:11)

在研究了fideloper提供的链接后,看起来有些有用的编码器继续为Oracle开发一个PDO用户空间驱动程序,它利用了原生的OCI8 PHP驱动程序功能。

根据this website,可以使用composer:

将其安装在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可以使用Eloquent等以数据库无关的方式访问Oracle。我已经给出了一些似乎运行良好的基本测试。

答案 1 :(得分:3)

我不确定这会解决所有问题,但this packagist library应该让Oracle与Laravel合作。

但请注意OCI8 may still present an issue:/