Your composer.json
file:
{
"require": {
"slim/slim": "^2.6",
"illuminate/database": "^5.1",
"symfony/var-dumper": "^2.7",
"yajra/laravel-oci8": "^2.4"
}
}
Snippet:
<?php
require dirname(__DIR__).'/vendor/autoload.php';
use Slim\Slim;
use yajra\Oci8\Oci8Connection;
use Illuminate\Database\Capsule\Manager as Capsule;
use yajra\Oci8\Connectors\OracleConnector as Connector;
$app = new Slim();
$capsule = new Capsule();
$capsule->addConnection(array(
'driver' => 'oracle',
'host' => 'YOURHOST',
'port' => '1521',
'database' => 'YOUR_DB',
'service_name' => 'xe',
'username' => 'YOUR_DB',
'password' => 'SECRET',
'schema' => 'YOUR_DB',
'charset' => 'AL32UTF8',
'prefix' => '',
));
$capsule->bootEloquent();
$capsule->setAsGlobal();
$capsule->getDatabaseManager()->extend('oracle', function ($config) {
$connector = new Connector();
$connection = $connector->connect($config);
$db = new Oci8Connection($connection, $config['database'], $config['prefix']);
// set oracle session variables
$sessionVars = [
'NLS_TIME_FORMAT' => 'HH24:MI:SS',
'NLS_DATE_FORMAT' => 'YYYY-MM-DD HH24:MI:SS',
'NLS_TIMESTAMP_FORMAT' => 'YYYY-MM-DD HH24:MI:SS',
'NLS_TIMESTAMP_TZ_FORMAT' => 'YYYY-MM-DD HH24:MI:SS TZH:TZM',
'NLS_NUMERIC_CHARACTERS' => '.,',
];
// Like Postgres, Oracle allows the concept of "schema"
if (isset($config['schema'])) {
$sessionVars['CURRENT_SCHEMA'] = $config['schema'];
}
$db->setSessionVars($sessionVars);
return $db;
});
$app->get('/', function () use ($app, $capsule) {
$app->response->headers->set('Content-Type', 'application/json');
$app->response->write(json_encode((array) $capsule->table('USER')->first()));
});
$app->run();