Laravel-OCI8 é um pacote de driver de banco de dados Oracle para Laravel. Laravel-OCI8 é uma extensão do Illuminate/Database que usa a extensão OCI8 para se comunicar com o Oracle. Obrigado a @taylorotwell.
Você encontrará documentação atualizada e amigável aqui: Laravel-OCI8 Docs
Tudo sobre oracle e php:The Underground PHP and Oracle Manual
Laravel | Pacote |
---|---|
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 |
compositor requer yajra/laravel-oci8:^11
Depois que o Composer instalar ou atualizar seus pacotes, você precisará registrar o Laravel-OCI8. Abra config/app.php
e encontre a chave dos provedores e adicione:
YajraOci8Oci8ServiceProvider::classe,
Finalmente, você pode opcionalmente publicar um arquivo de configuração executando o seguinte comando Artisan. Se o arquivo de configuração não for publicado, o pacote usará automaticamente o que está declarado na configuração do banco de dados do arquivo .env
.
fornecedor de artesão php:publish --tag=oracle
Isso copiará o arquivo de configuração para config/oracle.php
.
Nota: Para configuração do Laravel Lumen, certifique-se de ter um arquivo
config/database.php
em seu projeto e anexe a configuração abaixo:
'oracle' => ['driver' => 'oracle','tns' => env('DB_TNS', ''),'host' => env('DB_HOST', ''),'porta' => env('DB_PORT', '1521'),'banco de dados' => env('DB_DATABASE', ''),'service_name' => env('DB_SERVICE_NAME', ''),'nomedeusuário' => env('DB_USERNAME', ''),'senha' => env('DB_PASSWORD', ''),'charset' => env('DB_CHARSET', 'AL32UTF8'), 'prefixo' => env('DB_PREFIX', ''),'prefix_schema' => env('DB_SCHEMA_PREFIX', ''),'edição' => 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), ],
Então, você pode definir os dados de conexão em seus arquivos
.env
:
DB_CONNECTION=oracleDB_HOST=oracle.hostDB_PORT=1521DB_SERVICE_NAME=orclDB_DATABASE=xeDB_USERNAME=hrDB_PASSWORD=hr
Se quiser se conectar a um cluster contendo vários hosts, você pode definir
tns
manualmente ou definir o host como uma matriz separada por vírgula e configurar outros campos como desejar:
DB_CONNECTION=oracleDB_HOST=oracle1.host, oracle2.hostDB_PORT=1521DB_SERVICE_NAME=orclDB_LOAD_BALANCE=noDB_DATABASE=xeDB_USERNAME=hrDB_PASSWORD=hr
Se precisar se conectar com o nome do serviço em vez de tns, você pode usar a configuração abaixo:
'oracle' => ['driver' => 'oracle','host' => 'oracle.host','port' => '1521','database' => 'xe','service_name' => ' sid_alias','username' => 'hr','password' => 'hr','charset' => '','prefix' => '', ]
Em alguns casos, você pode querer definir os parâmetros de conexão dinamicamente no seu aplicativo. Por exemplo, você pode acessar mais de um banco de dados ou seus usuários já podem ter suas próprias contas no banco de dados Oracle:
'oracle' => ['driver' => 'oracle','host' => 'oracle.host','port' => '1521','service_name' => 'sid_alias','prefix' => ' esquemaowner','dynamic' => [AppModelsOracleConfig::class, 'dynamicConfig'], ]
A função de retorno de chamada em seu aplicativo deve ser estática e aceitar uma referência ao array $config[]
(que já estará preenchido com valores definidos no arquivo de configuração):
namespace AppModelsOracle;class Config {public static function dynamicConfig(&$config) {if (IlluminateSupportFacadesAuth::check()) {$config['username'] = AppOracleConfig::getOraUser();$config['password'] = AppOracleConfig ::getOraPass(); } } }
Em seguida, execute a instalação do laravel ...
Por padrão, o nome do objeto do banco de dados está limitado a 30 caracteres. Para aumentar o limite, você pode definir ORA_MAX_NAME_LEN=128
em seu arquivo .env
.
Nota: esta configuração requer Oracle 12c02 ou superior .
Ao usar o oracle, podemos encontrar um problema de autenticação porque as consultas do oracle diferenciam maiúsculas de minúsculas por padrão. Ao usar este provedor de usuário oracle, agora poderemos evitar problemas do usuário ao fazer login e falhar no esquecimento da senha devido à pesquisa que diferencia maiúsculas de minúsculas.
Para usar, basta atualizar a configuração auth.php
e configurar o driver para oracle
'providers' => ['users' => ['driver' => 'oracle','model' => AppUser::class, ], ]
Arjay Angeles
Jimmy Felder
Todos os colaboradores
A licença MIT (MIT). Consulte Arquivo de licença para obter mais informações.