Laravel-OCI8 เป็นแพ็คเกจไดรเวอร์ฐานข้อมูล Oracle สำหรับ Laravel Laravel-OCI8 เป็นส่วนขยายของ Illuminate/Database ที่ใช้ส่วนขยาย OCI8 เพื่อสื่อสารกับ Oracle ขอบคุณ @taylorotwell
คุณจะพบเอกสารที่เป็นมิตรต่อผู้ใช้และอัปเดตได้ที่นี่: Laravel-OCI8 Docs
ทุกอย่างเกี่ยวกับ oracle และ php: คู่มือ PHP และ Oracle ใต้ดิน
ลาราเวล | บรรจุุภัณฑ์ |
---|---|
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 |
ผู้แต่งต้องการ yajra/laravel-oci8:^11
เมื่อ Composer ติดตั้งหรืออัพเดตแพ็คเกจของคุณแล้ว คุณจะต้องลงทะเบียน Laravel-OCI8 เปิด config/app.php
แล้วค้นหารหัสผู้ให้บริการและเพิ่ม:
YajraOci8Oci8ServiceProvider::คลาส,
สุดท้ายคุณสามารถเลือกเผยแพร่ไฟล์การกำหนดค่าได้โดยการรันคำสั่ง Artisan ต่อไปนี้ หากไม่ได้เผยแพร่ไฟล์กำหนดค่า แพ็คเกจจะใช้สิ่งที่ประกาศไว้ในการกำหนดค่าฐานข้อมูลไฟล์ .env
ของคุณโดยอัตโนมัติ
ผู้ขาย php artisan: เผยแพร่ --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'),'ฐานข้อมูล' => env('DB_DATABASE', ''),'service_name' => env('DB_SERVICE_NAME', ''),'ชื่อผู้ใช้' => env('DB_USERNAME', ''),'รหัสผ่าน' => 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=oracleDB_HOST=oracle.hostDB_PORT=1521DB_SERVICE_NAME=orclDB_DATABASE=xeDB_USERNAME=hrDB_PASSWORD=ชม
หากคุณต้องการเชื่อมต่อกับคลัสเตอร์ที่มีหลายโฮสต์ คุณสามารถตั้ง
tns
ด้วยตนเองหรือตั้งค่าโฮสต์เป็นอาร์เรย์ที่คั่นด้วยเครื่องหมายจุลภาค และกำหนดค่าฟิลด์อื่นๆ ตามที่คุณต้องการ:
DB_CONNECTION=oracleDB_HOST=oracle1.host, oracle2.hostDB_PORT=1521DB_SERVICE_NAME=orclDB_LOAD_BALANCE=noDB_DATABASE=xeDB_USERNAME=hrDB_PASSWORD=ชม
หากคุณต้องการเชื่อมต่อกับชื่อบริการแทน tns คุณสามารถใช้การกำหนดค่าด้านล่าง:
'oracle' => ['driver' => 'oracle','host' => 'oracle.host','port' => '1521','database' => 'xe','service_name' => ' sid_alias','ชื่อผู้ใช้' => 'hr','password' => 'hr','charset' => '','prefix' => '', -
ในบางกรณี คุณอาจต้องการตั้งค่าพารามิเตอร์การเชื่อมต่อแบบไดนามิกในแอปของคุณ ตัวอย่างเช่น คุณอาจเข้าถึงฐานข้อมูลมากกว่าหนึ่งฐานข้อมูล หรือผู้ใช้ของคุณอาจมีบัญชีของตนเองในฐานข้อมูล Oracle อยู่แล้ว:
'oracle' => ['driver' => 'oracle','host' => 'oracle.host','port' => '1521','service_name' => 'sid_alias','prefix' => ' schemaowner','dynamic' => [AppModelsOracleConfig::class, 'dynamicConfig'], -
ฟังก์ชันการโทรกลับในแอปของคุณจะต้องคงที่และยอมรับการอ้างอิงถึงอาร์เรย์ $config[]
(ซึ่งจะถูกเติมด้วยค่าที่ตั้งไว้ในไฟล์กำหนดค่าแล้ว):
namespace AppModelsOracle; การกำหนดค่าคลาส { ฟังก์ชันคงที่สาธารณะ dynamicConfig (&$ config) {if (IlluminateSupportFacadesAuth::check()) {$config['ชื่อผู้ใช้'] = AppOracleConfig::getOraUser();$config['password'] = AppOracleConfig ::getOraPass(); - - -
จากนั้นรันการติดตั้ง laravel ของคุณ...
ตามค่าเริ่มต้น ชื่ออ็อบเจ็กต์ DB จะถูกจำกัดไว้ที่ 30 อักขระ หากต้องการเพิ่มขีดจำกัด คุณสามารถตั้ง ORA_MAX_NAME_LEN=128
ในไฟล์ .env
ของคุณได้
หมายเหตุ: การกำหนดค่านี้ต้องใช้ Oracle 12c02 หรือสูงกว่า
เมื่อใช้ oracle เราอาจประสบปัญหาในการตรวจสอบสิทธิ์เนื่องจากการสืบค้นของ oracle จะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ตามค่าเริ่มต้น ด้วยการใช้ผู้ให้บริการผู้ใช้ oracle นี้ เราจะสามารถหลีกเลี่ยงปัญหาของผู้ใช้เมื่อเข้าสู่ระบบและดำเนินการลืมรหัสผ่านล้มเหลวเนื่องจากการค้นหาที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
หากต้องการใช้งาน เพียงอัปเดตการกำหนดค่า auth.php
และตั้งค่าไดรเวอร์เป็น oracle
'ผู้ให้บริการ' => ['ผู้ใช้' => ['ไดรเวอร์' => 'oracle','model' => AppUser::class, - -
อาร์เจย์ แองเจลิส
จิมมี่ เฟลเดอร์
ผู้ร่วมให้ข้อมูลทั้งหมด
ใบอนุญาตเอ็มไอที (MIT) โปรดดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม