Laravel-OCI8 adalah paket Oracle Database Driver untuk Laravel. Laravel-OCI8 adalah ekstensi dari Illuminate/Database yang menggunakan ekstensi OCI8 untuk berkomunikasi dengan Oracle. Terima kasih kepada @taylorotwell.
Anda akan menemukan dokumentasi yang mudah digunakan dan diperbarui di sini: Laravel-OCI8 Docs
Semua tentang Oracle dan php: Panduan PHP dan Oracle Bawah Tanah
Laravel | Kemasan |
---|---|
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 |
komposer membutuhkan yajra/laravel-oci8:^11
Setelah Komposer menginstal atau memperbarui paket Anda, Anda perlu mendaftarkan Laravel-OCI8. Buka config/app.php
dan temukan kunci penyedia dan tambahkan:
YajraOci8Oci8Penyedia Layanan::kelas,
Terakhir, Anda juga dapat menerbitkan file konfigurasi dengan menjalankan perintah Artisan berikut. Jika file konfigurasi tidak dipublikasikan, paket akan secara otomatis menggunakan apa yang dideklarasikan pada konfigurasi database file .env
Anda.
vendor tukang php:publish --tag=Oracle
Ini akan menyalin file konfigurasi ke config/oracle.php
.
Catatan: Untuk konfigurasi Laravel Lumen, pastikan Anda memiliki file
config/database.php
di proyek Anda dan tambahkan konfigurasi di bawah ini:
'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', ''),'nama pengguna' => env('DB_USERNAME', ''),'kata sandi' => env('DB_PASSWORD', ''),'charset' => env('DB_CHARSET', 'AL32UTF8'), 'awalan' => env('DB_PREFIX', ''),'prefix_schema' => env('DB_SCHEMA_PREFIX', ''),'edisi' => 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), ],
Kemudian, Anda dapat mengatur data koneksi di file
.env
Anda:
DB_CONNECTION=OracleDB_HOST=Oracle.hostDB_PORT=1521DB_SERVICE_NAME=orclDB_DATABASE=xeDB_USERNAME=hrDB_PASSWORD=jam
Jika Anda ingin terhubung ke klaster yang berisi beberapa host, Anda dapat mengatur
tns
secara manual atau mengatur host sebagai array yang dipisahkan koma dan mengonfigurasi bidang lain sesuai keinginan:
DB_CONNECTION=OracleDB_HOST=Oracle1.host, Oracle2.hostDB_PORT=1521DB_SERVICE_NAME=orclDB_LOAD_BALANCE=noDB_DATABASE=xeDB_USERNAME=hrDB_PASSWORD=jam
Jika Anda perlu terhubung dengan nama layanan dan bukan tns, Anda dapat menggunakan konfigurasi di bawah ini:
'oracle' => ['driver' => 'oracle','host' => 'oracle.host','port' => '1521','database' => 'xe','service_name' => ' sid_alias','namapengguna' => 'jam','kata sandi' => 'jam','charset' => '','awalan' => '', ]
Dalam beberapa kasus, Anda mungkin ingin menyetel parameter koneksi secara dinamis di aplikasi Anda. Misalnya, Anda dapat mengakses lebih dari satu database, atau pengguna Anda mungkin sudah memiliki akun sendiri di database Oracle:
'oracle' => ['driver' => 'oracle','host' => 'oracle.host','port' => '1521','service_name' => 'sid_alias','prefix' => ' pemilik skema','dinamis' => [AppModelsOracleConfig::kelas, 'dynamicConfig'], ]
Fungsi callback di aplikasi Anda harus statis dan menerima referensi ke array $config[]
(yang sudah diisi dengan nilai yang disetel di file konfigurasi):
namespace AppModelsOracle;class Config {fungsi statis publik dinamisConfig(&$config) {if (IlluminateSupportFacadesAuth::check()) {$config['username'] = AppOracleConfig::getOraUser();$config['password'] = AppOracleConfig ::getOraPass(); } } }
Kemudian jalankan instalasi laravel Anda...
Secara default, nama objek DB dibatasi hingga 30 karakter. Untuk menambah batas, Anda dapat mengatur ORA_MAX_NAME_LEN=128
di file .env
Anda.
Catatan: konfigurasi ini memerlukan Oracle 12c02 atau lebih tinggi .
Saat menggunakan Oracle, kami mungkin mengalami masalah pada otentikasi karena kueri Oracle peka huruf besar-kecil secara default. Dengan menggunakan penyedia pengguna oracle ini, kita sekarang dapat menghindari masalah pengguna saat login dan melakukan kegagalan lupa kata sandi karena pencarian peka huruf besar-kecil.
Untuk menggunakannya, cukup perbarui konfigurasi auth.php
dan atur driver ke oracle
'penyedia' => ['pengguna' => ['driver' => 'Oracle','model' => AppUser::class, ], ]
Arjay Angeles
Jimmy Felder
Semua Kontributor
Lisensi MIT (MIT). Silakan lihat File Lisensi untuk informasi lebih lanjut.