geiger-it / lumen-db2 by esmith.geiger
forked from michaelbonds/lumen-db2

DB2 service provider for Laravel/Lumen.
2,567
0
1
Package Data
Maintainer Username: esmith.geiger
Package Create Date: 2020-04-24
Package Last Update: 2020-04-25
Language: PHP
License: MIT
Last Refreshed: 2024-04-18 15:25:18
Package Statistics
Total Downloads: 2,567
Monthly Downloads: 10
Daily Downloads: 0
Total Stars: 0
Total Watchers: 1
Total Forks: 0
Total Open Issues: 0

Lumen-DB2

Installation

Install lumen-db2 via composer:

composer require geiger-it/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(GeigerIt\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.