【问题标题】:Connecting to Oracle: CodeIgniter vs Laravel连接到 Oracle:CodeIgniter 与 Laravel
【发布时间】:2013-09-23 17:07:55
【问题描述】:

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

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

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

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

【问题讨论】:

  • 当然:使用 Doctrine 处理数据库内容。或任何其他 ORM 层。

标签: php oracle codeigniter laravel


【解决方案1】:

在研究了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 并找到 providers 键并添加:

yajra\Oci8\Oci8ServiceProvider

最后,您需要使用驱动程序“pdo-via-oci8”设置有效的数据库配置。像往常一样配置您的连接:

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

然后 Laravel 可以使用 Eloquent 等以与数据库无关的方式访问 Oracle。我已经对此进行了一些基本测试,它似乎运行良好。

【讨论】:

  • 感谢测试和分享结果)
【解决方案2】:

我不确定这是否能解决所有问题,但 this packagist library 应该让 Oracle 与 Laravel 一起工作。

注意OCI8 may still present an issue,然而:/

【讨论】:

    猜你喜欢
    • 2015-03-08
    • 1970-01-01
    • 2019-06-27
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 2021-06-28
    • 2023-04-09
    相关资源
    最近更新 更多