fcarbah / lumen-db2-extension by fcarbah
forked from michaelbonds/lumen-db2

lumen-db2 is a simple DB2 service provider for Lumen ~6. It provides DB2 Connection by extending the Illuminate Database component of the laravel framework.
10
0
1
Package Data
Maintainer Username: fcarbah
Package Create Date: 2020-01-03
Package Last Update: 2020-01-07
Language: PHP
License: MIT
Last Refreshed: 2024-12-23 03:22:57
Package Statistics
Total Downloads: 10
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 0
Total Watchers: 1
Total Forks: 0
Total Open Issues: 0

This is an adaptation of michaelbonds laravel-db2 to work with Lumen v6

Lumen-DB2

Installation

Install lumen-db2 via composer:

composer require fcarbah/lumen-db2

Uncomment call to Eloquent and add the DB2ServiceProvideer to bootstrap/app.php:

// ...

/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| Here we will load the environment and create the application instance
| that serves as the central piece of this framework. We'll use this
| application as an "IoC" container and router for this framework.
|
*/

$app = new Laravel\Lumen\Application(
    realpath(__DIR__.'/../')
);

// $app->withFacades();

$app->withEloquent(); // <- Uncomment this

// ...

/*
|--------------------------------------------------------------------------
| Register Service Providers
|--------------------------------------------------------------------------
|
| Here we will register all of the application's service providers which
| are used to bind services into the container. Service providers are
| totally optional, so you are not required to uncomment this line.
|
*/

$app->register(MichaelB\Database\DB2\DB2ServiceProvider::class); // <- Add this

Configuration

Create the app/config/database.php file:


/*
 |--------------------------------------------
 | Configuration Defaults
 |--------------------------------------------
 */

return [

    'fetch' => PDO::FETCH_CLASS,

    'connections' => [

        'as400' => [

            'driver'               => 'odbc',

             // General settings
            'host'                 => '',
            'username'             => '',
            'password'             => '',

            //Server settings
            'database'             => '',
            'prefix'               => '',
            'schema'               => '',
            'signon'               => 3,
            'ssl'                  => 0,
            'commitMode'           => 2,
            'connectionType'       => 0,
            'defaultLibraries'     => '',
            'naming'               => 0,
            'unicodeSql'           => 0,

            // Format settings
            'dateFormat'           => 5,
            'dateSeperator'        => 0,
            'decimal'              => 0,
            'timeFormat'           => 0,
            'timeSeparator'        => 0,

            // Performances settings
            'blockFetch'           => 1,
            'blockSizeKB'          => 32,
            'allowDataCompression' => 1,
            'concurrency'          => 0,
            'lazyClose'            => 0,
            'maxFieldLength'       => 15360,
            'prefetch'             => 0,
            'queryTimeout'         => 1,

            // Modules settings
            'defaultPkgLibrary'    => '',
            'defaultPackage'       => '',
            'extendedDynamic'      => 1,

            // Diagnostic settings
            'QAQQINILibrary'       => '',
            'sqDiagCode'           => '',

            // Sort settings
            'languageId'           => '',
            'sortTable'            => '',
            'sortSequence'         => 0,
            'sortWeight'           => 0,
            'jobSort'              => 0,

            // Conversion settings
            'allowUnsupportedChar' => 0,
            'ccsid'                => 1208,
            'graphic'              => 0,
            'forceTranslation'     => 0,

            // Other settings
            'allowProcCalls'       => 0,
            'DB2SqlStates'         => 0,
            'debug'                => 0,
            'trueAutoCommit'       => 0,
            'catalogOptions'       => 3,
            'libraryView'          => 0,
            'ODBCRemarks'          => 0,
            'searchPattern'        => 1,
            'translationDLL'       => '',
            'translationOption'    => 0,
            'maxTraceSize'         => 0,
            'multipleTraceFiles'   => 1,
            'trace'                => 0,
            'traceFilename'        => '',
            'extendedColInfo'      => 0,
            'options'  => [
                PDO::ATTR_CASE => PDO::CASE_LOWER,
                PDO::ATTR_EMULATE_PREPARES => false,
                PDO::ATTR_PERSISTENT => false
            ]
        ]
    ]
];



driver setting is either 'odbc' for ODBC connection or 'ibm' for pdo_ibm connection Then if driver is 'odbc', database must be set to ODBC connection name. if driver is 'ibm', database must be set to IBMi database name (WRKRDBDIRE).

Usage

Consult the Laravel framework documentation.