yajra / laravel-oci8
Laravel 通过 OCI8 的 Oracle 数据库驱动
Requires
- php: ^8.2
- ext-oci8: >=3.0.1
- ext-pdo: *
- illuminate/database: ^11.15.0
- illuminate/pagination: ^11.15.0
- illuminate/support: ^11.15.0
- illuminate/validation: ^11.15.0
- yajra/laravel-pdo-via-oci8: ^3.4.4
Requires (Dev)
- mockery/mockery: ^1.6.12
- orchestra/testbench: ^9.1.2
- phpunit/phpunit: ^10.5|^11.2.7
- dev-master / 11.x-dev
- v11.6.2
- v11.6.1
- v11.6.0
- v11.5.1
- v11.5.0
- v11.4.1
- v11.4.0
- v11.3.0
- v11.2.5
- v11.2.4
- v11.2.3
- v11.2.2
- v11.2.1
- v11.2.0
- v11.1.0
- v11.0.0
- 10.x-dev
- v10.6.0
- v10.5.3
- v10.5.2
- v10.5.1
- v10.5.0
- v10.4.4
- v10.4.3
- v10.4.2
- v10.4.1
- v10.4.0
- v10.3.4
- v10.3.3
- v10.3.2
- v10.3.1
- v10.3.0
- v10.2.0
- v10.1.0
- v10.0.0
- 9.x-dev
- v9.5.4
- v9.5.3
- v9.5.2
- v9.5.1
- v9.5.0
- v9.4.0
- v9.3.1
- v9.3.0
- v9.2.1
- v9.2.0
- v9.1.0
- v9.0.4
- v9.0.3
- v9.0.2
- v9.0.1
- v9.0.0
- 8.x-dev
- v8.8.0
- v8.7.0
- v8.6.3
- v8.6.2
- v8.6.1
- v8.6.0
- v8.5.0
- v8.4.1
- v8.4.0
- v8.3.0
- v8.2.3
- v8.2.2
- v8.2.1
- v8.2.0
- v8.1.3
- v8.1.2
- v8.1.1
- v8.1.0
- v8.0.1
- v8.0.0
- 7.x-dev
- v7.1.1
- v7.1.0
- v7.0.2
- v7.0.1
- v7.0.0
- 6.x-dev
- v6.1.3
- v6.1.2
- v6.1.1
- v6.1.0
- v6.0.4
- v6.0.3
- v6.0.2
- v6.0.1
- v6.0.0
- 5.8.x-dev
- v5.8.4
- v5.8.3
- v5.8.2
- v5.8.1
- v5.8.0
- 5.7.x-dev
- v5.7.4
- v5.7.3
- v5.7.2
- v5.7.1
- v5.7.0
- 5.6.x-dev
- v5.6.5
- v5.6.4
- v5.6.3
- v5.6.2
- v5.6.1
- v5.6.0
- 5.5.x-dev
- v5.5.9
- v5.5.8
- v5.5.7
- v5.5.6
- v5.5.5
- v5.5.4
- v5.5.3
- v5.5.2
- v5.5.1
- v5.5.0
- 5.4.x-dev
- v5.4.21
- v5.4.20
- v5.4.19
- v5.4.18
- v5.4.17
- v5.4.16
- v5.4.15
- v5.4.14
- v5.4.13
- v5.4.12
- v5.4.11
- v5.4.10
- v5.4.9
- v5.4.8
- v5.4.7
- v5.4.6
- v5.4.5
- v5.4.4
- v5.4.3
- v5.4.2
- v5.4.1
- v5.4.0
- 5.3.x-dev
- v5.3.9
- v5.3.8
- v5.3.7
- v5.3.6
- v5.3.5
- v5.3.4
- v5.3.3
- v5.3.2
- v5.3.1
- v5.3.0
- 5.2.x-dev
- v5.2.14
- v5.2.13
- v5.2.12
- v5.2.11
- v5.2.10
- v5.2.9
- v5.2.8
- v5.2.7
- v5.2.6
- v5.2.5
- v5.2.4
- v5.2.3
- v5.2.2
- v5.2.1
- v5.2.0
- 5.1.x-dev
- v5.1.4
- v5.1.3
- v5.1.2
- v5.1.1
- v5.1.0
- v4.2.6
- v4.2.5
- v4.2.4
- v4.2.3
- v4.2.2
- v4.2.1
- v4.1.2
- v4.1.1
- v4.1.0
- 4.0.x-dev
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- v4.0.0-RC1.1
- v4.0.0-RC1
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- 3.0.x-dev
- v3.0.0
- 2.4.x-dev
- v2.4.10
- v2.4.9
- v2.4.8
- v2.4.7
- v2.4.6
- v2.4.5
- v2.4.4
- v2.4.3
- v2.4.2
- v2.4.1
- v2.4.0
- v2.3.1
- v2.3.0
- v2.2.0
- v2.1.8
- v2.1.7
- v2.1.6
- v2.1.5
- v2.1.4.2
- v2.1.4.1
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v2.0.0.beta
- 1.15.x-dev
- v1.15.0
- v1.14.1
- v1.14.0
- v1.13.0
- v1.12.0
- v1.11.0
- v1.10.3
- v1.10.2
- v1.10.1
- v1.10.0
- v1.9.0
- v1.8.0
- v1.7.0
- v1.6.4
- v1.6.3
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.12
- v1.5.11
- v1.5.10
- v1.5.9
- v1.5.8
- v1.5.7
- v1.5.6
- v1.5.5
- v1.5.4
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.6
- v1.4.5
- v1.4.4
- v1.4.3
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.1
- v1.3.0
- v1.2.0
- v1.1.1
- 1.1.0
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.3.0
- 0.2.29
- 0.2.28
- 0.2.27
- 0.2.26
- 0.2.25
- 0.2.24
- 0.2.23
- 0.2.22
- 0.2.21
- 0.2.20
- 0.2.19
- 0.2.18
- 0.2.17
- 0.2.16
- 0.2.15
- 0.2.14
- 0.2.13
- 0.2.12
- 0.2.11
- 0.2.10
- 0.2.9
- 0.2.8
- 0.2.7
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-pr/878
- dev-fix-ci-unique-index
- dev-analysis-0gN4Lm
- dev-phpstan
This package is auto-updated.
Last update: 2024-09-10 05:28:43 UTC
README
Laravel-OCI8
Laravel-OCI8 是 Laravel 的 Oracle 数据库驱动包。它通过使用 OCI8 扩展与 Oracle 通信,是 Illuminate/Database 的扩展。感谢 @taylorotwell。
文档
- 您可以在以下位置找到友好且更新的文档: Laravel-OCI8 文档
- 关于 Oracle 和 PHP 的所有信息:地下 PHP 和 Oracle 手册
Laravel 版本兼容性
快速安装
composer require yajra/laravel-oci8:^11
服务提供者(Laravel 5.5+ 可选)
一旦 Composer 安装或更新了您的包,您需要注册 Laravel-OCI8。打开 config/app.php
并找到 providers 键,然后添加
Yajra\Oci8\Oci8ServiceProvider::class,
配置(可选)
最后,您可以选择运行以下 Artisan 命令来发布配置文件。如果不发布配置文件,包将自动使用您的 .env
文件中数据库配置声明的值。
php artisan vendor:publish --tag=oracle
这将把配置文件复制到 config/oracle.php
。
注意:对于 Laravel Lumen 配置,请确保您的项目中有
config/database.php
文件,并将以下配置附加到其中
'oracle' => [ 'driver' => 'oracle', 'tns' => env('DB_TNS', ''), 'host' => env('DB_HOST', ''), 'port' => env('DB_PORT', '1521'), 'database' => env('DB_DATABASE', ''), 'service_name' => env('DB_SERVICE_NAME', ''), 'username' => env('DB_USERNAME', ''), 'password' => env('DB_PASSWORD', ''), 'charset' => env('DB_CHARSET', 'AL32UTF8'), 'prefix' => env('DB_PREFIX', ''), 'prefix_schema' => env('DB_SCHEMA_PREFIX', ''), 'edition' => env('DB_EDITION', 'ora$base'), 'server_version' => env('DB_SERVER_VERSION', '11g'), 'load_balance' => env('DB_LOAD_BALANCE', 'yes'), 'dynamic' => [], 'max_name_len' => env('ORA_MAX_NAME_LEN', 30), ],
然后,您可以在您的
.env
文件中设置连接数据
DB_CONNECTION=oracle DB_HOST=oracle.host DB_PORT=1521 DB_SERVICE_NAME=orcl DB_DATABASE=xe DB_USERNAME=hr DB_PASSWORD=hr
如果您要连接到包含多个主机的集群,您可以手动设置
tns
或将主机设置为逗号分隔的数组,并根据需要配置其他字段
DB_CONNECTION=oracle DB_HOST=oracle1.host, oracle2.host DB_PORT=1521 DB_SERVICE_NAME=orcl DB_LOAD_BALANCE=no DB_DATABASE=xe DB_USERNAME=hr DB_PASSWORD=hr
如果您需要使用服务名称而不是 tns 连接,可以使用以下配置
'oracle' => [ 'driver' => 'oracle', 'host' => 'oracle.host', 'port' => '1521', 'database' => 'xe', 'service_name' => 'sid_alias', 'username' => 'hr', 'password' => 'hr', 'charset' => '', 'prefix' => '', ]
在某些情况下,您可能希望在您的应用程序中动态设置连接参数。例如,您可能需要访问多个数据库,或者您的用户已经在 Oracle 数据库上拥有自己的账户
'oracle' => [ 'driver' => 'oracle', 'host' => 'oracle.host', 'port' => '1521', 'service_name' => 'sid_alias', 'prefix' => 'schemaowner', 'dynamic' => [App\Models\Oracle\Config::class, 'dynamicConfig'], ]
您的应用程序中的回调函数必须是静态的,并接受对 $config[]
数组的引用(该数组将已包含配置文件中设置的值)
namespace App\Models\Oracle; class Config { public static function dynamicConfig(&$config) { if (Illuminate\Support\Facades\Auth::check()) { $config['username'] = App\Oracle\Config::getOraUser(); $config['password'] = App\Oracle\Config::getOraPass(); } } }
然后运行您的 Laravel 安装...
Oracle 最大名称长度
默认情况下,数据库对象名称限制为 30 个字符。要增加限制,您可以在您的 .env
文件中设置 ORA_MAX_NAME_LEN=128
。
注意:此配置需要 Oracle 12c02 或更高版本。
[Laravel 5.2++] Oracle 用户提供者
当使用 Oracle 时,我们可能会遇到认证问题,因为 Oracle 查询默认情况下是大小写敏感的。通过使用此 Oracle 用户提供者,我们现在将能够在登录和忘记密码失败时避免用户问题,因为这些是由于大小写敏感的搜索。
要使用,只需更新 auth.php
配置并设置驱动为 oracle
'providers' => [ 'users' => [ 'driver' => 'oracle', 'model' => App\User::class, ], ]
鸣谢
许可
麻省理工学院许可证(MIT)。请参阅许可证文件获取更多信息。