Laravel-OCI8 ist ein Oracle-Datenbanktreiberpaket für Laravel. Laravel-OCI8 ist eine Erweiterung von Illuminate/Database, die die OCI8-Erweiterung für die Kommunikation mit Oracle verwendet. Danke an @taylorotwell.
Eine benutzerfreundliche und aktualisierte Dokumentation finden Sie hier: Laravel-OCI8 Docs
Alles über Oracle und PHP: Das Underground PHP- und Oracle-Handbuch
Laravel | Paket |
---|---|
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 |
Komponist benötigt yajra/laravel-oci8:^11
Sobald Composer Ihre Pakete installiert oder aktualisiert hat, müssen Sie Laravel-OCI8 registrieren. Öffnen Sie config/app.php
, suchen Sie den Anbieterschlüssel und fügen Sie Folgendes hinzu:
YajraOci8Oci8ServiceProvider::class,
Abschließend können Sie optional eine Konfigurationsdatei veröffentlichen, indem Sie den folgenden Artisan-Befehl ausführen. Wenn die Konfigurationsdatei nicht veröffentlicht wird, verwendet das Paket automatisch das, was in Ihrer .env
Dateidatenbankkonfiguration deklariert ist.
PHP-Artist-Anbieter:publish --tag=oracle
Dadurch wird die Konfigurationsdatei nach config/oracle.php
kopiert.
Hinweis: Stellen Sie für die Konfiguration von Laravel Lumen sicher, dass Ihr Projekt über eine Datei
config/database.php
verfügt, und hängen Sie die Konfiguration unten an:
'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), ],
Anschließend können Sie Verbindungsdaten in Ihren
.env
Dateien festlegen:
DB_CONNECTION=oracleDB_HOST=oracle.hostDB_PORT=1521DB_SERVICE_NAME=orclDB_DATABASE=xeDB_USERNAME=hrDB_PASSWORD=hr
Wenn Sie eine Verbindung zu einem Cluster mit mehreren Hosts herstellen möchten, können Sie
tns
entweder manuell festlegen oder Host als durch Kommas getrenntes Array festlegen und andere Felder nach Ihren Wünschen konfigurieren:
DB_CONNECTION=oracleDB_HOST=oracle1.host, oracle2.hostDB_PORT=1521DB_SERVICE_NAME=orclDB_LOAD_BALANCE=noDB_DATABASE=xeDB_USERNAME=hrDB_PASSWORD=hr
Wenn Sie eine Verbindung mit dem Dienstnamen statt mit tns herstellen müssen, können Sie die folgende Konfiguration verwenden:
'oracle' => ['driver' => 'oracle','host' => 'oracle.host','port' => '1521','database' => 'xe','service_name' => ' sid_alias','username' => 'hr','password' => 'hr','charset' => '','prefix' => '', ]
In manchen Fällen möchten Sie die Verbindungsparameter möglicherweise dynamisch in Ihrer App festlegen. Beispielsweise können Sie auf mehr als eine Datenbank zugreifen oder Ihre Benutzer verfügen möglicherweise bereits über eigene Konten in der Oracle-Datenbank:
'oracle' => ['driver' => 'oracle','host' => 'oracle.host','port' => '1521','service_name' => 'sid_alias','prefix' => ' schemaowner','dynamic' => [AppModelsOracleConfig::class, 'dynamicConfig'], ]
Die Rückruffunktion in Ihrer App muss statisch sein und einen Verweis auf das Array $config[]
akzeptieren (das bereits mit den in der Konfigurationsdatei festgelegten Werten gefüllt ist):
Namespace AppModelsOracle;class Config {public static functiondynamicConfig(&$config) {if (IlluminateSupportFacadesAuth::check()) {$config['username'] = AppOracleConfig::getOraUser();$config['password'] = AppOracleConfig ::getOraPass(); } } }
Führen Sie dann Ihre Laravel-Installation aus ...
Standardmäßig ist der DB-Objektname auf 30 Zeichen begrenzt. Um das Limit zu erhöhen, können Sie ORA_MAX_NAME_LEN=128
in Ihrer .env
Datei festlegen.
Hinweis: Diese Konfiguration erfordert Oracle 12c02 oder höher .
Bei der Verwendung von Oracle kann es zu Problemen bei der Authentifizierung kommen, da bei Oracle-Abfragen standardmäßig die Groß-/Kleinschreibung beachtet wird. Durch die Verwendung dieses Oracle-Benutzeranbieters können wir nun Benutzerprobleme beim Anmelden und einen Fehler beim Vergessen des Passworts aufgrund der Groß-/Kleinschreibung bei der Suche vermeiden.
Um es zu verwenden, aktualisieren Sie einfach auth.php
-Konfiguration und stellen Sie den Treiber auf oracle
ein
'providers' => ['users' => ['driver' => 'oracle','model' => AppUser::class, ], ]
Arjay Angeles
Jimmy Felder
Alle Mitwirkenden
Die MIT-Lizenz (MIT). Weitere Informationen finden Sie in der Lizenzdatei.