Package Data | |
---|---|
Maintainer Username: | cooperl |
Package Create Date: | 2015-04-22 |
Package Last Update: | 2023-09-23 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-12-21 03:00:07 |
Package Statistics | |
---|---|
Total Downloads: | 12,292 |
Monthly Downloads: | 70 |
Daily Downloads: | 6 |
Total Stars: | 10 |
Total Watchers: | 4 |
Total Forks: | 13 |
Total Open Issues: | 5 |
laravel-ibmi is a simple DB2 & Toolkit for IBMi service provider for Laravel. It provides DB2 Connection by extending the Illuminate Database component of the laravel framework. Plus it also provides Toolkit for IBMi so that you can access IBMi resources with same credentials.
Add laravel-ibmi to your composer.json file:
"require": {
"cooperl/laravel-ibmi": "^5.8.0"
}
Use composer to install this package.
$ composer update
There are two ways to configure laravel-ibmi. You can choose the most convenient way for you. You can put your DB2 credentials into app/config/database.php
(option 1) file or use package config file which you can be generated through command line by artisan (option 2).
app/config/database.php
fileSimply add this code at the end of your app/config/database.php
file:
/*
|--------------------------------------------------------------------------
| DB2 Databases
|--------------------------------------------------------------------------
*/
'ibmi' => [
'driver' => 'db2_ibmi_odbc',
// or 'db2_ibmi_ibm' / 'db2_zos_odbc' / 'db2_expressc_odbc
'driverName' => '{IBM i Access ODBC Driver}',
// or '{iSeries Access ODBC Driver}' / '{IBM i Access ODBC Driver 64-bit}'
'host' => 'server',
'username' => '',
'password' => '',
'database' => 'WRKRDBDIRE entry',
'prefix' => '',
'schema' => 'default schema',
'port' => 50000,
'date_format' => 'Y-m-d H:i:s',
// or 'Y-m-d H:i:s.u' / 'Y-m-d-H.i.s.u'...
'odbc_keywords' => [
'SIGNON' => 3,
'SSL' => 0,
'CommitMode' => 2,
'ConnectionType' => 0,
'DefaultLibraries' => '',
'Naming' => 0,
'UNICODESQL' => 0,
'DateFormat' => 5,
'DateSeperator' => 0,
'Decimal' => 0,
'TimeFormat' => 0,
'TimeSeparator' => 0,
'TimestampFormat' => 0,
'ConvertDateTimeToChar' => 0,
'BLOCKFETCH' => 1,
'BlockSizeKB' => 32,
'AllowDataCompression' => 1,
'CONCURRENCY' => 0,
'LAZYCLOSE' => 0,
'MaxFieldLength' => 15360,
'PREFETCH' => 0,
'QUERYTIMEOUT' => 1,
'DefaultPkgLibrary' => 'QGPL',
'DefaultPackage' => 'A /DEFAULT(IBM),2,0,1,0',
'ExtendedDynamic' => 0,
'QAQQINILibrary' => '',
'SQDIAGCODE' => '',
'LANGUAGEID' => 'ENU',
'SORTTABLE' => '',
'SortSequence' => 0,
'SORTWEIGHT' => 0,
'AllowUnsupportedChar' => 0,
'CCSID' => 819,
'GRAPHIC' => 0,
'ForceTranslation' => 0,
'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_PERSISTENT => false,
PDO::I5_ATTR_DBC_SYS_NAMING => false,
PDO::I5_ATTR_COMMIT => PDO::I5_TXN_NO_COMMIT,
PDO::I5_ATTR_JOB_SORT => false,
PDO::I5_ATTR_DBC_LIBL => '',
PDO::I5_ATTR_DBC_CURLIB => '',
],
'toolkit' => [
'sbmjobParams' => 'ZENDPHP7/ZSVR_JOBD/XTOOLKIT',
'XMLServiceLib' => 'ZENDPHP7',
'debug' => false,
'debugLogFile' => storage_path('logs / toolkit_gigc . log'),
'InternalKey' => ' / tmp / ' . 'Toolkit_' . env('APP_ENV') . '_' . random_int(1, 10),
'stateless' => false,
'plugSize' => '512K',
'encoding' => "UTF-8",
'ccsidBefore' => "819/1147",
'ccsidAfter' => "1147/1208",
'useHex' => true
],
],
driver setting can be:
Then if driver is 'db2_*_odbc', database must be set to ODBC connection name. if driver is 'db2_ibmi_ibm', database must be set to IBMi database name (WRKRDBDIRE).
Run on the command line from the root of your project:
$ php artisan vendor:publish
Set your laravel-db2 credentials in app/config/db2.php
the same way as above
consult the Laravel framework documentation.
This package ships with a facade called TS
for ToolkitService which is the name of the main class.
here is an example of how to use this facade:
$param[] = TS::AddParameterChar('both', 10, 'InventoryCode', 'code', $code);
$param[] = TS::AddParameterChar('both', 10, 'Description', 'desc', $desc);
$result = TS::PgmCall("COMMONPGM", "ZENDSVR", $param, null, null);
if($result)
{
var_dump($result['io_param']);
}
else
{
echo "Execution failed.";
}
If you want to choose another connection than the default one just do this:
$param[] = TS::connection('other_connection')->AddParameterChar('both', 10, 'InventoryCode', 'code', $code);
$param[] = TS::connection('other_connection')->AddParameterChar('both', 10, 'Description', 'desc', $desc);
$result = TS::connection('other_connection')->PgmCall("COMMONPGM", "ZENDSVR", $param, null, null);
if($result)
{
var_dump($result['io_param']);
}
else
{
echo "Execution failed.";
}
for more details please consult PHP XMLSERVICE Toolkit documentation.