{"id":13396163,"url":"https://github.com/yajra/laravel-oci8","last_synced_at":"2026-04-07T10:01:12.027Z","repository":{"id":12051391,"uuid":"14637455","full_name":"yajra/laravel-oci8","owner":"yajra","description":"Oracle DB driver for Laravel via OCI8","archived":false,"fork":false,"pushed_at":"2026-04-07T03:38:29.000Z","size":2389,"stargazers_count":870,"open_issues_count":18,"forks_count":249,"subscribers_count":29,"default_branch":"master","last_synced_at":"2026-04-07T05:09:58.551Z","etag":null,"topics":["hacktoberfest","laravel","laravel-oci8","oci8","oracle","php"],"latest_commit_sha":null,"homepage":"https://yajrabox.com/docs/laravel-oci8","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yajra.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"yajra","patreon":"yajra","custom":"https://www.paypal.me/yajra"}},"created_at":"2013-11-23T06:01:37.000Z","updated_at":"2026-04-07T03:38:32.000Z","dependencies_parsed_at":"2024-01-07T01:13:36.997Z","dependency_job_id":"47517923-b8d1-40c9-858a-b20d2d5c180e","html_url":"https://github.com/yajra/laravel-oci8","commit_stats":{"total_commits":1009,"total_committers":85,"mean_commits":"11.870588235294118","dds":"0.26263627353815655","last_synced_commit":"4d7f4e87a0cf7aab06dadce86110fb9f260fc03d"},"previous_names":[],"tags_count":340,"template":false,"template_full_name":null,"purl":"pkg:github/yajra/laravel-oci8","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yajra%2Flaravel-oci8","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yajra%2Flaravel-oci8/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yajra%2Flaravel-oci8/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yajra%2Flaravel-oci8/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yajra","download_url":"https://codeload.github.com/yajra/laravel-oci8/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yajra%2Flaravel-oci8/sbom","scorecard":{"id":1237839,"data":{"date":"2025-07-07","repo":{"name":"github.com/yajra/laravel-oci8","commit":"ad5a157bb210cc6bf856bd2ef21ea5f1ec820ba5"},"scorecard":{"version":"v5.2.1-18-gbb9c347d","commit":"bb9c347dff6349d986baab6578a46d68a5524c62"},"score":5.3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#token-permissions"}},{"name":"Maintained","score":10,"reason":"20 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#maintained"}},{"name":"Code-Review","score":2,"reason":"Found 3/12 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: MIT License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#vulnerabilities"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 24 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#sast"}}]},"last_synced_at":"2025-09-18T04:27:23.712Z","repository_id":12051391,"created_at":"2025-09-18T04:27:23.712Z","updated_at":"2025-09-18T04:27:23.712Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31508282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","laravel","laravel-oci8","oci8","oracle","php"],"created_at":"2024-07-30T18:00:41.610Z","updated_at":"2026-04-07T10:01:12.004Z","avatar_url":"https://github.com/yajra.png","language":"PHP","funding_links":["https://github.com/sponsors/yajra","https://patreon.com/yajra","https://www.paypal.me/yajra"],"categories":["Popular Packages","Paquetes utiles"],"sub_categories":[],"readme":"# Oracle DB driver for Laravel via OCI8\n\n[![Continuous Integration](https://github.com/yajra/laravel-oci8/actions/workflows/continuous-integration.yml/badge.svg)](https://github.com/yajra/laravel-oci8/actions/workflows/continuous-integration.yml)\n[![Static Analysis](https://github.com/yajra/laravel-oci8/actions/workflows/static-analysis.yml/badge.svg)](https://github.com/yajra/laravel-oci8/actions/workflows/static-analysis.yml)\n[![Total Downloads](https://poser.pugx.org/yajra/laravel-oci8/d/total.svg)](https://packagist.org/packages/yajra/laravel-oci8)\n[![Latest Stable Version](https://poser.pugx.org/yajra/laravel-oci8/v/stable.svg)](https://packagist.org/packages/yajra/laravel-oci8)\n[![License](https://poser.pugx.org/yajra/laravel-oci8/license.svg)](https://packagist.org/packages/yajra/laravel-oci8)\n\n## Laravel-OCI8\n\nLaravel-OCI8 is an Oracle Database Driver package for [Laravel](http://laravel.com/). Laravel-OCI8 is an extension of [Illuminate/Database](https://github.com/illuminate/database) that uses [OCI8](http://php.net/oci8) extension to communicate with Oracle. Thanks to @taylorotwell.\n\n## Documentations\n\n- You will find user-friendly and updated documentation here: [Laravel-OCI8 Docs](https://yajrabox.com/docs/laravel-oci8)\n- All about oracle and php:[The Underground PHP and Oracle Manual](http://www.oracle.com/technetwork/database/database-technologies/php/201212-ug-php-oracle-1884760.pdf)\n\n## Laravel Version Compatibility\n\n Laravel  | Package\n:---------|:----------\n 5.1.x    | 5.1.x\n 5.2.x    | 5.2.x\n 5.3.x    | 5.3.x\n 5.4.x    | 5.4.x\n 5.5.x    | 5.5.x\n 5.6.x    | 5.6.x\n 5.7.x    | 5.7.x\n 5.8.x    | 5.8.x\n 6.x      | 6.x\n 7.x      | 7.x\n 8.x      | 8.x\n 9.x      | 9.x\n 10.x     | 10.x\n 11.x     | 11.x\n 12.x     | 12.x\n 13.x     | 13.x\n\n## Quick Installation\n\n```bash\ncomposer require yajra/laravel-oci8:^13\n```\n\n## Larastan / PHPStan\n\nThis package includes an optional PHPStan/Larastan extension for OCI8-specific `DB` methods.\nInclude it in your `phpstan.neon` if you want those methods recognized during static analysis.\n\n```neon\nincludes:\n    - vendor/yajra/laravel-oci8/extension.neon\n```\n\n## Service Provider (Optional on Laravel 5.5+)\n\nOnce Composer has installed or updated your packages you need to register Laravel-OCI8. Open up `config/app.php` and find the providers key and add:\n\n```php\nYajra\\Oci8\\Oci8ServiceProvider::class,\n```\n\n## Configuration (OPTIONAL)\n\nFinally you can optionally publish a configuration file by running the following Artisan command.\nIf config file is not publish, the package will automatically use what is declared on your `.env` file database configuration.\n\n```bash\nphp artisan vendor:publish --tag=oracle\n```\n\nThis will copy the configuration file to `config/oracle.php`.\n\n\u003e Note: For [Laravel Lumen configuration](http://lumen.laravel.com/docs/configuration#configuration-files), make sure you have a `config/database.php` file on your project and append the configuration below:\n\n```php\n'oracle' =\u003e [\n    'driver'         =\u003e 'oracle',\n    'tns'            =\u003e env('DB_TNS', ''),\n    'host'           =\u003e env('DB_HOST', ''),\n    'port'           =\u003e env('DB_PORT', '1521'),\n    'database'       =\u003e env('DB_DATABASE', ''),\n    'service_name'   =\u003e env('DB_SERVICE_NAME', ''),\n    'username'       =\u003e env('DB_USERNAME', ''),\n    'password'       =\u003e env('DB_PASSWORD', ''),\n    'charset'        =\u003e env('DB_CHARSET', 'AL32UTF8'),\n    'prefix'         =\u003e env('DB_PREFIX', ''),\n    'prefix_schema'  =\u003e env('DB_SCHEMA_PREFIX', ''),\n    'edition'        =\u003e env('DB_EDITION', 'ora$base'),\n    'server_version' =\u003e env('DB_SERVER_VERSION', '11g'),\n    'load_balance'   =\u003e env('DB_LOAD_BALANCE', 'yes'),\n    'dynamic'        =\u003e [],\n    'max_name_len'   =\u003e env('ORA_MAX_NAME_LEN', 30),\n],\n```\n\n\u003e Then, you can set connection data in your `.env` files:\n\n```ini\nDB_CONNECTION=oracle\nDB_HOST=oracle.host\nDB_PORT=1521\nDB_SERVICE_NAME=orcl\nDB_DATABASE=xe\nDB_USERNAME=hr\nDB_PASSWORD=hr\n```\n\n\u003e If you want to connect to a cluster containing multiple hosts, you can either set `tns` manually or set host as a comma-separated array and configure other fields as you wish:\n\n```ini\nDB_CONNECTION=oracle\nDB_HOST=oracle1.host, oracle2.host\nDB_PORT=1521\nDB_SERVICE_NAME=orcl\nDB_LOAD_BALANCE=no\nDB_DATABASE=xe\nDB_USERNAME=hr\nDB_PASSWORD=hr\n```\n\n\u003e If you need to connect with the service name instead of tns, you can use the configuration below:\n\n```php\n'oracle' =\u003e [\n    'driver' =\u003e 'oracle',\n    'host' =\u003e 'oracle.host',\n    'port' =\u003e '1521',\n    'database' =\u003e 'xe',\n    'service_name' =\u003e 'sid_alias',\n    'username' =\u003e 'hr',\n    'password' =\u003e 'hr',\n    'charset' =\u003e '',\n    'prefix' =\u003e '',\n]\n```\n\nIn some cases you may wish to set the connection parameters dynamically in your app.  For instance, you may access more than one database, or your users may already have their own accounts on the Oracle database:\n\n```php\n'oracle' =\u003e [\n    'driver' =\u003e 'oracle',\n    'host' =\u003e 'oracle.host',\n    'port' =\u003e '1521',\n    'service_name' =\u003e 'sid_alias',\n    'prefix' =\u003e 'schemaowner',\n    'dynamic' =\u003e [App\\Models\\Oracle\\Config::class, 'dynamicConfig'],\n]\n```\n\nThe callback function in your app must be static and accept a reference to the `$config[]` array (which will already be populated with values set in the config file):\n\n```php\nnamespace App\\Models\\Oracle;\n\nclass Config {\n\n    public static function dynamicConfig(\u0026$config) {\n\n        if (Illuminate\\Support\\Facades\\Auth::check()) {\n            $config['username'] = App\\Oracle\\Config::getOraUser();\n            $config['password'] = App\\Oracle\\Config::getOraPass();\n        }\n\n    }\n}\n```\n\nThen run your laravel installation...\n\n## Oracle versions\n\nTo set this version use `DB_SERVER_VERSION` env variable or change `server_version` variable in the oracle.php config.\n\n### 11g\nThis is the baseline, if no version is set, this version is assumed.\n### 12c\n- Use fetch/offset where possible instead of rownumber.\n- Use identity instead of seqvence/trigger for ids when using laravel's scheme builder. ([#944](https://github.com/yajra/laravel-oci8/pull/944))\n### 12cR2\n- In whereLike use `binary ci` for case insensitivity. ([#945](https://github.com/yajra/laravel-oci8/pull/945))\n### 21c\n- Use native json type instead of clob in schema builder. ([#983](https://github.com/yajra/laravel-oci8/pull/983))\n\n## Oracle Max Name Length\n\nBy default, DB object name are limited to 30 characters. To increase the limit, you can set the `ORA_MAX_NAME_LEN=128` in your `.env` file.\n\nNote: this config requires **Oracle 12c02 or higher**.\n\n## [Laravel 5.2++] Oracle User Provider\n\nWhen using oracle, we may encounter a problem on authentication because oracle queries are case sensitive by default.\nBy using this oracle user provider, we will now be able to avoid user issues when logging in and doing a forgot password failure because of case sensitive search.\n\nTo use, just update `auth.php` config and set the driver to `oracle`\n\n```php\n'providers' =\u003e [\n    'users' =\u003e [\n        'driver' =\u003e 'oracle',\n        'model' =\u003e App\\User::class,\n    ],\n]\n```\n## JSON support\nLaravel-OCI8 provides **read-only JSON** query support for Oracle databases. \n\n\u003e⚠️This requires Oracle 12c02 or higher.\n\n\u003e⚠️ JSON mutation / update operations are not supported.\n\u003e Only JSON filtering and querying are available.  \n\u003e For JSON updates, the full JSON document must be modified in the application and saved back to the database.\n\n## Credits\n\n- [Arjay Angeles][link-author]\n- [Jimmy Felder](https://github.com/jfelder/Laravel-OracleDB)\n- [All Contributors][link-contributors]\n\n## License\n\nThe MIT License (MIT). Please see [License File](LICENSE.md) for more information.\n\n[link-author]: https://github.com/yajra\n[link-contributors]: ../../contributors\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyajra%2Flaravel-oci8","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyajra%2Flaravel-oci8","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyajra%2Flaravel-oci8/lists"}