2017 © Pedro Peláez
 

cakephp-plugin cakephp-oracle-driver

CakePHP 3 Driver for Oracle Database

image

cakedc/cakephp-oracle-driver

CakePHP 3 Driver for Oracle Database

  • Monday, May 28, 2018
  • by CakeDC
  • Repository
  • 12 Watchers
  • 33 Stars
  • 2,642 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 12 Forks
  • 8 Open issues
  • 4 Versions
  • 12 % Grown

The README.md

CakePHP 4 Driver for Oracle Database

Downloads Latest Version, (*1)

Versions and branches

CakePHP CakeDC Oracle Driver Plugin Tag Notes
4.0 5.x 5.0.0 stable
^3.8 <4.0 4.x 4.0.0 stable
^3.7 3.x 3.0.0 stable

Installation

You can install this plugin into your CakePHP application using Composer., (*2)

The recommended way to install Composer packages is:, (*3)

composer require cakedc/cakephp-oracle-driver

Ensure the Oracle Plugin is loaded in your src/Application.php file, (*4)

    /**
     * {@inheritdoc}
     */
    public function bootstrap()
    {
        parent::bootstrap();

        $this->addPlugin(\CakeDC\OracleDriver\Plugin::class, ['bootstrap' => true]);
    }

Requirements

  • CakePHP 4.0+
  • an Oracle PHP extension
    • OCI8 (PHP extension built with PHP)
    • PDO_OCI (PHP extension built with PHP)

Notes on extensions

For full support, it is recommended to run the OCI8 extension if possible., (*5)

While PDO_OCI might be simpler to set up, there are some limitations (e.g. it doesn't support the stored code layer, so only the SQL layer will be available.), (*6)

Datasource configuration

Here is an example datasource configuration:, (*7)

        <?php
return [
    'Datasources' => [
        'default' => [
            'className' => 'CakeDC\OracleDriver\Database\OracleConnection',
            'driver' => 'CakeDC\OracleDriver\Database\Driver\OracleOCI', # For OCI8
            #'driver' => 'CakeDC\\OracleDriver\\Database\\Driver\\OraclePDO', # For PDO_OCI
            'persistent' => true,           // Database persistent connection between http requests
            'host' => 'oracle11g',          // Database host name or IP address
            //'port' => 'nonstandard_port', // Database port number (default: 1521)
            'username' => 'blogs',          // Database username
            'password' => 'password',       // Database password
            'database' => 'XE',             // Database name (maps to Oracle's `SERVICE_NAME`)
            'sid' => '',                    // Database System ID (maps to Oracle's `SID`)
            'instance' => '',               // Database instance name (maps to Oracle's `INSTANCE_NAME`)
            'pooled' => '',                 // Database pooling (maps to Oracle's `SERVER=POOLED`)
            'flags' => [],                  // Database low level parameters for OCI or PDO connection. Auto-generated by default
            'encoding' => '',               // Database charset (default same as database charset)
            'init' => [],                   // Array of queries executed at connection
            'cacheMetadata' => true,        // Enable cakephp schema caching
            'server_version' => 12,        // Oracle server numeric version ex.: 11,12,19
            'autoincrement' => true,        // Enable autoincrement insteadof custom triggers in case of oracle 12+
        ]
    ]
];

For oracle 12g should be used config settings server_version with value 12. If version is greater or equals to 12 the plugin uses new oracle pagination features., (*8)

Additional if autoincrement is set to true, then for primary keys in fixtures used new orale autoincreament feature., (*9)

As you can see, the className and driver need switched to Oracle-specific classes. The driver will depend on whether you want to use PDO or not. The database name "XE" in this case, is defined as the SERVICE_NAME in Oracle's system-wide tnsnames.ora file., (*10)

The above array format is translated into Oracle's Easy Connection Naming. You can find the logic for this in \CakeDC\OracleDriver\Database\Driver\OracleBase::getDSN()., (*11)

Documentation

For documentation, as well as tutorials, see the docs directory of this repository., (*12)

Roadmap

  • Provide full compatibility with Phinx based migrations
  • Provide compatibility with Oracle database version 12
  • Transform data types into native PHP types when returned form the database @todo copy todos to the roadmap

Support

For bugs and feature requests, please use the issues section of this repository., (*13)

Commercial support is also available, contact us for more information., (*14)

Contributing

This repository follows the CakeDC Plugin Standard. If you'd like to contribute new features, enhancements or bug fixes to the plugin, please read our Contribution Guidelines for detailed instructions., (*15)

License

Copyright 2016 - 2020 Cake Development Corporation (CakeDC). All rights reserved., (*16)

Licensed under the MIT License. Redistributions of the source code included in this repository must retain the copyright notice found in each file., (*17)

The Versions

28/05 2018

dev-master

9999999-dev https://github.com/cakedc/cakephp-oracle-driver

CakePHP 3 Driver for Oracle Database

  Sources   Download

MIT

The Requires

 

The Development Requires

database cakephp driver oracle

18/07 2017

dev-identifiers_issue

dev-identifiers_issue https://github.com/cakedc/cakephp-oracle-driver

CakePHP 3 Driver for Oracle Database

  Sources   Download

MIT

The Requires

 

The Development Requires

database cakephp driver oracle

10/02 2017

1.0.1

1.0.1.0 https://github.com/cakedc/cakephp-oracle-driver

CakePHP 3 Driver for Oracle Database

  Sources   Download

MIT

The Requires

 

The Development Requires

database cakephp driver oracle

10/03 2016

1.0.0

1.0.0.0 https://github.com/cakedc/cakephp-oracle-driver

CakePHP 3 Driver for Oracle Database

  Sources   Download

MIT

The Requires

 

The Development Requires

database cakephp driver oracle