Laravel-OCI8 est un package de pilotes de base de données Oracle pour Laravel. Laravel-OCI8 est une extension d'Illuminate/Database qui utilise l'extension OCI8 pour communiquer avec Oracle. Merci à @taylorotwell.
Vous trouverez une documentation conviviale et mise à jour ici : Laravel-OCI8 Docs
Tout sur Oracle et PHP : Le manuel souterrain de PHP et Oracle
Laravel | Emballer |
---|---|
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 |
le compositeur nécessite yajra/laravel-oci8 : ^ 11
Une fois que Composer a installé ou mis à jour vos packages, vous devez enregistrer Laravel-OCI8. Ouvrez config/app.php
, recherchez la clé du fournisseur et ajoutez :
YajraOci8Oci8ServiceProvider :: classe,
Enfin, vous pouvez éventuellement publier un fichier de configuration en exécutant la commande Artisan suivante. Si le fichier de configuration n'est pas publié, le package utilisera automatiquement ce qui est déclaré dans la configuration de votre base de données de fichiers .env
.
fournisseur artisanal php :publish --tag=oracle
Cela copiera le fichier de configuration dans config/oracle.php
.
Remarque : Pour la configuration de Laravel Lumen, assurez-vous d'avoir un fichier
config/database.php
sur votre projet et ajoutez la configuration ci-dessous :
'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', ''),'nom d'utilisateur' => 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), ],
Ensuite, vous pouvez définir les données de connexion dans vos fichiers
.env
:
DB_CONNECTION=oracleDB_HOST=oracle.hostDB_PORT=1521DB_SERVICE_NAME=orclDB_DATABASE=xeDB_USERNAME=hrDB_PASSWORD=hr
Si vous souhaitez vous connecter à un cluster contenant plusieurs hôtes, vous pouvez soit définir
tns
manuellement, soit définir l'hôte comme un tableau séparé par des virgules et configurer d'autres champs à votre guise :
DB_CONNECTION=oracleDB_HOST=oracle1.host, oracle2.hostDB_PORT=1521DB_SERVICE_NAME=orclDB_LOAD_BALANCE=noDB_DATABASE=xeDB_USERNAME=hrDB_PASSWORD=hr
Si vous devez vous connecter avec le nom du service au lieu de tns, vous pouvez utiliser la configuration ci-dessous :
'oracle' => ['driver' => 'oracle','host' => 'oracle.host','port' => '1521','database' => 'xe','service_name' => ' sid_alias','username' => 'hr','password' => 'hr','charset' => '','prefix' => '', ]
Dans certains cas, vous souhaiterez peut-être définir les paramètres de connexion de manière dynamique dans votre application. Par exemple, vous pouvez accéder à plusieurs bases de données, ou vos utilisateurs peuvent déjà avoir leur propre compte sur la base de données Oracle :
'oracle' => ['driver' => 'oracle','host' => 'oracle.host','port' => '1521','service_name' => 'sid_alias','prefix' => ' schemaowner','dynamic' => [AppModelsOracleConfig::class, 'dynamicConfig'], ]
La fonction de rappel de votre application doit être statique et accepter une référence au tableau $config[]
(qui sera déjà rempli avec les valeurs définies dans le fichier de configuration) :
espace de noms AppModelsOracle;class Config {fonction statique publique DynamicConfig(&$config) {if (IlluminateSupportFacadesAuth::check()) {$config['username'] = AppOracleConfig::getOraUser();$config['password'] = AppOracleConfig ::getOraPass(); } } }
Ensuite, lancez votre installation de Laravel...
Par défaut, les noms d'objet DB sont limités à 30 caractères. Pour augmenter la limite, vous pouvez définir ORA_MAX_NAME_LEN=128
dans votre fichier .env
.
Remarque : cette configuration nécessite Oracle 12c02 ou supérieur .
Lors de l'utilisation d'Oracle, nous pouvons rencontrer un problème d'authentification car les requêtes Oracle sont sensibles à la casse par défaut. En utilisant ce fournisseur d'utilisateurs Oracle, nous serons désormais en mesure d'éviter les problèmes d'utilisateur lors de la connexion et de l'échec d'un mot de passe oublié en raison d'une recherche sensible à la casse.
Pour l'utiliser, mettez simplement à jour la configuration auth.php
et définissez le pilote sur oracle
'providers' => ['users' => ['driver' => 'oracle','model' => AppUser::class, ], ]
Arjay Angeles
Jimmy Felder
Tous les contributeurs
La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.