Laravel-OCI8 es un paquete de controlador de base de datos Oracle para Laravel. Laravel-OCI8 es una extensión de Illuminate/Database que utiliza la extensión OCI8 para comunicarse con Oracle. Gracias a @taylorotwell.
Encontrará documentación actualizada y fácil de usar aquí: Laravel-OCI8 Docs
Todo sobre Oracle y PHP: El manual subterráneo de PHP y Oracle
Laravel | Paquete |
---|---|
5.1.x | 5.1.x |
5.2.x | 5.2.x |
5.3.x | 5.3.x |
5.4.x | 5.4.x |
5.5.x | 5.5.x |
5.6.x | 5.6.x |
5.7.x | 5.7.x |
5.8.x | 5.8.x |
6.x | 6.x |
7.x | 7.x |
8.x | 8.x |
9.x | 9.x |
10.x | 10.x |
11.x | 11.x |
el compositor requiere yajra/laravel-oci8:^11
Una vez que Composer haya instalado o actualizado sus paquetes, deberá registrar Laravel-OCI8. Abra config/app.php
, busque la clave de proveedores y agregue:
YajraOci8Oci8ServiceProvider::clase,
Finalmente, opcionalmente puede publicar un archivo de configuración ejecutando el siguiente comando Artisan. Si el archivo de configuración no se publica, el paquete utilizará automáticamente lo que se declara en la configuración de la base de datos del archivo .env
.
Proveedor artesanal de php: publicar --tag = oracle
Esto copiará el archivo de configuración a config/oracle.php
.
Nota: Para la configuración de Laravel Lumen, asegúrese de tener un archivo
config/database.php
en su proyecto y agregue la siguiente configuración:
'oracle' => ['driver' => 'oracle','tns' => env('DB_TNS', ''),'host' => env('DB_HOST', ''),'puerto' => env('DB_PORT', '1521'),'base de datos' => env('DB_DATABASE', ''),'nombre_servicio' => env('DB_SERVICE_NAME', ''),'nombre de usuario' => env('DB_USERNAME', ''),'contraseña' => env('DB_PASSWORD', ''),'charset' => env('DB_CHARSET', 'AL32UTF8'), 'prefijo' => env('DB_PREFIX', ''),'prefix_schema' => env('DB_SCHEMA_PREFIX', ''),'edición' => 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), ],
Luego, puede configurar los datos de conexión en sus archivos
.env
:
DB_CONNECTION=oracleDB_HOST=oracle.hostDB_PORT=1521DB_SERVICE_NAME=orclDB_DATABASE=xeDB_USERNAME=hrDB_PASSWORD=hr
Si desea conectarse a un clúster que contiene varios hosts, puede configurar
tns
manualmente o configurar el host como una matriz separada por comas y configurar otros campos como desee:
DB_CONNECTION=oracleDB_HOST=oracle1.host, oracle2.hostDB_PORT=1521DB_SERVICE_NAME=orclDB_LOAD_BALANCE=noDB_DATABASE=xeDB_USERNAME=hrDB_PASSWORD=hr
Si necesita conectarse con el nombre del servicio en lugar de tns, puede usar la siguiente configuración:
'oracle' => ['driver' => 'oracle','host' => 'oracle.host','port' => '1521','database' => 'xe','service_name' => ' sid_alias','nombre de usuario' => 'hr','contraseña' => 'hr','charset' => '','prefix' => '', ]
En algunos casos, es posible que desees configurar los parámetros de conexión dinámicamente en tu aplicación. Por ejemplo, puede acceder a más de una base de datos o es posible que sus usuarios ya tengan sus propias cuentas en la base de datos Oracle:
'oracle' => ['driver' => 'oracle','host' => 'oracle.host','port' => '1521','service_name' => 'sid_alias','prefix' => ' propietario del esquema','dynamic' => [AppModelsOracleConfig::class, 'dynamicConfig'], ]
La función de devolución de llamada en su aplicación debe ser estática y aceptar una referencia a la matriz $config[]
(que ya estará completa con los valores establecidos en el archivo de configuración):
espacio de nombres AppModelsOracle;class Config {función estática públicadynamicConfig(&$config) {if (IlluminateSupportFacadesAuth::check()) {$config['nombre de usuario'] = AppOracleConfig::getOraUser();$config['contraseña'] = AppOracleConfig ::getOraPass(); } } }
Luego ejecuta tu instalación de laravel...
De forma predeterminada, el nombre del objeto de base de datos está limitado a 30 caracteres. Para aumentar el límite, puede configurar ORA_MAX_NAME_LEN=128
en su archivo .env
.
Nota: esta configuración requiere Oracle 12c02 o superior .
Al utilizar Oracle, podemos encontrarnos con un problema de autenticación porque las consultas de Oracle distinguen entre mayúsculas y minúsculas de forma predeterminada. Al utilizar este proveedor de usuario de Oracle, ahora podremos evitar problemas de usuario al iniciar sesión y olvidar la contraseña debido a una búsqueda que distingue entre mayúsculas y minúsculas.
Para usarlo, simplemente actualice la configuración de auth.php
y configure el controlador en oracle
'proveedores' => ['usuarios' => ['driver' => 'oracle','model' => AppUser::class, ], ]
Arjay Ángeles
Jimmy Felder
Todos los contribuyentes
La Licencia MIT (MIT). Consulte el archivo de licencia para obtener más información.