Laravel-OCI8은 Laravel용 Oracle 데이터베이스 드라이버 패키지입니다. Laravel-OCI8은 OCI8 확장을 사용하여 Oracle과 통신하는 Illuminate/Database의 확장입니다. @taylorotwell에게 감사드립니다.
여기에서 사용자 친화적이고 업데이트된 문서를 찾을 수 있습니다: Laravel-OCI8 Docs
oracle과 php에 관한 모든 것: Underground 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 Vendor:publish --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', ''),'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', '예'),'동적' => [],'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=hr
여러 호스트가 포함된 클러스터에 연결하려면
tns
수동으로 설정하거나 호스트를 쉼표로 구분된 배열로 설정하고 원하는 대로 다른 필드를 구성할 수 있습니다.
DB_CONNECTION=oracleDB_HOST=oracle1.host, oracle2.hostDB_PORT=1521DB_SERVICE_NAME=orclDB_LOAD_BALANCE=noDB_DATABASE=xeDB_USERNAME=hrDB_PASSWORD=hr
tns 대신 서비스 이름으로 연결해야 하는 경우 아래 구성을 사용할 수 있습니다.
'oracle' => ['driver' => 'oracle','host' => 'oracle.host','port' => '1521','database' => 'xe','service_name' => ' sid_alias','username' => '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[]
배열에 대한 참조를 허용해야 합니다(구성 파일에 설정된 값으로 이미 채워져 있음).
네임스페이스 AppModelsOracle;class Config {public static functiondynamicConfig(&$config) {if (IlluminateSupportFacadesAuth::check()) {$config['username'] = AppOracleConfig::getOraUser();$config['password'] = AppOracleConfig ::getOraPass(); } } }
그런 다음 laravel 설치를 실행하십시오 ...
기본적으로 DB 개체 이름은 30자로 제한됩니다. 제한을 늘리려면 .env
파일에서 ORA_MAX_NAME_LEN=128
설정할 수 있습니다.
참고: 이 구성에는 Oracle 12c02 이상이 필요합니다.
oracle을 사용할 때 oracle 쿼리는 기본적으로 대소문자를 구분하기 때문에 인증에 문제가 발생할 수 있습니다. 이 oracle 사용자 공급자를 사용하면 이제 대소문자 구분 검색으로 인해 로그인할 때 사용자 문제와 비밀번호 분실 실패를 방지할 수 있습니다.
사용하려면 auth.php
구성을 업데이트하고 드라이버를 oracle
로 설정하세요.
'공급자' => ['사용자' => ['드라이버' => '오라클','모델' => AppUser::class, ], ]
아르제이 앙헬레스
지미 펠더
모든 기여자
MIT 라이센스(MIT). 자세한 내용은 라이센스 파일을 참조하십시오.