Remove unused laminas db backend (#757)

* Remove unused laminas db backend

* Remove laminas-db from composer.json

* Remove bundled-libs/laminas
This commit is contained in:
onli 2021-04-27 21:50:34 +02:00 committed by GitHub
parent 717282a58a
commit 7e48e041a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
297 changed files with 2649 additions and 34222 deletions

View File

@ -30,7 +30,7 @@ private static $installed = array (
'aliases' =>
array (
),
'reference' => '05f58f90d743fe9ade24f3fdfe9a934d0b87c6a1',
'reference' => '1e645f52d45985949359c49ab147bcd45d6554f8',
'name' => '__root__',
),
'versions' =>
@ -42,7 +42,7 @@ private static $installed = array (
'aliases' =>
array (
),
'reference' => '05f58f90d743fe9ade24f3fdfe9a934d0b87c6a1',
'reference' => '1e645f52d45985949359c49ab147bcd45d6554f8',
),
'katzgrau/klogger' =>
array (
@ -53,33 +53,6 @@ private static $installed = array (
),
'reference' => '46cdd92a9b4a8443120cc955bf831450cb274813',
),
'laminas/laminas-db' =>
array (
'pretty_version' => '2.11.4',
'version' => '2.11.4.0',
'aliases' =>
array (
),
'reference' => '5b59413b8dd5d79e3fe58c2650c60b1730989f36',
),
'laminas/laminas-stdlib' =>
array (
'pretty_version' => '3.2.1',
'version' => '3.2.1.0',
'aliases' =>
array (
),
'reference' => '2b18347625a2f06a1a485acfbc870f699dbe51c6',
),
'laminas/laminas-zendframework-bridge' =>
array (
'pretty_version' => '1.1.1',
'version' => '1.1.1.0',
'aliases' =>
array (
),
'reference' => '6ede70583e101030bcace4dcddd648f760ddf642',
),
'psr/log' =>
array (
'pretty_version' => '1.0.0',
@ -114,20 +87,6 @@ private static $installed = array (
),
'reference' => '416cf88902991f3bf6168b71c0683e6dabb3d5e1',
),
'zendframework/zend-db' =>
array (
'replaced' =>
array (
0 => '^2.11.0',
),
),
'zendframework/zend-stdlib' =>
array (
'replaced' =>
array (
0 => '3.2.1',
),
),
),
);
private static $canGetVendors;

View File

@ -0,0 +1,381 @@
<?php
namespace Composer;
use Composer\Autoload\ClassLoader;
use Composer\Semver\VersionParser;
class InstalledVersions
{
private static $installed = array (
'root' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'aliases' =>
array (
),
<<<<<<< HEAD
'reference' => 'ea886da10cdbdad164cd253003e862a0ec7ecd6c',
=======
'reference' => '05f58f90d743fe9ade24f3fdfe9a934d0b87c6a1',
>>>>>>> master
'name' => '__root__',
),
'versions' =>
array (
'__root__' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'aliases' =>
array (
),
<<<<<<< HEAD
'reference' => 'ea886da10cdbdad164cd253003e862a0ec7ecd6c',
=======
'reference' => '05f58f90d743fe9ade24f3fdfe9a934d0b87c6a1',
>>>>>>> master
),
'katzgrau/klogger' =>
array (
'pretty_version' => '1.0.0',
'version' => '1.0.0.0',
'aliases' =>
array (
),
'reference' => '46cdd92a9b4a8443120cc955bf831450cb274813',
),
<<<<<<< HEAD
=======
'laminas/laminas-db' =>
array (
'pretty_version' => '2.11.4',
'version' => '2.11.4.0',
'aliases' =>
array (
),
'reference' => '5b59413b8dd5d79e3fe58c2650c60b1730989f36',
),
'laminas/laminas-stdlib' =>
array (
'pretty_version' => '3.2.1',
'version' => '3.2.1.0',
'aliases' =>
array (
),
'reference' => '2b18347625a2f06a1a485acfbc870f699dbe51c6',
),
'laminas/laminas-zendframework-bridge' =>
array (
'pretty_version' => '1.1.1',
'version' => '1.1.1.0',
'aliases' =>
array (
),
'reference' => '6ede70583e101030bcace4dcddd648f760ddf642',
),
>>>>>>> master
'psr/log' =>
array (
'pretty_version' => '1.0.0',
'version' => '1.0.0.0',
'aliases' =>
array (
),
'reference' => 'fe0936ee26643249e916849d48e3a51d5f5e278b',
),
'psr/simple-cache' =>
array (
'pretty_version' => '1.0.1',
'version' => '1.0.1.0',
'aliases' =>
array (
),
'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
),
'psr/simple-cache-implementation' =>
array (
'provided' =>
array (
0 => '1.0',
),
),
'voku/simple-cache' =>
array (
'pretty_version' => '4.0.5',
'version' => '4.0.5.0',
'aliases' =>
array (
),
'reference' => '416cf88902991f3bf6168b71c0683e6dabb3d5e1',
),
<<<<<<< HEAD
=======
'zendframework/zend-db' =>
array (
'replaced' =>
array (
0 => '^2.11.0',
),
),
'zendframework/zend-stdlib' =>
array (
'replaced' =>
array (
0 => '3.2.1',
),
),
>>>>>>> master
),
);
private static $canGetVendors;
private static $installedByVendor = array();
public static function getInstalledPackages()
{
$packages = array();
foreach (self::getInstalled() as $installed) {
$packages[] = array_keys($installed['versions']);
}
if (1 === \count($packages)) {
return $packages[0];
}
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
}
public static function isInstalled($packageName)
{
foreach (self::getInstalled() as $installed) {
if (isset($installed['versions'][$packageName])) {
return true;
}
}
return false;
}
public static function satisfies(VersionParser $parser, $packageName, $constraint)
{
$constraint = $parser->parseConstraints($constraint);
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
return $provided->matches($constraint);
}
public static function getVersionRanges($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
$ranges = array();
if (isset($installed['versions'][$packageName]['pretty_version'])) {
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
}
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
}
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
}
if (array_key_exists('provided', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
}
return implode(' || ', $ranges);
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['version'])) {
return null;
}
return $installed['versions'][$packageName]['version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getPrettyVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
return null;
}
return $installed['versions'][$packageName]['pretty_version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getReference($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['reference'])) {
return null;
}
return $installed['versions'][$packageName]['reference'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getRootPackage()
{
$installed = self::getInstalled();
return $installed[0]['root'];
}
public static function getRawData()
{
return self::$installed;
}
public static function reload($data)
{
self::$installed = $data;
self::$installedByVendor = array();
}
private static function getInstalled()
{
if (null === self::$canGetVendors) {
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
}
$installed = array();
if (self::$canGetVendors) {
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
}
}
}
$installed[] = self::$installed;
return $installed;
}
}

View File

@ -0,0 +1,381 @@
<?php
namespace Composer;
use Composer\Autoload\ClassLoader;
use Composer\Semver\VersionParser;
class InstalledVersions
{
private static $installed = array (
'root' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'aliases' =>
array (
),
<<<<<<< HEAD
'reference' => 'ea886da10cdbdad164cd253003e862a0ec7ecd6c',
=======
'reference' => '05f58f90d743fe9ade24f3fdfe9a934d0b87c6a1',
>>>>>>> master
'name' => '__root__',
),
'versions' =>
array (
'__root__' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'aliases' =>
array (
),
<<<<<<< HEAD
'reference' => 'ea886da10cdbdad164cd253003e862a0ec7ecd6c',
=======
'reference' => '05f58f90d743fe9ade24f3fdfe9a934d0b87c6a1',
>>>>>>> master
),
'katzgrau/klogger' =>
array (
'pretty_version' => '1.0.0',
'version' => '1.0.0.0',
'aliases' =>
array (
),
'reference' => '46cdd92a9b4a8443120cc955bf831450cb274813',
),
<<<<<<< HEAD
=======
'laminas/laminas-db' =>
array (
'pretty_version' => '2.11.4',
'version' => '2.11.4.0',
'aliases' =>
array (
),
'reference' => '5b59413b8dd5d79e3fe58c2650c60b1730989f36',
),
'laminas/laminas-stdlib' =>
array (
'pretty_version' => '3.2.1',
'version' => '3.2.1.0',
'aliases' =>
array (
),
'reference' => '2b18347625a2f06a1a485acfbc870f699dbe51c6',
),
'laminas/laminas-zendframework-bridge' =>
array (
'pretty_version' => '1.1.1',
'version' => '1.1.1.0',
'aliases' =>
array (
),
'reference' => '6ede70583e101030bcace4dcddd648f760ddf642',
),
>>>>>>> master
'psr/log' =>
array (
'pretty_version' => '1.0.0',
'version' => '1.0.0.0',
'aliases' =>
array (
),
'reference' => 'fe0936ee26643249e916849d48e3a51d5f5e278b',
),
'psr/simple-cache' =>
array (
'pretty_version' => '1.0.1',
'version' => '1.0.1.0',
'aliases' =>
array (
),
'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
),
'psr/simple-cache-implementation' =>
array (
'provided' =>
array (
0 => '1.0',
),
),
'voku/simple-cache' =>
array (
'pretty_version' => '4.0.5',
'version' => '4.0.5.0',
'aliases' =>
array (
),
'reference' => '416cf88902991f3bf6168b71c0683e6dabb3d5e1',
),
<<<<<<< HEAD
=======
'zendframework/zend-db' =>
array (
'replaced' =>
array (
0 => '^2.11.0',
),
),
'zendframework/zend-stdlib' =>
array (
'replaced' =>
array (
0 => '3.2.1',
),
),
>>>>>>> master
),
);
private static $canGetVendors;
private static $installedByVendor = array();
public static function getInstalledPackages()
{
$packages = array();
foreach (self::getInstalled() as $installed) {
$packages[] = array_keys($installed['versions']);
}
if (1 === \count($packages)) {
return $packages[0];
}
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
}
public static function isInstalled($packageName)
{
foreach (self::getInstalled() as $installed) {
if (isset($installed['versions'][$packageName])) {
return true;
}
}
return false;
}
public static function satisfies(VersionParser $parser, $packageName, $constraint)
{
$constraint = $parser->parseConstraints($constraint);
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
return $provided->matches($constraint);
}
public static function getVersionRanges($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
$ranges = array();
if (isset($installed['versions'][$packageName]['pretty_version'])) {
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
}
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
}
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
}
if (array_key_exists('provided', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
}
return implode(' || ', $ranges);
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['version'])) {
return null;
}
return $installed['versions'][$packageName]['version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getPrettyVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
return null;
}
return $installed['versions'][$packageName]['pretty_version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getReference($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['reference'])) {
return null;
}
return $installed['versions'][$packageName]['reference'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getRootPackage()
{
$installed = self::getInstalled();
return $installed[0]['root'];
}
public static function getRawData()
{
return self::$installed;
}
public static function reload($data)
{
self::$installed = $data;
self::$installedByVendor = array();
}
private static function getInstalled()
{
if (null === self::$canGetVendors) {
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
}
$installed = array();
if (self::$canGetVendors) {
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
}
}
}
$installed[] = self::$installed;
return $installed;
}
}

View File

@ -0,0 +1,326 @@
<?php
namespace Composer;
use Composer\Autoload\ClassLoader;
use Composer\Semver\VersionParser;
class InstalledVersions
{
private static $installed = array (
'root' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'aliases' =>
array (
),
'reference' => 'ea886da10cdbdad164cd253003e862a0ec7ecd6c',
'name' => '__root__',
),
'versions' =>
array (
'__root__' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'aliases' =>
array (
),
'reference' => 'ea886da10cdbdad164cd253003e862a0ec7ecd6c',
),
'katzgrau/klogger' =>
array (
'pretty_version' => '1.0.0',
'version' => '1.0.0.0',
'aliases' =>
array (
),
'reference' => '46cdd92a9b4a8443120cc955bf831450cb274813',
),
'psr/log' =>
array (
'pretty_version' => '1.0.0',
'version' => '1.0.0.0',
'aliases' =>
array (
),
'reference' => 'fe0936ee26643249e916849d48e3a51d5f5e278b',
),
'psr/simple-cache' =>
array (
'pretty_version' => '1.0.1',
'version' => '1.0.1.0',
'aliases' =>
array (
),
'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
),
'psr/simple-cache-implementation' =>
array (
'provided' =>
array (
0 => '1.0',
),
),
'voku/simple-cache' =>
array (
'pretty_version' => '4.0.5',
'version' => '4.0.5.0',
'aliases' =>
array (
),
'reference' => '416cf88902991f3bf6168b71c0683e6dabb3d5e1',
),
),
);
private static $canGetVendors;
private static $installedByVendor = array();
public static function getInstalledPackages()
{
$packages = array();
foreach (self::getInstalled() as $installed) {
$packages[] = array_keys($installed['versions']);
}
if (1 === \count($packages)) {
return $packages[0];
}
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
}
public static function isInstalled($packageName)
{
foreach (self::getInstalled() as $installed) {
if (isset($installed['versions'][$packageName])) {
return true;
}
}
return false;
}
public static function satisfies(VersionParser $parser, $packageName, $constraint)
{
$constraint = $parser->parseConstraints($constraint);
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
return $provided->matches($constraint);
}
public static function getVersionRanges($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
$ranges = array();
if (isset($installed['versions'][$packageName]['pretty_version'])) {
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
}
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
}
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
}
if (array_key_exists('provided', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
}
return implode(' || ', $ranges);
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['version'])) {
return null;
}
return $installed['versions'][$packageName]['version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getPrettyVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
return null;
}
return $installed['versions'][$packageName]['pretty_version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getReference($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['reference'])) {
return null;
}
return $installed['versions'][$packageName]['reference'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getRootPackage()
{
$installed = self::getInstalled();
return $installed[0]['root'];
}
public static function getRawData()
{
return self::$installed;
}
public static function reload($data)
{
self::$installed = $data;
self::$installedByVendor = array();
}
private static function getInstalled()
{
if (null === self::$canGetVendors) {
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
}
$installed = array();
if (self::$canGetVendors) {
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
}
}
}
$installed[] = self::$installed;
return $installed;
}
}

View File

@ -0,0 +1,367 @@
<?php
namespace Composer;
use Composer\Autoload\ClassLoader;
use Composer\Semver\VersionParser;
class InstalledVersions
{
private static $installed = array (
'root' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'aliases' =>
array (
),
'reference' => '05f58f90d743fe9ade24f3fdfe9a934d0b87c6a1',
'name' => '__root__',
),
'versions' =>
array (
'__root__' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'aliases' =>
array (
),
'reference' => '05f58f90d743fe9ade24f3fdfe9a934d0b87c6a1',
),
'katzgrau/klogger' =>
array (
'pretty_version' => '1.0.0',
'version' => '1.0.0.0',
'aliases' =>
array (
),
'reference' => '46cdd92a9b4a8443120cc955bf831450cb274813',
),
'laminas/laminas-db' =>
array (
'pretty_version' => '2.11.4',
'version' => '2.11.4.0',
'aliases' =>
array (
),
'reference' => '5b59413b8dd5d79e3fe58c2650c60b1730989f36',
),
'laminas/laminas-stdlib' =>
array (
'pretty_version' => '3.2.1',
'version' => '3.2.1.0',
'aliases' =>
array (
),
'reference' => '2b18347625a2f06a1a485acfbc870f699dbe51c6',
),
'laminas/laminas-zendframework-bridge' =>
array (
'pretty_version' => '1.1.1',
'version' => '1.1.1.0',
'aliases' =>
array (
),
'reference' => '6ede70583e101030bcace4dcddd648f760ddf642',
),
'psr/log' =>
array (
'pretty_version' => '1.0.0',
'version' => '1.0.0.0',
'aliases' =>
array (
),
'reference' => 'fe0936ee26643249e916849d48e3a51d5f5e278b',
),
'psr/simple-cache' =>
array (
'pretty_version' => '1.0.1',
'version' => '1.0.1.0',
'aliases' =>
array (
),
'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
),
'psr/simple-cache-implementation' =>
array (
'provided' =>
array (
0 => '1.0',
),
),
'voku/simple-cache' =>
array (
'pretty_version' => '4.0.5',
'version' => '4.0.5.0',
'aliases' =>
array (
),
'reference' => '416cf88902991f3bf6168b71c0683e6dabb3d5e1',
),
'zendframework/zend-db' =>
array (
'replaced' =>
array (
0 => '^2.11.0',
),
),
'zendframework/zend-stdlib' =>
array (
'replaced' =>
array (
0 => '3.2.1',
),
),
),
);
private static $canGetVendors;
private static $installedByVendor = array();
public static function getInstalledPackages()
{
$packages = array();
foreach (self::getInstalled() as $installed) {
$packages[] = array_keys($installed['versions']);
}
if (1 === \count($packages)) {
return $packages[0];
}
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
}
public static function isInstalled($packageName)
{
foreach (self::getInstalled() as $installed) {
if (isset($installed['versions'][$packageName])) {
return true;
}
}
return false;
}
public static function satisfies(VersionParser $parser, $packageName, $constraint)
{
$constraint = $parser->parseConstraints($constraint);
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
return $provided->matches($constraint);
}
public static function getVersionRanges($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
$ranges = array();
if (isset($installed['versions'][$packageName]['pretty_version'])) {
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
}
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
}
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
}
if (array_key_exists('provided', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
}
return implode(' || ', $ranges);
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['version'])) {
return null;
}
return $installed['versions'][$packageName]['version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getPrettyVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
return null;
}
return $installed['versions'][$packageName]['pretty_version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getReference($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['reference'])) {
return null;
}
return $installed['versions'][$packageName]['reference'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getRootPackage()
{
$installed = self::getInstalled();
return $installed[0]['root'];
}
public static function getRawData()
{
return self::$installed;
}
public static function reload($data)
{
self::$installed = $data;
self::$installedByVendor = array();
}
private static function getInstalled()
{
if (null === self::$canGetVendors) {
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
}
$installed = array();
if (self::$canGetVendors) {
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
}
}
}
$installed[] = self::$installed;
return $installed;
}
}

View File

@ -8,261 +8,6 @@ $baseDir = dirname($vendorDir);
return array(
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
'Katzgrau\\KLogger\\Logger' => $vendorDir . '/katzgrau/klogger/src/Logger.php',
'Laminas\\Db\\Adapter\\Adapter' => $vendorDir . '/laminas/laminas-db/src/Adapter/Adapter.php',
'Laminas\\Db\\Adapter\\AdapterAbstractServiceFactory' => $vendorDir . '/laminas/laminas-db/src/Adapter/AdapterAbstractServiceFactory.php',
'Laminas\\Db\\Adapter\\AdapterAwareInterface' => $vendorDir . '/laminas/laminas-db/src/Adapter/AdapterAwareInterface.php',
'Laminas\\Db\\Adapter\\AdapterAwareTrait' => $vendorDir . '/laminas/laminas-db/src/Adapter/AdapterAwareTrait.php',
'Laminas\\Db\\Adapter\\AdapterInterface' => $vendorDir . '/laminas/laminas-db/src/Adapter/AdapterInterface.php',
'Laminas\\Db\\Adapter\\AdapterServiceFactory' => $vendorDir . '/laminas/laminas-db/src/Adapter/AdapterServiceFactory.php',
'Laminas\\Db\\Adapter\\Driver\\AbstractConnection' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/AbstractConnection.php',
'Laminas\\Db\\Adapter\\Driver\\ConnectionInterface' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/ConnectionInterface.php',
'Laminas\\Db\\Adapter\\Driver\\DriverInterface' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/DriverInterface.php',
'Laminas\\Db\\Adapter\\Driver\\Feature\\AbstractFeature' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Feature/AbstractFeature.php',
'Laminas\\Db\\Adapter\\Driver\\Feature\\DriverFeatureInterface' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Feature/DriverFeatureInterface.php',
'Laminas\\Db\\Adapter\\Driver\\IbmDb2\\Connection' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/IbmDb2/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\IbmDb2\\IbmDb2' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/IbmDb2/IbmDb2.php',
'Laminas\\Db\\Adapter\\Driver\\IbmDb2\\Result' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/IbmDb2/Result.php',
'Laminas\\Db\\Adapter\\Driver\\IbmDb2\\Statement' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/IbmDb2/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\Mysqli\\Connection' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Mysqli/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\Mysqli\\Mysqli' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Mysqli/Mysqli.php',
'Laminas\\Db\\Adapter\\Driver\\Mysqli\\Result' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Mysqli/Result.php',
'Laminas\\Db\\Adapter\\Driver\\Mysqli\\Statement' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Mysqli/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\Oci8\\Connection' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Oci8/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\Oci8\\Feature\\RowCounter' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Oci8/Feature/RowCounter.php',
'Laminas\\Db\\Adapter\\Driver\\Oci8\\Oci8' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Oci8/Oci8.php',
'Laminas\\Db\\Adapter\\Driver\\Oci8\\Result' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Oci8/Result.php',
'Laminas\\Db\\Adapter\\Driver\\Oci8\\Statement' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Oci8/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Connection' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Feature\\OracleRowCounter' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Feature/OracleRowCounter.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Feature\\SqliteRowCounter' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Feature/SqliteRowCounter.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Pdo' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Pdo.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Result' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Result.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Statement' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\Pgsql\\Connection' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Pgsql/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\Pgsql\\Pgsql' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Pgsql/Pgsql.php',
'Laminas\\Db\\Adapter\\Driver\\Pgsql\\Result' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Pgsql/Result.php',
'Laminas\\Db\\Adapter\\Driver\\Pgsql\\Statement' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Pgsql/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\ResultInterface' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/ResultInterface.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Connection' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Exception\\ErrorException' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Exception/ErrorException.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Exception\\ExceptionInterface' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Exception/ExceptionInterface.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Result' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Result.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Sqlsrv' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Sqlsrv.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Statement' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\StatementInterface' => $vendorDir . '/laminas/laminas-db/src/Adapter/Driver/StatementInterface.php',
'Laminas\\Db\\Adapter\\Exception\\ErrorException' => $vendorDir . '/laminas/laminas-db/src/Adapter/Exception/ErrorException.php',
'Laminas\\Db\\Adapter\\Exception\\ExceptionInterface' => $vendorDir . '/laminas/laminas-db/src/Adapter/Exception/ExceptionInterface.php',
'Laminas\\Db\\Adapter\\Exception\\InvalidArgumentException' => $vendorDir . '/laminas/laminas-db/src/Adapter/Exception/InvalidArgumentException.php',
'Laminas\\Db\\Adapter\\Exception\\InvalidConnectionParametersException' => $vendorDir . '/laminas/laminas-db/src/Adapter/Exception/InvalidConnectionParametersException.php',
'Laminas\\Db\\Adapter\\Exception\\InvalidQueryException' => $vendorDir . '/laminas/laminas-db/src/Adapter/Exception/InvalidQueryException.php',
'Laminas\\Db\\Adapter\\Exception\\RuntimeException' => $vendorDir . '/laminas/laminas-db/src/Adapter/Exception/RuntimeException.php',
'Laminas\\Db\\Adapter\\Exception\\UnexpectedValueException' => $vendorDir . '/laminas/laminas-db/src/Adapter/Exception/UnexpectedValueException.php',
'Laminas\\Db\\Adapter\\ParameterContainer' => $vendorDir . '/laminas/laminas-db/src/Adapter/ParameterContainer.php',
'Laminas\\Db\\Adapter\\Platform\\AbstractPlatform' => $vendorDir . '/laminas/laminas-db/src/Adapter/Platform/AbstractPlatform.php',
'Laminas\\Db\\Adapter\\Platform\\IbmDb2' => $vendorDir . '/laminas/laminas-db/src/Adapter/Platform/IbmDb2.php',
'Laminas\\Db\\Adapter\\Platform\\Mysql' => $vendorDir . '/laminas/laminas-db/src/Adapter/Platform/Mysql.php',
'Laminas\\Db\\Adapter\\Platform\\Oracle' => $vendorDir . '/laminas/laminas-db/src/Adapter/Platform/Oracle.php',
'Laminas\\Db\\Adapter\\Platform\\PlatformInterface' => $vendorDir . '/laminas/laminas-db/src/Adapter/Platform/PlatformInterface.php',
'Laminas\\Db\\Adapter\\Platform\\Postgresql' => $vendorDir . '/laminas/laminas-db/src/Adapter/Platform/Postgresql.php',
'Laminas\\Db\\Adapter\\Platform\\Sql92' => $vendorDir . '/laminas/laminas-db/src/Adapter/Platform/Sql92.php',
'Laminas\\Db\\Adapter\\Platform\\SqlServer' => $vendorDir . '/laminas/laminas-db/src/Adapter/Platform/SqlServer.php',
'Laminas\\Db\\Adapter\\Platform\\Sqlite' => $vendorDir . '/laminas/laminas-db/src/Adapter/Platform/Sqlite.php',
'Laminas\\Db\\Adapter\\Profiler\\Profiler' => $vendorDir . '/laminas/laminas-db/src/Adapter/Profiler/Profiler.php',
'Laminas\\Db\\Adapter\\Profiler\\ProfilerAwareInterface' => $vendorDir . '/laminas/laminas-db/src/Adapter/Profiler/ProfilerAwareInterface.php',
'Laminas\\Db\\Adapter\\Profiler\\ProfilerInterface' => $vendorDir . '/laminas/laminas-db/src/Adapter/Profiler/ProfilerInterface.php',
'Laminas\\Db\\Adapter\\StatementContainer' => $vendorDir . '/laminas/laminas-db/src/Adapter/StatementContainer.php',
'Laminas\\Db\\Adapter\\StatementContainerInterface' => $vendorDir . '/laminas/laminas-db/src/Adapter/StatementContainerInterface.php',
'Laminas\\Db\\ConfigProvider' => $vendorDir . '/laminas/laminas-db/src/ConfigProvider.php',
'Laminas\\Db\\Exception\\ErrorException' => $vendorDir . '/laminas/laminas-db/src/Exception/ErrorException.php',
'Laminas\\Db\\Exception\\ExceptionInterface' => $vendorDir . '/laminas/laminas-db/src/Exception/ExceptionInterface.php',
'Laminas\\Db\\Exception\\InvalidArgumentException' => $vendorDir . '/laminas/laminas-db/src/Exception/InvalidArgumentException.php',
'Laminas\\Db\\Exception\\RuntimeException' => $vendorDir . '/laminas/laminas-db/src/Exception/RuntimeException.php',
'Laminas\\Db\\Exception\\UnexpectedValueException' => $vendorDir . '/laminas/laminas-db/src/Exception/UnexpectedValueException.php',
'Laminas\\Db\\Metadata\\Metadata' => $vendorDir . '/laminas/laminas-db/src/Metadata/Metadata.php',
'Laminas\\Db\\Metadata\\MetadataInterface' => $vendorDir . '/laminas/laminas-db/src/Metadata/MetadataInterface.php',
'Laminas\\Db\\Metadata\\Object\\AbstractTableObject' => $vendorDir . '/laminas/laminas-db/src/Metadata/Object/AbstractTableObject.php',
'Laminas\\Db\\Metadata\\Object\\ColumnObject' => $vendorDir . '/laminas/laminas-db/src/Metadata/Object/ColumnObject.php',
'Laminas\\Db\\Metadata\\Object\\ConstraintKeyObject' => $vendorDir . '/laminas/laminas-db/src/Metadata/Object/ConstraintKeyObject.php',
'Laminas\\Db\\Metadata\\Object\\ConstraintObject' => $vendorDir . '/laminas/laminas-db/src/Metadata/Object/ConstraintObject.php',
'Laminas\\Db\\Metadata\\Object\\TableObject' => $vendorDir . '/laminas/laminas-db/src/Metadata/Object/TableObject.php',
'Laminas\\Db\\Metadata\\Object\\TriggerObject' => $vendorDir . '/laminas/laminas-db/src/Metadata/Object/TriggerObject.php',
'Laminas\\Db\\Metadata\\Object\\ViewObject' => $vendorDir . '/laminas/laminas-db/src/Metadata/Object/ViewObject.php',
'Laminas\\Db\\Metadata\\Source\\AbstractSource' => $vendorDir . '/laminas/laminas-db/src/Metadata/Source/AbstractSource.php',
'Laminas\\Db\\Metadata\\Source\\Factory' => $vendorDir . '/laminas/laminas-db/src/Metadata/Source/Factory.php',
'Laminas\\Db\\Metadata\\Source\\MysqlMetadata' => $vendorDir . '/laminas/laminas-db/src/Metadata/Source/MysqlMetadata.php',
'Laminas\\Db\\Metadata\\Source\\OracleMetadata' => $vendorDir . '/laminas/laminas-db/src/Metadata/Source/OracleMetadata.php',
'Laminas\\Db\\Metadata\\Source\\PostgresqlMetadata' => $vendorDir . '/laminas/laminas-db/src/Metadata/Source/PostgresqlMetadata.php',
'Laminas\\Db\\Metadata\\Source\\SqlServerMetadata' => $vendorDir . '/laminas/laminas-db/src/Metadata/Source/SqlServerMetadata.php',
'Laminas\\Db\\Metadata\\Source\\SqliteMetadata' => $vendorDir . '/laminas/laminas-db/src/Metadata/Source/SqliteMetadata.php',
'Laminas\\Db\\Module' => $vendorDir . '/laminas/laminas-db/src/Module.php',
'Laminas\\Db\\ResultSet\\AbstractResultSet' => $vendorDir . '/laminas/laminas-db/src/ResultSet/AbstractResultSet.php',
'Laminas\\Db\\ResultSet\\Exception\\ExceptionInterface' => $vendorDir . '/laminas/laminas-db/src/ResultSet/Exception/ExceptionInterface.php',
'Laminas\\Db\\ResultSet\\Exception\\InvalidArgumentException' => $vendorDir . '/laminas/laminas-db/src/ResultSet/Exception/InvalidArgumentException.php',
'Laminas\\Db\\ResultSet\\Exception\\RuntimeException' => $vendorDir . '/laminas/laminas-db/src/ResultSet/Exception/RuntimeException.php',
'Laminas\\Db\\ResultSet\\HydratingResultSet' => $vendorDir . '/laminas/laminas-db/src/ResultSet/HydratingResultSet.php',
'Laminas\\Db\\ResultSet\\ResultSet' => $vendorDir . '/laminas/laminas-db/src/ResultSet/ResultSet.php',
'Laminas\\Db\\ResultSet\\ResultSetInterface' => $vendorDir . '/laminas/laminas-db/src/ResultSet/ResultSetInterface.php',
'Laminas\\Db\\RowGateway\\AbstractRowGateway' => $vendorDir . '/laminas/laminas-db/src/RowGateway/AbstractRowGateway.php',
'Laminas\\Db\\RowGateway\\Exception\\ExceptionInterface' => $vendorDir . '/laminas/laminas-db/src/RowGateway/Exception/ExceptionInterface.php',
'Laminas\\Db\\RowGateway\\Exception\\InvalidArgumentException' => $vendorDir . '/laminas/laminas-db/src/RowGateway/Exception/InvalidArgumentException.php',
'Laminas\\Db\\RowGateway\\Exception\\RuntimeException' => $vendorDir . '/laminas/laminas-db/src/RowGateway/Exception/RuntimeException.php',
'Laminas\\Db\\RowGateway\\Feature\\AbstractFeature' => $vendorDir . '/laminas/laminas-db/src/RowGateway/Feature/AbstractFeature.php',
'Laminas\\Db\\RowGateway\\Feature\\FeatureSet' => $vendorDir . '/laminas/laminas-db/src/RowGateway/Feature/FeatureSet.php',
'Laminas\\Db\\RowGateway\\RowGateway' => $vendorDir . '/laminas/laminas-db/src/RowGateway/RowGateway.php',
'Laminas\\Db\\RowGateway\\RowGatewayInterface' => $vendorDir . '/laminas/laminas-db/src/RowGateway/RowGatewayInterface.php',
'Laminas\\Db\\Sql\\AbstractExpression' => $vendorDir . '/laminas/laminas-db/src/Sql/AbstractExpression.php',
'Laminas\\Db\\Sql\\AbstractPreparableSql' => $vendorDir . '/laminas/laminas-db/src/Sql/AbstractPreparableSql.php',
'Laminas\\Db\\Sql\\AbstractSql' => $vendorDir . '/laminas/laminas-db/src/Sql/AbstractSql.php',
'Laminas\\Db\\Sql\\Combine' => $vendorDir . '/laminas/laminas-db/src/Sql/Combine.php',
'Laminas\\Db\\Sql\\Ddl\\AlterTable' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/AlterTable.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\AbstractLengthColumn' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/AbstractLengthColumn.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\AbstractPrecisionColumn' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/AbstractPrecisionColumn.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\AbstractTimestampColumn' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/AbstractTimestampColumn.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\BigInteger' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/BigInteger.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Binary' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Binary.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Blob' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Blob.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Boolean' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Boolean.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Char' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Char.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Column' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Column.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\ColumnInterface' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/ColumnInterface.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Date' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Date.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Datetime' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Datetime.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Decimal' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Decimal.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Float' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Float.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Floating' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Floating.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Integer' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Integer.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Text' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Text.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Time' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Time.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Timestamp' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Timestamp.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Varbinary' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Varbinary.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Varchar' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Column/Varchar.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\AbstractConstraint' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Constraint/AbstractConstraint.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\Check' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Constraint/Check.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\ConstraintInterface' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Constraint/ConstraintInterface.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\ForeignKey' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Constraint/ForeignKey.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\PrimaryKey' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Constraint/PrimaryKey.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\UniqueKey' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Constraint/UniqueKey.php',
'Laminas\\Db\\Sql\\Ddl\\CreateTable' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/CreateTable.php',
'Laminas\\Db\\Sql\\Ddl\\DropTable' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/DropTable.php',
'Laminas\\Db\\Sql\\Ddl\\Index\\AbstractIndex' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Index/AbstractIndex.php',
'Laminas\\Db\\Sql\\Ddl\\Index\\Index' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/Index/Index.php',
'Laminas\\Db\\Sql\\Ddl\\SqlInterface' => $vendorDir . '/laminas/laminas-db/src/Sql/Ddl/SqlInterface.php',
'Laminas\\Db\\Sql\\Delete' => $vendorDir . '/laminas/laminas-db/src/Sql/Delete.php',
'Laminas\\Db\\Sql\\Exception\\ExceptionInterface' => $vendorDir . '/laminas/laminas-db/src/Sql/Exception/ExceptionInterface.php',
'Laminas\\Db\\Sql\\Exception\\InvalidArgumentException' => $vendorDir . '/laminas/laminas-db/src/Sql/Exception/InvalidArgumentException.php',
'Laminas\\Db\\Sql\\Exception\\RuntimeException' => $vendorDir . '/laminas/laminas-db/src/Sql/Exception/RuntimeException.php',
'Laminas\\Db\\Sql\\Expression' => $vendorDir . '/laminas/laminas-db/src/Sql/Expression.php',
'Laminas\\Db\\Sql\\ExpressionInterface' => $vendorDir . '/laminas/laminas-db/src/Sql/ExpressionInterface.php',
'Laminas\\Db\\Sql\\Having' => $vendorDir . '/laminas/laminas-db/src/Sql/Having.php',
'Laminas\\Db\\Sql\\Insert' => $vendorDir . '/laminas/laminas-db/src/Sql/Insert.php',
'Laminas\\Db\\Sql\\InsertIgnore' => $vendorDir . '/laminas/laminas-db/src/Sql/InsertIgnore.php',
'Laminas\\Db\\Sql\\Join' => $vendorDir . '/laminas/laminas-db/src/Sql/Join.php',
'Laminas\\Db\\Sql\\Literal' => $vendorDir . '/laminas/laminas-db/src/Sql/Literal.php',
'Laminas\\Db\\Sql\\Platform\\AbstractPlatform' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/AbstractPlatform.php',
'Laminas\\Db\\Sql\\Platform\\IbmDb2\\IbmDb2' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/IbmDb2/IbmDb2.php',
'Laminas\\Db\\Sql\\Platform\\IbmDb2\\SelectDecorator' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/IbmDb2/SelectDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Mysql\\Ddl\\AlterTableDecorator' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/Mysql/Ddl/AlterTableDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Mysql\\Ddl\\CreateTableDecorator' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/Mysql/Ddl/CreateTableDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Mysql\\Mysql' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/Mysql/Mysql.php',
'Laminas\\Db\\Sql\\Platform\\Mysql\\SelectDecorator' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/Mysql/SelectDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Oracle\\Oracle' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/Oracle/Oracle.php',
'Laminas\\Db\\Sql\\Platform\\Oracle\\SelectDecorator' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/Oracle/SelectDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Platform' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/Platform.php',
'Laminas\\Db\\Sql\\Platform\\PlatformDecoratorInterface' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/PlatformDecoratorInterface.php',
'Laminas\\Db\\Sql\\Platform\\SqlServer\\Ddl\\CreateTableDecorator' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/SqlServer/Ddl/CreateTableDecorator.php',
'Laminas\\Db\\Sql\\Platform\\SqlServer\\SelectDecorator' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/SqlServer/SelectDecorator.php',
'Laminas\\Db\\Sql\\Platform\\SqlServer\\SqlServer' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/SqlServer/SqlServer.php',
'Laminas\\Db\\Sql\\Platform\\Sqlite\\SelectDecorator' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/Sqlite/SelectDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Sqlite\\Sqlite' => $vendorDir . '/laminas/laminas-db/src/Sql/Platform/Sqlite/Sqlite.php',
'Laminas\\Db\\Sql\\Predicate\\Between' => $vendorDir . '/laminas/laminas-db/src/Sql/Predicate/Between.php',
'Laminas\\Db\\Sql\\Predicate\\Expression' => $vendorDir . '/laminas/laminas-db/src/Sql/Predicate/Expression.php',
'Laminas\\Db\\Sql\\Predicate\\In' => $vendorDir . '/laminas/laminas-db/src/Sql/Predicate/In.php',
'Laminas\\Db\\Sql\\Predicate\\IsNotNull' => $vendorDir . '/laminas/laminas-db/src/Sql/Predicate/IsNotNull.php',
'Laminas\\Db\\Sql\\Predicate\\IsNull' => $vendorDir . '/laminas/laminas-db/src/Sql/Predicate/IsNull.php',
'Laminas\\Db\\Sql\\Predicate\\Like' => $vendorDir . '/laminas/laminas-db/src/Sql/Predicate/Like.php',
'Laminas\\Db\\Sql\\Predicate\\Literal' => $vendorDir . '/laminas/laminas-db/src/Sql/Predicate/Literal.php',
'Laminas\\Db\\Sql\\Predicate\\NotBetween' => $vendorDir . '/laminas/laminas-db/src/Sql/Predicate/NotBetween.php',
'Laminas\\Db\\Sql\\Predicate\\NotIn' => $vendorDir . '/laminas/laminas-db/src/Sql/Predicate/NotIn.php',
'Laminas\\Db\\Sql\\Predicate\\NotLike' => $vendorDir . '/laminas/laminas-db/src/Sql/Predicate/NotLike.php',
'Laminas\\Db\\Sql\\Predicate\\Operator' => $vendorDir . '/laminas/laminas-db/src/Sql/Predicate/Operator.php',
'Laminas\\Db\\Sql\\Predicate\\Predicate' => $vendorDir . '/laminas/laminas-db/src/Sql/Predicate/Predicate.php',
'Laminas\\Db\\Sql\\Predicate\\PredicateInterface' => $vendorDir . '/laminas/laminas-db/src/Sql/Predicate/PredicateInterface.php',
'Laminas\\Db\\Sql\\Predicate\\PredicateSet' => $vendorDir . '/laminas/laminas-db/src/Sql/Predicate/PredicateSet.php',
'Laminas\\Db\\Sql\\PreparableSqlInterface' => $vendorDir . '/laminas/laminas-db/src/Sql/PreparableSqlInterface.php',
'Laminas\\Db\\Sql\\Select' => $vendorDir . '/laminas/laminas-db/src/Sql/Select.php',
'Laminas\\Db\\Sql\\Sql' => $vendorDir . '/laminas/laminas-db/src/Sql/Sql.php',
'Laminas\\Db\\Sql\\SqlInterface' => $vendorDir . '/laminas/laminas-db/src/Sql/SqlInterface.php',
'Laminas\\Db\\Sql\\TableIdentifier' => $vendorDir . '/laminas/laminas-db/src/Sql/TableIdentifier.php',
'Laminas\\Db\\Sql\\Update' => $vendorDir . '/laminas/laminas-db/src/Sql/Update.php',
'Laminas\\Db\\Sql\\Where' => $vendorDir . '/laminas/laminas-db/src/Sql/Where.php',
'Laminas\\Db\\TableGateway\\AbstractTableGateway' => $vendorDir . '/laminas/laminas-db/src/TableGateway/AbstractTableGateway.php',
'Laminas\\Db\\TableGateway\\Exception\\ExceptionInterface' => $vendorDir . '/laminas/laminas-db/src/TableGateway/Exception/ExceptionInterface.php',
'Laminas\\Db\\TableGateway\\Exception\\InvalidArgumentException' => $vendorDir . '/laminas/laminas-db/src/TableGateway/Exception/InvalidArgumentException.php',
'Laminas\\Db\\TableGateway\\Exception\\RuntimeException' => $vendorDir . '/laminas/laminas-db/src/TableGateway/Exception/RuntimeException.php',
'Laminas\\Db\\TableGateway\\Feature\\AbstractFeature' => $vendorDir . '/laminas/laminas-db/src/TableGateway/Feature/AbstractFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\EventFeature' => $vendorDir . '/laminas/laminas-db/src/TableGateway/Feature/EventFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\EventFeatureEventsInterface' => $vendorDir . '/laminas/laminas-db/src/TableGateway/Feature/EventFeatureEventsInterface.php',
'Laminas\\Db\\TableGateway\\Feature\\EventFeature\\TableGatewayEvent' => $vendorDir . '/laminas/laminas-db/src/TableGateway/Feature/EventFeature/TableGatewayEvent.php',
'Laminas\\Db\\TableGateway\\Feature\\FeatureSet' => $vendorDir . '/laminas/laminas-db/src/TableGateway/Feature/FeatureSet.php',
'Laminas\\Db\\TableGateway\\Feature\\GlobalAdapterFeature' => $vendorDir . '/laminas/laminas-db/src/TableGateway/Feature/GlobalAdapterFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\MasterSlaveFeature' => $vendorDir . '/laminas/laminas-db/src/TableGateway/Feature/MasterSlaveFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\MetadataFeature' => $vendorDir . '/laminas/laminas-db/src/TableGateway/Feature/MetadataFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\RowGatewayFeature' => $vendorDir . '/laminas/laminas-db/src/TableGateway/Feature/RowGatewayFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\SequenceFeature' => $vendorDir . '/laminas/laminas-db/src/TableGateway/Feature/SequenceFeature.php',
'Laminas\\Db\\TableGateway\\TableGateway' => $vendorDir . '/laminas/laminas-db/src/TableGateway/TableGateway.php',
'Laminas\\Db\\TableGateway\\TableGatewayInterface' => $vendorDir . '/laminas/laminas-db/src/TableGateway/TableGatewayInterface.php',
'Laminas\\Stdlib\\AbstractOptions' => $vendorDir . '/laminas/laminas-stdlib/src/AbstractOptions.php',
'Laminas\\Stdlib\\ArrayObject' => $vendorDir . '/laminas/laminas-stdlib/src/ArrayObject.php',
'Laminas\\Stdlib\\ArraySerializableInterface' => $vendorDir . '/laminas/laminas-stdlib/src/ArraySerializableInterface.php',
'Laminas\\Stdlib\\ArrayStack' => $vendorDir . '/laminas/laminas-stdlib/src/ArrayStack.php',
'Laminas\\Stdlib\\ArrayUtils' => $vendorDir . '/laminas/laminas-stdlib/src/ArrayUtils.php',
'Laminas\\Stdlib\\ArrayUtils\\MergeRemoveKey' => $vendorDir . '/laminas/laminas-stdlib/src/ArrayUtils/MergeRemoveKey.php',
'Laminas\\Stdlib\\ArrayUtils\\MergeReplaceKey' => $vendorDir . '/laminas/laminas-stdlib/src/ArrayUtils/MergeReplaceKey.php',
'Laminas\\Stdlib\\ArrayUtils\\MergeReplaceKeyInterface' => $vendorDir . '/laminas/laminas-stdlib/src/ArrayUtils/MergeReplaceKeyInterface.php',
'Laminas\\Stdlib\\ConsoleHelper' => $vendorDir . '/laminas/laminas-stdlib/src/ConsoleHelper.php',
'Laminas\\Stdlib\\DispatchableInterface' => $vendorDir . '/laminas/laminas-stdlib/src/DispatchableInterface.php',
'Laminas\\Stdlib\\ErrorHandler' => $vendorDir . '/laminas/laminas-stdlib/src/ErrorHandler.php',
'Laminas\\Stdlib\\Exception\\BadMethodCallException' => $vendorDir . '/laminas/laminas-stdlib/src/Exception/BadMethodCallException.php',
'Laminas\\Stdlib\\Exception\\DomainException' => $vendorDir . '/laminas/laminas-stdlib/src/Exception/DomainException.php',
'Laminas\\Stdlib\\Exception\\ExceptionInterface' => $vendorDir . '/laminas/laminas-stdlib/src/Exception/ExceptionInterface.php',
'Laminas\\Stdlib\\Exception\\ExtensionNotLoadedException' => $vendorDir . '/laminas/laminas-stdlib/src/Exception/ExtensionNotLoadedException.php',
'Laminas\\Stdlib\\Exception\\InvalidArgumentException' => $vendorDir . '/laminas/laminas-stdlib/src/Exception/InvalidArgumentException.php',
'Laminas\\Stdlib\\Exception\\LogicException' => $vendorDir . '/laminas/laminas-stdlib/src/Exception/LogicException.php',
'Laminas\\Stdlib\\Exception\\RuntimeException' => $vendorDir . '/laminas/laminas-stdlib/src/Exception/RuntimeException.php',
'Laminas\\Stdlib\\FastPriorityQueue' => $vendorDir . '/laminas/laminas-stdlib/src/FastPriorityQueue.php',
'Laminas\\Stdlib\\Glob' => $vendorDir . '/laminas/laminas-stdlib/src/Glob.php',
'Laminas\\Stdlib\\Guard\\AllGuardsTrait' => $vendorDir . '/laminas/laminas-stdlib/src/Guard/AllGuardsTrait.php',
'Laminas\\Stdlib\\Guard\\ArrayOrTraversableGuardTrait' => $vendorDir . '/laminas/laminas-stdlib/src/Guard/ArrayOrTraversableGuardTrait.php',
'Laminas\\Stdlib\\Guard\\EmptyGuardTrait' => $vendorDir . '/laminas/laminas-stdlib/src/Guard/EmptyGuardTrait.php',
'Laminas\\Stdlib\\Guard\\NullGuardTrait' => $vendorDir . '/laminas/laminas-stdlib/src/Guard/NullGuardTrait.php',
'Laminas\\Stdlib\\InitializableInterface' => $vendorDir . '/laminas/laminas-stdlib/src/InitializableInterface.php',
'Laminas\\Stdlib\\JsonSerializable' => $vendorDir . '/laminas/laminas-stdlib/src/JsonSerializable.php',
'Laminas\\Stdlib\\Message' => $vendorDir . '/laminas/laminas-stdlib/src/Message.php',
'Laminas\\Stdlib\\MessageInterface' => $vendorDir . '/laminas/laminas-stdlib/src/MessageInterface.php',
'Laminas\\Stdlib\\ParameterObjectInterface' => $vendorDir . '/laminas/laminas-stdlib/src/ParameterObjectInterface.php',
'Laminas\\Stdlib\\Parameters' => $vendorDir . '/laminas/laminas-stdlib/src/Parameters.php',
'Laminas\\Stdlib\\ParametersInterface' => $vendorDir . '/laminas/laminas-stdlib/src/ParametersInterface.php',
'Laminas\\Stdlib\\PriorityList' => $vendorDir . '/laminas/laminas-stdlib/src/PriorityList.php',
'Laminas\\Stdlib\\PriorityQueue' => $vendorDir . '/laminas/laminas-stdlib/src/PriorityQueue.php',
'Laminas\\Stdlib\\Request' => $vendorDir . '/laminas/laminas-stdlib/src/Request.php',
'Laminas\\Stdlib\\RequestInterface' => $vendorDir . '/laminas/laminas-stdlib/src/RequestInterface.php',
'Laminas\\Stdlib\\Response' => $vendorDir . '/laminas/laminas-stdlib/src/Response.php',
'Laminas\\Stdlib\\ResponseInterface' => $vendorDir . '/laminas/laminas-stdlib/src/ResponseInterface.php',
'Laminas\\Stdlib\\SplPriorityQueue' => $vendorDir . '/laminas/laminas-stdlib/src/SplPriorityQueue.php',
'Laminas\\Stdlib\\SplQueue' => $vendorDir . '/laminas/laminas-stdlib/src/SplQueue.php',
'Laminas\\Stdlib\\SplStack' => $vendorDir . '/laminas/laminas-stdlib/src/SplStack.php',
'Laminas\\Stdlib\\StringUtils' => $vendorDir . '/laminas/laminas-stdlib/src/StringUtils.php',
'Laminas\\Stdlib\\StringWrapper\\AbstractStringWrapper' => $vendorDir . '/laminas/laminas-stdlib/src/StringWrapper/AbstractStringWrapper.php',
'Laminas\\Stdlib\\StringWrapper\\Iconv' => $vendorDir . '/laminas/laminas-stdlib/src/StringWrapper/Iconv.php',
'Laminas\\Stdlib\\StringWrapper\\Intl' => $vendorDir . '/laminas/laminas-stdlib/src/StringWrapper/Intl.php',
'Laminas\\Stdlib\\StringWrapper\\MbString' => $vendorDir . '/laminas/laminas-stdlib/src/StringWrapper/MbString.php',
'Laminas\\Stdlib\\StringWrapper\\Native' => $vendorDir . '/laminas/laminas-stdlib/src/StringWrapper/Native.php',
'Laminas\\Stdlib\\StringWrapper\\StringWrapperInterface' => $vendorDir . '/laminas/laminas-stdlib/src/StringWrapper/StringWrapperInterface.php',
'Laminas\\ZendFrameworkBridge\\Autoloader' => $vendorDir . '/laminas/laminas-zendframework-bridge/src/Autoloader.php',
'Laminas\\ZendFrameworkBridge\\ConfigPostProcessor' => $vendorDir . '/laminas/laminas-zendframework-bridge/src/ConfigPostProcessor.php',
'Laminas\\ZendFrameworkBridge\\Module' => $vendorDir . '/laminas/laminas-zendframework-bridge/src/Module.php',
'Laminas\\ZendFrameworkBridge\\Replacements' => $vendorDir . '/laminas/laminas-zendframework-bridge/src/Replacements.php',
'Laminas\\ZendFrameworkBridge\\RewriteRules' => $vendorDir . '/laminas/laminas-zendframework-bridge/src/RewriteRules.php',
'Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/Psr/Log/AbstractLogger.php',
'Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/Psr/Log/InvalidArgumentException.php',
'Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/Psr/Log/LogLevel.php',

View File

@ -1,10 +0,0 @@
<?php
// autoload_files.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'7e9bd612cc444b3eed788ebbe46263a0' => $vendorDir . '/laminas/laminas-zendframework-bridge/src/autoload.php',
);

View File

@ -8,8 +8,5 @@ $baseDir = dirname($vendorDir);
return array(
'voku\\cache\\' => array($vendorDir . '/voku/simple-cache/src/voku/cache'),
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
'Laminas\\ZendFrameworkBridge\\' => array($vendorDir . '/laminas/laminas-zendframework-bridge/src'),
'Laminas\\Stdlib\\' => array($vendorDir . '/laminas/laminas-stdlib/src'),
'Laminas\\Db\\' => array($vendorDir . '/laminas/laminas-db/src'),
'Katzgrau\\KLogger\\' => array($vendorDir . '/katzgrau/klogger/src'),
);

View File

@ -50,27 +50,9 @@ class ComposerAutoloaderInitcbda25b16bb8365467298ce193f0f30c
}
}
$loader->setApcuPrefix('3FCa+2qDld553P2McvH+w');
$loader->setApcuPrefix('stPjNJ6R//PsoDT+nlxLT');
$loader->register(true);
if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInitcbda25b16bb8365467298ce193f0f30c::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequirecbda25b16bb8365467298ce193f0f30c($fileIdentifier, $file);
}
return $loader;
}
}
function composerRequirecbda25b16bb8365467298ce193f0f30c($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file;
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
}
}

View File

@ -0,0 +1,80 @@
<?php
// autoload_real.php @generated by Composer
class ComposerAutoloaderInitcbda25b16bb8365467298ce193f0f30c
{
private static $loader;
public static function loadClassLoader($class)
{
if ('Composer\Autoload\ClassLoader' === $class) {
require __DIR__ . '/ClassLoader.php';
}
}
/**
* @return \Composer\Autoload\ClassLoader
*/
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
require __DIR__ . '/platform_check.php';
spl_autoload_register(array('ComposerAutoloaderInitcbda25b16bb8365467298ce193f0f30c', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
spl_autoload_unregister(array('ComposerAutoloaderInitcbda25b16bb8365467298ce193f0f30c', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitcbda25b16bb8365467298ce193f0f30c::getInitializer($loader));
} else {
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
$loader->set($namespace, $path);
}
$map = require __DIR__ . '/autoload_psr4.php';
foreach ($map as $namespace => $path) {
$loader->setPsr4($namespace, $path);
}
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
}
<<<<<<< HEAD
$loader->setApcuPrefix('28BtV+nSo+i2r5OI8fIU9');
=======
$loader->setApcuPrefix('3FCa+2qDld553P2McvH+w');
>>>>>>> master
$loader->register(true);
if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInitcbda25b16bb8365467298ce193f0f30c::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequirecbda25b16bb8365467298ce193f0f30c($fileIdentifier, $file);
}
return $loader;
}
}
function composerRequirecbda25b16bb8365467298ce193f0f30c($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file;
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
}
}

View File

@ -6,10 +6,6 @@ namespace Composer\Autoload;
class ComposerStaticInitcbda25b16bb8365467298ce193f0f30c
{
public static $files = array (
'7e9bd612cc444b3eed788ebbe46263a0' => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src/autoload.php',
);
public static $prefixLengthsPsr4 = array (
'v' =>
array (
@ -19,12 +15,6 @@ class ComposerStaticInitcbda25b16bb8365467298ce193f0f30c
array (
'Psr\\SimpleCache\\' => 16,
),
'L' =>
array (
'Laminas\\ZendFrameworkBridge\\' => 28,
'Laminas\\Stdlib\\' => 15,
'Laminas\\Db\\' => 11,
),
'K' =>
array (
'Katzgrau\\KLogger\\' => 17,
@ -40,18 +30,6 @@ class ComposerStaticInitcbda25b16bb8365467298ce193f0f30c
array (
0 => __DIR__ . '/..' . '/psr/simple-cache/src',
),
'Laminas\\ZendFrameworkBridge\\' =>
array (
0 => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src',
),
'Laminas\\Stdlib\\' =>
array (
0 => __DIR__ . '/..' . '/laminas/laminas-stdlib/src',
),
'Laminas\\Db\\' =>
array (
0 => __DIR__ . '/..' . '/laminas/laminas-db/src',
),
'Katzgrau\\KLogger\\' =>
array (
0 => __DIR__ . '/..' . '/katzgrau/klogger/src',
@ -71,261 +49,6 @@ class ComposerStaticInitcbda25b16bb8365467298ce193f0f30c
public static $classMap = array (
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
'Katzgrau\\KLogger\\Logger' => __DIR__ . '/..' . '/katzgrau/klogger/src/Logger.php',
'Laminas\\Db\\Adapter\\Adapter' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Adapter.php',
'Laminas\\Db\\Adapter\\AdapterAbstractServiceFactory' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/AdapterAbstractServiceFactory.php',
'Laminas\\Db\\Adapter\\AdapterAwareInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/AdapterAwareInterface.php',
'Laminas\\Db\\Adapter\\AdapterAwareTrait' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/AdapterAwareTrait.php',
'Laminas\\Db\\Adapter\\AdapterInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/AdapterInterface.php',
'Laminas\\Db\\Adapter\\AdapterServiceFactory' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/AdapterServiceFactory.php',
'Laminas\\Db\\Adapter\\Driver\\AbstractConnection' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/AbstractConnection.php',
'Laminas\\Db\\Adapter\\Driver\\ConnectionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/ConnectionInterface.php',
'Laminas\\Db\\Adapter\\Driver\\DriverInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/DriverInterface.php',
'Laminas\\Db\\Adapter\\Driver\\Feature\\AbstractFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Feature/AbstractFeature.php',
'Laminas\\Db\\Adapter\\Driver\\Feature\\DriverFeatureInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Feature/DriverFeatureInterface.php',
'Laminas\\Db\\Adapter\\Driver\\IbmDb2\\Connection' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/IbmDb2/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\IbmDb2\\IbmDb2' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/IbmDb2/IbmDb2.php',
'Laminas\\Db\\Adapter\\Driver\\IbmDb2\\Result' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/IbmDb2/Result.php',
'Laminas\\Db\\Adapter\\Driver\\IbmDb2\\Statement' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/IbmDb2/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\Mysqli\\Connection' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Mysqli/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\Mysqli\\Mysqli' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Mysqli/Mysqli.php',
'Laminas\\Db\\Adapter\\Driver\\Mysqli\\Result' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Mysqli/Result.php',
'Laminas\\Db\\Adapter\\Driver\\Mysqli\\Statement' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Mysqli/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\Oci8\\Connection' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Oci8/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\Oci8\\Feature\\RowCounter' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Oci8/Feature/RowCounter.php',
'Laminas\\Db\\Adapter\\Driver\\Oci8\\Oci8' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Oci8/Oci8.php',
'Laminas\\Db\\Adapter\\Driver\\Oci8\\Result' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Oci8/Result.php',
'Laminas\\Db\\Adapter\\Driver\\Oci8\\Statement' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Oci8/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Connection' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Feature\\OracleRowCounter' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Feature/OracleRowCounter.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Feature\\SqliteRowCounter' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Feature/SqliteRowCounter.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Pdo' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Pdo.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Result' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Result.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Statement' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\Pgsql\\Connection' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pgsql/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\Pgsql\\Pgsql' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pgsql/Pgsql.php',
'Laminas\\Db\\Adapter\\Driver\\Pgsql\\Result' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pgsql/Result.php',
'Laminas\\Db\\Adapter\\Driver\\Pgsql\\Statement' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pgsql/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\ResultInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/ResultInterface.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Connection' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Exception\\ErrorException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Exception/ErrorException.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Exception/ExceptionInterface.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Result' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Result.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Sqlsrv' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Sqlsrv.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Statement' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\StatementInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/StatementInterface.php',
'Laminas\\Db\\Adapter\\Exception\\ErrorException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Exception/ErrorException.php',
'Laminas\\Db\\Adapter\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Exception/ExceptionInterface.php',
'Laminas\\Db\\Adapter\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Exception/InvalidArgumentException.php',
'Laminas\\Db\\Adapter\\Exception\\InvalidConnectionParametersException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Exception/InvalidConnectionParametersException.php',
'Laminas\\Db\\Adapter\\Exception\\InvalidQueryException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Exception/InvalidQueryException.php',
'Laminas\\Db\\Adapter\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Exception/RuntimeException.php',
'Laminas\\Db\\Adapter\\Exception\\UnexpectedValueException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Exception/UnexpectedValueException.php',
'Laminas\\Db\\Adapter\\ParameterContainer' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/ParameterContainer.php',
'Laminas\\Db\\Adapter\\Platform\\AbstractPlatform' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/AbstractPlatform.php',
'Laminas\\Db\\Adapter\\Platform\\IbmDb2' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/IbmDb2.php',
'Laminas\\Db\\Adapter\\Platform\\Mysql' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/Mysql.php',
'Laminas\\Db\\Adapter\\Platform\\Oracle' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/Oracle.php',
'Laminas\\Db\\Adapter\\Platform\\PlatformInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/PlatformInterface.php',
'Laminas\\Db\\Adapter\\Platform\\Postgresql' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/Postgresql.php',
'Laminas\\Db\\Adapter\\Platform\\Sql92' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/Sql92.php',
'Laminas\\Db\\Adapter\\Platform\\SqlServer' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/SqlServer.php',
'Laminas\\Db\\Adapter\\Platform\\Sqlite' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/Sqlite.php',
'Laminas\\Db\\Adapter\\Profiler\\Profiler' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Profiler/Profiler.php',
'Laminas\\Db\\Adapter\\Profiler\\ProfilerAwareInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Profiler/ProfilerAwareInterface.php',
'Laminas\\Db\\Adapter\\Profiler\\ProfilerInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Profiler/ProfilerInterface.php',
'Laminas\\Db\\Adapter\\StatementContainer' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/StatementContainer.php',
'Laminas\\Db\\Adapter\\StatementContainerInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/StatementContainerInterface.php',
'Laminas\\Db\\ConfigProvider' => __DIR__ . '/..' . '/laminas/laminas-db/src/ConfigProvider.php',
'Laminas\\Db\\Exception\\ErrorException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Exception/ErrorException.php',
'Laminas\\Db\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Exception/ExceptionInterface.php',
'Laminas\\Db\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Exception/InvalidArgumentException.php',
'Laminas\\Db\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Exception/RuntimeException.php',
'Laminas\\Db\\Exception\\UnexpectedValueException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Exception/UnexpectedValueException.php',
'Laminas\\Db\\Metadata\\Metadata' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Metadata.php',
'Laminas\\Db\\Metadata\\MetadataInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/MetadataInterface.php',
'Laminas\\Db\\Metadata\\Object\\AbstractTableObject' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Object/AbstractTableObject.php',
'Laminas\\Db\\Metadata\\Object\\ColumnObject' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Object/ColumnObject.php',
'Laminas\\Db\\Metadata\\Object\\ConstraintKeyObject' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Object/ConstraintKeyObject.php',
'Laminas\\Db\\Metadata\\Object\\ConstraintObject' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Object/ConstraintObject.php',
'Laminas\\Db\\Metadata\\Object\\TableObject' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Object/TableObject.php',
'Laminas\\Db\\Metadata\\Object\\TriggerObject' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Object/TriggerObject.php',
'Laminas\\Db\\Metadata\\Object\\ViewObject' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Object/ViewObject.php',
'Laminas\\Db\\Metadata\\Source\\AbstractSource' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Source/AbstractSource.php',
'Laminas\\Db\\Metadata\\Source\\Factory' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Source/Factory.php',
'Laminas\\Db\\Metadata\\Source\\MysqlMetadata' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Source/MysqlMetadata.php',
'Laminas\\Db\\Metadata\\Source\\OracleMetadata' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Source/OracleMetadata.php',
'Laminas\\Db\\Metadata\\Source\\PostgresqlMetadata' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Source/PostgresqlMetadata.php',
'Laminas\\Db\\Metadata\\Source\\SqlServerMetadata' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Source/SqlServerMetadata.php',
'Laminas\\Db\\Metadata\\Source\\SqliteMetadata' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Source/SqliteMetadata.php',
'Laminas\\Db\\Module' => __DIR__ . '/..' . '/laminas/laminas-db/src/Module.php',
'Laminas\\Db\\ResultSet\\AbstractResultSet' => __DIR__ . '/..' . '/laminas/laminas-db/src/ResultSet/AbstractResultSet.php',
'Laminas\\Db\\ResultSet\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/ResultSet/Exception/ExceptionInterface.php',
'Laminas\\Db\\ResultSet\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-db/src/ResultSet/Exception/InvalidArgumentException.php',
'Laminas\\Db\\ResultSet\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-db/src/ResultSet/Exception/RuntimeException.php',
'Laminas\\Db\\ResultSet\\HydratingResultSet' => __DIR__ . '/..' . '/laminas/laminas-db/src/ResultSet/HydratingResultSet.php',
'Laminas\\Db\\ResultSet\\ResultSet' => __DIR__ . '/..' . '/laminas/laminas-db/src/ResultSet/ResultSet.php',
'Laminas\\Db\\ResultSet\\ResultSetInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/ResultSet/ResultSetInterface.php',
'Laminas\\Db\\RowGateway\\AbstractRowGateway' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/AbstractRowGateway.php',
'Laminas\\Db\\RowGateway\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/Exception/ExceptionInterface.php',
'Laminas\\Db\\RowGateway\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/Exception/InvalidArgumentException.php',
'Laminas\\Db\\RowGateway\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/Exception/RuntimeException.php',
'Laminas\\Db\\RowGateway\\Feature\\AbstractFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/Feature/AbstractFeature.php',
'Laminas\\Db\\RowGateway\\Feature\\FeatureSet' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/Feature/FeatureSet.php',
'Laminas\\Db\\RowGateway\\RowGateway' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/RowGateway.php',
'Laminas\\Db\\RowGateway\\RowGatewayInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/RowGatewayInterface.php',
'Laminas\\Db\\Sql\\AbstractExpression' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/AbstractExpression.php',
'Laminas\\Db\\Sql\\AbstractPreparableSql' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/AbstractPreparableSql.php',
'Laminas\\Db\\Sql\\AbstractSql' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/AbstractSql.php',
'Laminas\\Db\\Sql\\Combine' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Combine.php',
'Laminas\\Db\\Sql\\Ddl\\AlterTable' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/AlterTable.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\AbstractLengthColumn' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/AbstractLengthColumn.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\AbstractPrecisionColumn' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/AbstractPrecisionColumn.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\AbstractTimestampColumn' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/AbstractTimestampColumn.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\BigInteger' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/BigInteger.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Binary' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Binary.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Blob' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Blob.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Boolean' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Boolean.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Char' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Char.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Column' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Column.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\ColumnInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/ColumnInterface.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Date' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Date.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Datetime' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Datetime.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Decimal' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Decimal.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Float' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Float.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Floating' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Floating.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Integer' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Integer.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Text' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Text.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Time' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Time.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Timestamp' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Timestamp.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Varbinary' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Varbinary.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Varchar' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Varchar.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\AbstractConstraint' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Constraint/AbstractConstraint.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\Check' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Constraint/Check.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\ConstraintInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Constraint/ConstraintInterface.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\ForeignKey' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Constraint/ForeignKey.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\PrimaryKey' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Constraint/PrimaryKey.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\UniqueKey' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Constraint/UniqueKey.php',
'Laminas\\Db\\Sql\\Ddl\\CreateTable' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/CreateTable.php',
'Laminas\\Db\\Sql\\Ddl\\DropTable' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/DropTable.php',
'Laminas\\Db\\Sql\\Ddl\\Index\\AbstractIndex' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Index/AbstractIndex.php',
'Laminas\\Db\\Sql\\Ddl\\Index\\Index' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Index/Index.php',
'Laminas\\Db\\Sql\\Ddl\\SqlInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/SqlInterface.php',
'Laminas\\Db\\Sql\\Delete' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Delete.php',
'Laminas\\Db\\Sql\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Exception/ExceptionInterface.php',
'Laminas\\Db\\Sql\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Exception/InvalidArgumentException.php',
'Laminas\\Db\\Sql\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Exception/RuntimeException.php',
'Laminas\\Db\\Sql\\Expression' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Expression.php',
'Laminas\\Db\\Sql\\ExpressionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/ExpressionInterface.php',
'Laminas\\Db\\Sql\\Having' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Having.php',
'Laminas\\Db\\Sql\\Insert' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Insert.php',
'Laminas\\Db\\Sql\\InsertIgnore' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/InsertIgnore.php',
'Laminas\\Db\\Sql\\Join' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Join.php',
'Laminas\\Db\\Sql\\Literal' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Literal.php',
'Laminas\\Db\\Sql\\Platform\\AbstractPlatform' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/AbstractPlatform.php',
'Laminas\\Db\\Sql\\Platform\\IbmDb2\\IbmDb2' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/IbmDb2/IbmDb2.php',
'Laminas\\Db\\Sql\\Platform\\IbmDb2\\SelectDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/IbmDb2/SelectDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Mysql\\Ddl\\AlterTableDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Mysql/Ddl/AlterTableDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Mysql\\Ddl\\CreateTableDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Mysql/Ddl/CreateTableDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Mysql\\Mysql' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Mysql/Mysql.php',
'Laminas\\Db\\Sql\\Platform\\Mysql\\SelectDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Mysql/SelectDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Oracle\\Oracle' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Oracle/Oracle.php',
'Laminas\\Db\\Sql\\Platform\\Oracle\\SelectDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Oracle/SelectDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Platform' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Platform.php',
'Laminas\\Db\\Sql\\Platform\\PlatformDecoratorInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/PlatformDecoratorInterface.php',
'Laminas\\Db\\Sql\\Platform\\SqlServer\\Ddl\\CreateTableDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/SqlServer/Ddl/CreateTableDecorator.php',
'Laminas\\Db\\Sql\\Platform\\SqlServer\\SelectDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/SqlServer/SelectDecorator.php',
'Laminas\\Db\\Sql\\Platform\\SqlServer\\SqlServer' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/SqlServer/SqlServer.php',
'Laminas\\Db\\Sql\\Platform\\Sqlite\\SelectDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Sqlite/SelectDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Sqlite\\Sqlite' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Sqlite/Sqlite.php',
'Laminas\\Db\\Sql\\Predicate\\Between' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/Between.php',
'Laminas\\Db\\Sql\\Predicate\\Expression' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/Expression.php',
'Laminas\\Db\\Sql\\Predicate\\In' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/In.php',
'Laminas\\Db\\Sql\\Predicate\\IsNotNull' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/IsNotNull.php',
'Laminas\\Db\\Sql\\Predicate\\IsNull' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/IsNull.php',
'Laminas\\Db\\Sql\\Predicate\\Like' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/Like.php',
'Laminas\\Db\\Sql\\Predicate\\Literal' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/Literal.php',
'Laminas\\Db\\Sql\\Predicate\\NotBetween' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/NotBetween.php',
'Laminas\\Db\\Sql\\Predicate\\NotIn' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/NotIn.php',
'Laminas\\Db\\Sql\\Predicate\\NotLike' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/NotLike.php',
'Laminas\\Db\\Sql\\Predicate\\Operator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/Operator.php',
'Laminas\\Db\\Sql\\Predicate\\Predicate' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/Predicate.php',
'Laminas\\Db\\Sql\\Predicate\\PredicateInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/PredicateInterface.php',
'Laminas\\Db\\Sql\\Predicate\\PredicateSet' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/PredicateSet.php',
'Laminas\\Db\\Sql\\PreparableSqlInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/PreparableSqlInterface.php',
'Laminas\\Db\\Sql\\Select' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Select.php',
'Laminas\\Db\\Sql\\Sql' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Sql.php',
'Laminas\\Db\\Sql\\SqlInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/SqlInterface.php',
'Laminas\\Db\\Sql\\TableIdentifier' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/TableIdentifier.php',
'Laminas\\Db\\Sql\\Update' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Update.php',
'Laminas\\Db\\Sql\\Where' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Where.php',
'Laminas\\Db\\TableGateway\\AbstractTableGateway' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/AbstractTableGateway.php',
'Laminas\\Db\\TableGateway\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Exception/ExceptionInterface.php',
'Laminas\\Db\\TableGateway\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Exception/InvalidArgumentException.php',
'Laminas\\Db\\TableGateway\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Exception/RuntimeException.php',
'Laminas\\Db\\TableGateway\\Feature\\AbstractFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/AbstractFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\EventFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/EventFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\EventFeatureEventsInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/EventFeatureEventsInterface.php',
'Laminas\\Db\\TableGateway\\Feature\\EventFeature\\TableGatewayEvent' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/EventFeature/TableGatewayEvent.php',
'Laminas\\Db\\TableGateway\\Feature\\FeatureSet' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/FeatureSet.php',
'Laminas\\Db\\TableGateway\\Feature\\GlobalAdapterFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/GlobalAdapterFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\MasterSlaveFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/MasterSlaveFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\MetadataFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/MetadataFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\RowGatewayFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/RowGatewayFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\SequenceFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/SequenceFeature.php',
'Laminas\\Db\\TableGateway\\TableGateway' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/TableGateway.php',
'Laminas\\Db\\TableGateway\\TableGatewayInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/TableGatewayInterface.php',
'Laminas\\Stdlib\\AbstractOptions' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/AbstractOptions.php',
'Laminas\\Stdlib\\ArrayObject' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ArrayObject.php',
'Laminas\\Stdlib\\ArraySerializableInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ArraySerializableInterface.php',
'Laminas\\Stdlib\\ArrayStack' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ArrayStack.php',
'Laminas\\Stdlib\\ArrayUtils' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ArrayUtils.php',
'Laminas\\Stdlib\\ArrayUtils\\MergeRemoveKey' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ArrayUtils/MergeRemoveKey.php',
'Laminas\\Stdlib\\ArrayUtils\\MergeReplaceKey' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ArrayUtils/MergeReplaceKey.php',
'Laminas\\Stdlib\\ArrayUtils\\MergeReplaceKeyInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ArrayUtils/MergeReplaceKeyInterface.php',
'Laminas\\Stdlib\\ConsoleHelper' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ConsoleHelper.php',
'Laminas\\Stdlib\\DispatchableInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/DispatchableInterface.php',
'Laminas\\Stdlib\\ErrorHandler' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ErrorHandler.php',
'Laminas\\Stdlib\\Exception\\BadMethodCallException' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Exception/BadMethodCallException.php',
'Laminas\\Stdlib\\Exception\\DomainException' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Exception/DomainException.php',
'Laminas\\Stdlib\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Exception/ExceptionInterface.php',
'Laminas\\Stdlib\\Exception\\ExtensionNotLoadedException' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Exception/ExtensionNotLoadedException.php',
'Laminas\\Stdlib\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Exception/InvalidArgumentException.php',
'Laminas\\Stdlib\\Exception\\LogicException' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Exception/LogicException.php',
'Laminas\\Stdlib\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Exception/RuntimeException.php',
'Laminas\\Stdlib\\FastPriorityQueue' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/FastPriorityQueue.php',
'Laminas\\Stdlib\\Glob' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Glob.php',
'Laminas\\Stdlib\\Guard\\AllGuardsTrait' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Guard/AllGuardsTrait.php',
'Laminas\\Stdlib\\Guard\\ArrayOrTraversableGuardTrait' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Guard/ArrayOrTraversableGuardTrait.php',
'Laminas\\Stdlib\\Guard\\EmptyGuardTrait' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Guard/EmptyGuardTrait.php',
'Laminas\\Stdlib\\Guard\\NullGuardTrait' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Guard/NullGuardTrait.php',
'Laminas\\Stdlib\\InitializableInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/InitializableInterface.php',
'Laminas\\Stdlib\\JsonSerializable' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/JsonSerializable.php',
'Laminas\\Stdlib\\Message' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Message.php',
'Laminas\\Stdlib\\MessageInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/MessageInterface.php',
'Laminas\\Stdlib\\ParameterObjectInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ParameterObjectInterface.php',
'Laminas\\Stdlib\\Parameters' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Parameters.php',
'Laminas\\Stdlib\\ParametersInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ParametersInterface.php',
'Laminas\\Stdlib\\PriorityList' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/PriorityList.php',
'Laminas\\Stdlib\\PriorityQueue' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/PriorityQueue.php',
'Laminas\\Stdlib\\Request' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Request.php',
'Laminas\\Stdlib\\RequestInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/RequestInterface.php',
'Laminas\\Stdlib\\Response' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Response.php',
'Laminas\\Stdlib\\ResponseInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ResponseInterface.php',
'Laminas\\Stdlib\\SplPriorityQueue' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/SplPriorityQueue.php',
'Laminas\\Stdlib\\SplQueue' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/SplQueue.php',
'Laminas\\Stdlib\\SplStack' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/SplStack.php',
'Laminas\\Stdlib\\StringUtils' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/StringUtils.php',
'Laminas\\Stdlib\\StringWrapper\\AbstractStringWrapper' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/StringWrapper/AbstractStringWrapper.php',
'Laminas\\Stdlib\\StringWrapper\\Iconv' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/StringWrapper/Iconv.php',
'Laminas\\Stdlib\\StringWrapper\\Intl' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/StringWrapper/Intl.php',
'Laminas\\Stdlib\\StringWrapper\\MbString' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/StringWrapper/MbString.php',
'Laminas\\Stdlib\\StringWrapper\\Native' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/StringWrapper/Native.php',
'Laminas\\Stdlib\\StringWrapper\\StringWrapperInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/StringWrapper/StringWrapperInterface.php',
'Laminas\\ZendFrameworkBridge\\Autoloader' => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src/Autoloader.php',
'Laminas\\ZendFrameworkBridge\\ConfigPostProcessor' => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src/ConfigPostProcessor.php',
'Laminas\\ZendFrameworkBridge\\Module' => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src/Module.php',
'Laminas\\ZendFrameworkBridge\\Replacements' => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src/Replacements.php',
'Laminas\\ZendFrameworkBridge\\RewriteRules' => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src/RewriteRules.php',
'Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/AbstractLogger.php',
'Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/Psr/Log/InvalidArgumentException.php',
'Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/Psr/Log/LogLevel.php',

View File

@ -0,0 +1,384 @@
<?php
// autoload_static.php @generated by Composer
namespace Composer\Autoload;
class ComposerStaticInitcbda25b16bb8365467298ce193f0f30c
{
public static $files = array (
'7e9bd612cc444b3eed788ebbe46263a0' => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src/autoload.php',
);
public static $prefixLengthsPsr4 = array (
'v' =>
array (
'voku\\cache\\' => 11,
),
'P' =>
array (
'Psr\\SimpleCache\\' => 16,
),
'L' =>
array (
'Laminas\\ZendFrameworkBridge\\' => 28,
'Laminas\\Stdlib\\' => 15,
'Laminas\\Db\\' => 11,
),
'K' =>
array (
'Katzgrau\\KLogger\\' => 17,
),
);
public static $prefixDirsPsr4 = array (
'voku\\cache\\' =>
array (
0 => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache',
),
'Psr\\SimpleCache\\' =>
<<<<<<< HEAD
=======
array (
0 => __DIR__ . '/..' . '/psr/simple-cache/src',
),
'Laminas\\ZendFrameworkBridge\\' =>
array (
0 => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src',
),
'Laminas\\Stdlib\\' =>
>>>>>>> master
array (
0 => __DIR__ . '/..' . '/laminas/laminas-stdlib/src',
),
'Laminas\\Db\\' =>
array (
0 => __DIR__ . '/..' . '/laminas/laminas-db/src',
),
'Katzgrau\\KLogger\\' =>
array (
0 => __DIR__ . '/..' . '/katzgrau/klogger/src',
),
);
public static $prefixesPsr0 = array (
'P' =>
array (
'Psr\\Log\\' =>
array (
0 => __DIR__ . '/..' . '/psr/log',
),
),
);
public static $classMap = array (
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
'Katzgrau\\KLogger\\Logger' => __DIR__ . '/..' . '/katzgrau/klogger/src/Logger.php',
'Laminas\\Db\\Adapter\\Adapter' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Adapter.php',
'Laminas\\Db\\Adapter\\AdapterAbstractServiceFactory' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/AdapterAbstractServiceFactory.php',
'Laminas\\Db\\Adapter\\AdapterAwareInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/AdapterAwareInterface.php',
'Laminas\\Db\\Adapter\\AdapterAwareTrait' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/AdapterAwareTrait.php',
'Laminas\\Db\\Adapter\\AdapterInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/AdapterInterface.php',
'Laminas\\Db\\Adapter\\AdapterServiceFactory' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/AdapterServiceFactory.php',
'Laminas\\Db\\Adapter\\Driver\\AbstractConnection' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/AbstractConnection.php',
'Laminas\\Db\\Adapter\\Driver\\ConnectionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/ConnectionInterface.php',
'Laminas\\Db\\Adapter\\Driver\\DriverInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/DriverInterface.php',
'Laminas\\Db\\Adapter\\Driver\\Feature\\AbstractFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Feature/AbstractFeature.php',
'Laminas\\Db\\Adapter\\Driver\\Feature\\DriverFeatureInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Feature/DriverFeatureInterface.php',
'Laminas\\Db\\Adapter\\Driver\\IbmDb2\\Connection' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/IbmDb2/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\IbmDb2\\IbmDb2' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/IbmDb2/IbmDb2.php',
'Laminas\\Db\\Adapter\\Driver\\IbmDb2\\Result' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/IbmDb2/Result.php',
'Laminas\\Db\\Adapter\\Driver\\IbmDb2\\Statement' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/IbmDb2/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\Mysqli\\Connection' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Mysqli/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\Mysqli\\Mysqli' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Mysqli/Mysqli.php',
'Laminas\\Db\\Adapter\\Driver\\Mysqli\\Result' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Mysqli/Result.php',
'Laminas\\Db\\Adapter\\Driver\\Mysqli\\Statement' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Mysqli/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\Oci8\\Connection' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Oci8/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\Oci8\\Feature\\RowCounter' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Oci8/Feature/RowCounter.php',
'Laminas\\Db\\Adapter\\Driver\\Oci8\\Oci8' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Oci8/Oci8.php',
'Laminas\\Db\\Adapter\\Driver\\Oci8\\Result' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Oci8/Result.php',
'Laminas\\Db\\Adapter\\Driver\\Oci8\\Statement' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Oci8/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Connection' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Feature\\OracleRowCounter' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Feature/OracleRowCounter.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Feature\\SqliteRowCounter' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Feature/SqliteRowCounter.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Pdo' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Pdo.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Result' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Result.php',
'Laminas\\Db\\Adapter\\Driver\\Pdo\\Statement' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pdo/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\Pgsql\\Connection' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pgsql/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\Pgsql\\Pgsql' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pgsql/Pgsql.php',
'Laminas\\Db\\Adapter\\Driver\\Pgsql\\Result' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pgsql/Result.php',
'Laminas\\Db\\Adapter\\Driver\\Pgsql\\Statement' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Pgsql/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\ResultInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/ResultInterface.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Connection' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Connection.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Exception\\ErrorException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Exception/ErrorException.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Exception/ExceptionInterface.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Result' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Result.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Sqlsrv' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Sqlsrv.php',
'Laminas\\Db\\Adapter\\Driver\\Sqlsrv\\Statement' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/Sqlsrv/Statement.php',
'Laminas\\Db\\Adapter\\Driver\\StatementInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Driver/StatementInterface.php',
'Laminas\\Db\\Adapter\\Exception\\ErrorException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Exception/ErrorException.php',
'Laminas\\Db\\Adapter\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Exception/ExceptionInterface.php',
'Laminas\\Db\\Adapter\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Exception/InvalidArgumentException.php',
'Laminas\\Db\\Adapter\\Exception\\InvalidConnectionParametersException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Exception/InvalidConnectionParametersException.php',
'Laminas\\Db\\Adapter\\Exception\\InvalidQueryException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Exception/InvalidQueryException.php',
'Laminas\\Db\\Adapter\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Exception/RuntimeException.php',
'Laminas\\Db\\Adapter\\Exception\\UnexpectedValueException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Exception/UnexpectedValueException.php',
'Laminas\\Db\\Adapter\\ParameterContainer' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/ParameterContainer.php',
'Laminas\\Db\\Adapter\\Platform\\AbstractPlatform' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/AbstractPlatform.php',
'Laminas\\Db\\Adapter\\Platform\\IbmDb2' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/IbmDb2.php',
'Laminas\\Db\\Adapter\\Platform\\Mysql' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/Mysql.php',
'Laminas\\Db\\Adapter\\Platform\\Oracle' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/Oracle.php',
'Laminas\\Db\\Adapter\\Platform\\PlatformInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/PlatformInterface.php',
'Laminas\\Db\\Adapter\\Platform\\Postgresql' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/Postgresql.php',
'Laminas\\Db\\Adapter\\Platform\\Sql92' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/Sql92.php',
'Laminas\\Db\\Adapter\\Platform\\SqlServer' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/SqlServer.php',
'Laminas\\Db\\Adapter\\Platform\\Sqlite' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Platform/Sqlite.php',
'Laminas\\Db\\Adapter\\Profiler\\Profiler' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Profiler/Profiler.php',
'Laminas\\Db\\Adapter\\Profiler\\ProfilerAwareInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Profiler/ProfilerAwareInterface.php',
'Laminas\\Db\\Adapter\\Profiler\\ProfilerInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/Profiler/ProfilerInterface.php',
'Laminas\\Db\\Adapter\\StatementContainer' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/StatementContainer.php',
'Laminas\\Db\\Adapter\\StatementContainerInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Adapter/StatementContainerInterface.php',
'Laminas\\Db\\ConfigProvider' => __DIR__ . '/..' . '/laminas/laminas-db/src/ConfigProvider.php',
'Laminas\\Db\\Exception\\ErrorException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Exception/ErrorException.php',
'Laminas\\Db\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Exception/ExceptionInterface.php',
'Laminas\\Db\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Exception/InvalidArgumentException.php',
'Laminas\\Db\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Exception/RuntimeException.php',
'Laminas\\Db\\Exception\\UnexpectedValueException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Exception/UnexpectedValueException.php',
'Laminas\\Db\\Metadata\\Metadata' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Metadata.php',
'Laminas\\Db\\Metadata\\MetadataInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/MetadataInterface.php',
'Laminas\\Db\\Metadata\\Object\\AbstractTableObject' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Object/AbstractTableObject.php',
'Laminas\\Db\\Metadata\\Object\\ColumnObject' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Object/ColumnObject.php',
'Laminas\\Db\\Metadata\\Object\\ConstraintKeyObject' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Object/ConstraintKeyObject.php',
'Laminas\\Db\\Metadata\\Object\\ConstraintObject' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Object/ConstraintObject.php',
'Laminas\\Db\\Metadata\\Object\\TableObject' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Object/TableObject.php',
'Laminas\\Db\\Metadata\\Object\\TriggerObject' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Object/TriggerObject.php',
'Laminas\\Db\\Metadata\\Object\\ViewObject' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Object/ViewObject.php',
'Laminas\\Db\\Metadata\\Source\\AbstractSource' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Source/AbstractSource.php',
'Laminas\\Db\\Metadata\\Source\\Factory' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Source/Factory.php',
'Laminas\\Db\\Metadata\\Source\\MysqlMetadata' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Source/MysqlMetadata.php',
'Laminas\\Db\\Metadata\\Source\\OracleMetadata' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Source/OracleMetadata.php',
'Laminas\\Db\\Metadata\\Source\\PostgresqlMetadata' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Source/PostgresqlMetadata.php',
'Laminas\\Db\\Metadata\\Source\\SqlServerMetadata' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Source/SqlServerMetadata.php',
'Laminas\\Db\\Metadata\\Source\\SqliteMetadata' => __DIR__ . '/..' . '/laminas/laminas-db/src/Metadata/Source/SqliteMetadata.php',
'Laminas\\Db\\Module' => __DIR__ . '/..' . '/laminas/laminas-db/src/Module.php',
'Laminas\\Db\\ResultSet\\AbstractResultSet' => __DIR__ . '/..' . '/laminas/laminas-db/src/ResultSet/AbstractResultSet.php',
'Laminas\\Db\\ResultSet\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/ResultSet/Exception/ExceptionInterface.php',
'Laminas\\Db\\ResultSet\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-db/src/ResultSet/Exception/InvalidArgumentException.php',
'Laminas\\Db\\ResultSet\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-db/src/ResultSet/Exception/RuntimeException.php',
'Laminas\\Db\\ResultSet\\HydratingResultSet' => __DIR__ . '/..' . '/laminas/laminas-db/src/ResultSet/HydratingResultSet.php',
'Laminas\\Db\\ResultSet\\ResultSet' => __DIR__ . '/..' . '/laminas/laminas-db/src/ResultSet/ResultSet.php',
'Laminas\\Db\\ResultSet\\ResultSetInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/ResultSet/ResultSetInterface.php',
'Laminas\\Db\\RowGateway\\AbstractRowGateway' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/AbstractRowGateway.php',
'Laminas\\Db\\RowGateway\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/Exception/ExceptionInterface.php',
'Laminas\\Db\\RowGateway\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/Exception/InvalidArgumentException.php',
'Laminas\\Db\\RowGateway\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/Exception/RuntimeException.php',
'Laminas\\Db\\RowGateway\\Feature\\AbstractFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/Feature/AbstractFeature.php',
'Laminas\\Db\\RowGateway\\Feature\\FeatureSet' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/Feature/FeatureSet.php',
'Laminas\\Db\\RowGateway\\RowGateway' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/RowGateway.php',
'Laminas\\Db\\RowGateway\\RowGatewayInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/RowGateway/RowGatewayInterface.php',
'Laminas\\Db\\Sql\\AbstractExpression' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/AbstractExpression.php',
'Laminas\\Db\\Sql\\AbstractPreparableSql' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/AbstractPreparableSql.php',
'Laminas\\Db\\Sql\\AbstractSql' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/AbstractSql.php',
'Laminas\\Db\\Sql\\Combine' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Combine.php',
'Laminas\\Db\\Sql\\Ddl\\AlterTable' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/AlterTable.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\AbstractLengthColumn' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/AbstractLengthColumn.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\AbstractPrecisionColumn' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/AbstractPrecisionColumn.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\AbstractTimestampColumn' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/AbstractTimestampColumn.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\BigInteger' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/BigInteger.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Binary' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Binary.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Blob' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Blob.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Boolean' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Boolean.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Char' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Char.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Column' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Column.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\ColumnInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/ColumnInterface.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Date' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Date.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Datetime' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Datetime.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Decimal' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Decimal.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Float' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Float.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Floating' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Floating.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Integer' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Integer.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Text' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Text.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Time' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Time.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Timestamp' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Timestamp.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Varbinary' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Varbinary.php',
'Laminas\\Db\\Sql\\Ddl\\Column\\Varchar' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Column/Varchar.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\AbstractConstraint' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Constraint/AbstractConstraint.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\Check' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Constraint/Check.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\ConstraintInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Constraint/ConstraintInterface.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\ForeignKey' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Constraint/ForeignKey.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\PrimaryKey' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Constraint/PrimaryKey.php',
'Laminas\\Db\\Sql\\Ddl\\Constraint\\UniqueKey' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Constraint/UniqueKey.php',
'Laminas\\Db\\Sql\\Ddl\\CreateTable' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/CreateTable.php',
'Laminas\\Db\\Sql\\Ddl\\DropTable' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/DropTable.php',
'Laminas\\Db\\Sql\\Ddl\\Index\\AbstractIndex' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Index/AbstractIndex.php',
'Laminas\\Db\\Sql\\Ddl\\Index\\Index' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/Index/Index.php',
'Laminas\\Db\\Sql\\Ddl\\SqlInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Ddl/SqlInterface.php',
'Laminas\\Db\\Sql\\Delete' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Delete.php',
'Laminas\\Db\\Sql\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Exception/ExceptionInterface.php',
'Laminas\\Db\\Sql\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Exception/InvalidArgumentException.php',
'Laminas\\Db\\Sql\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Exception/RuntimeException.php',
'Laminas\\Db\\Sql\\Expression' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Expression.php',
'Laminas\\Db\\Sql\\ExpressionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/ExpressionInterface.php',
'Laminas\\Db\\Sql\\Having' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Having.php',
'Laminas\\Db\\Sql\\Insert' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Insert.php',
'Laminas\\Db\\Sql\\InsertIgnore' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/InsertIgnore.php',
'Laminas\\Db\\Sql\\Join' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Join.php',
'Laminas\\Db\\Sql\\Literal' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Literal.php',
'Laminas\\Db\\Sql\\Platform\\AbstractPlatform' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/AbstractPlatform.php',
'Laminas\\Db\\Sql\\Platform\\IbmDb2\\IbmDb2' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/IbmDb2/IbmDb2.php',
'Laminas\\Db\\Sql\\Platform\\IbmDb2\\SelectDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/IbmDb2/SelectDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Mysql\\Ddl\\AlterTableDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Mysql/Ddl/AlterTableDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Mysql\\Ddl\\CreateTableDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Mysql/Ddl/CreateTableDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Mysql\\Mysql' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Mysql/Mysql.php',
'Laminas\\Db\\Sql\\Platform\\Mysql\\SelectDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Mysql/SelectDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Oracle\\Oracle' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Oracle/Oracle.php',
'Laminas\\Db\\Sql\\Platform\\Oracle\\SelectDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Oracle/SelectDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Platform' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Platform.php',
'Laminas\\Db\\Sql\\Platform\\PlatformDecoratorInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/PlatformDecoratorInterface.php',
'Laminas\\Db\\Sql\\Platform\\SqlServer\\Ddl\\CreateTableDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/SqlServer/Ddl/CreateTableDecorator.php',
'Laminas\\Db\\Sql\\Platform\\SqlServer\\SelectDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/SqlServer/SelectDecorator.php',
'Laminas\\Db\\Sql\\Platform\\SqlServer\\SqlServer' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/SqlServer/SqlServer.php',
'Laminas\\Db\\Sql\\Platform\\Sqlite\\SelectDecorator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Sqlite/SelectDecorator.php',
'Laminas\\Db\\Sql\\Platform\\Sqlite\\Sqlite' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Platform/Sqlite/Sqlite.php',
'Laminas\\Db\\Sql\\Predicate\\Between' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/Between.php',
'Laminas\\Db\\Sql\\Predicate\\Expression' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/Expression.php',
'Laminas\\Db\\Sql\\Predicate\\In' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/In.php',
'Laminas\\Db\\Sql\\Predicate\\IsNotNull' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/IsNotNull.php',
'Laminas\\Db\\Sql\\Predicate\\IsNull' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/IsNull.php',
'Laminas\\Db\\Sql\\Predicate\\Like' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/Like.php',
'Laminas\\Db\\Sql\\Predicate\\Literal' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/Literal.php',
'Laminas\\Db\\Sql\\Predicate\\NotBetween' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/NotBetween.php',
'Laminas\\Db\\Sql\\Predicate\\NotIn' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/NotIn.php',
'Laminas\\Db\\Sql\\Predicate\\NotLike' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/NotLike.php',
'Laminas\\Db\\Sql\\Predicate\\Operator' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/Operator.php',
'Laminas\\Db\\Sql\\Predicate\\Predicate' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/Predicate.php',
'Laminas\\Db\\Sql\\Predicate\\PredicateInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/PredicateInterface.php',
'Laminas\\Db\\Sql\\Predicate\\PredicateSet' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Predicate/PredicateSet.php',
'Laminas\\Db\\Sql\\PreparableSqlInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/PreparableSqlInterface.php',
'Laminas\\Db\\Sql\\Select' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Select.php',
'Laminas\\Db\\Sql\\Sql' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Sql.php',
'Laminas\\Db\\Sql\\SqlInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/SqlInterface.php',
'Laminas\\Db\\Sql\\TableIdentifier' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/TableIdentifier.php',
'Laminas\\Db\\Sql\\Update' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Update.php',
'Laminas\\Db\\Sql\\Where' => __DIR__ . '/..' . '/laminas/laminas-db/src/Sql/Where.php',
'Laminas\\Db\\TableGateway\\AbstractTableGateway' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/AbstractTableGateway.php',
'Laminas\\Db\\TableGateway\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Exception/ExceptionInterface.php',
'Laminas\\Db\\TableGateway\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Exception/InvalidArgumentException.php',
'Laminas\\Db\\TableGateway\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Exception/RuntimeException.php',
'Laminas\\Db\\TableGateway\\Feature\\AbstractFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/AbstractFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\EventFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/EventFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\EventFeatureEventsInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/EventFeatureEventsInterface.php',
'Laminas\\Db\\TableGateway\\Feature\\EventFeature\\TableGatewayEvent' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/EventFeature/TableGatewayEvent.php',
'Laminas\\Db\\TableGateway\\Feature\\FeatureSet' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/FeatureSet.php',
'Laminas\\Db\\TableGateway\\Feature\\GlobalAdapterFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/GlobalAdapterFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\MasterSlaveFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/MasterSlaveFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\MetadataFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/MetadataFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\RowGatewayFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/RowGatewayFeature.php',
'Laminas\\Db\\TableGateway\\Feature\\SequenceFeature' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/Feature/SequenceFeature.php',
'Laminas\\Db\\TableGateway\\TableGateway' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/TableGateway.php',
'Laminas\\Db\\TableGateway\\TableGatewayInterface' => __DIR__ . '/..' . '/laminas/laminas-db/src/TableGateway/TableGatewayInterface.php',
'Laminas\\Stdlib\\AbstractOptions' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/AbstractOptions.php',
'Laminas\\Stdlib\\ArrayObject' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ArrayObject.php',
'Laminas\\Stdlib\\ArraySerializableInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ArraySerializableInterface.php',
'Laminas\\Stdlib\\ArrayStack' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ArrayStack.php',
'Laminas\\Stdlib\\ArrayUtils' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ArrayUtils.php',
'Laminas\\Stdlib\\ArrayUtils\\MergeRemoveKey' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ArrayUtils/MergeRemoveKey.php',
'Laminas\\Stdlib\\ArrayUtils\\MergeReplaceKey' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ArrayUtils/MergeReplaceKey.php',
'Laminas\\Stdlib\\ArrayUtils\\MergeReplaceKeyInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ArrayUtils/MergeReplaceKeyInterface.php',
'Laminas\\Stdlib\\ConsoleHelper' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ConsoleHelper.php',
'Laminas\\Stdlib\\DispatchableInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/DispatchableInterface.php',
'Laminas\\Stdlib\\ErrorHandler' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ErrorHandler.php',
'Laminas\\Stdlib\\Exception\\BadMethodCallException' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Exception/BadMethodCallException.php',
'Laminas\\Stdlib\\Exception\\DomainException' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Exception/DomainException.php',
'Laminas\\Stdlib\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Exception/ExceptionInterface.php',
'Laminas\\Stdlib\\Exception\\ExtensionNotLoadedException' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Exception/ExtensionNotLoadedException.php',
'Laminas\\Stdlib\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Exception/InvalidArgumentException.php',
'Laminas\\Stdlib\\Exception\\LogicException' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Exception/LogicException.php',
'Laminas\\Stdlib\\Exception\\RuntimeException' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Exception/RuntimeException.php',
'Laminas\\Stdlib\\FastPriorityQueue' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/FastPriorityQueue.php',
'Laminas\\Stdlib\\Glob' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Glob.php',
'Laminas\\Stdlib\\Guard\\AllGuardsTrait' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Guard/AllGuardsTrait.php',
'Laminas\\Stdlib\\Guard\\ArrayOrTraversableGuardTrait' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Guard/ArrayOrTraversableGuardTrait.php',
'Laminas\\Stdlib\\Guard\\EmptyGuardTrait' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Guard/EmptyGuardTrait.php',
'Laminas\\Stdlib\\Guard\\NullGuardTrait' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Guard/NullGuardTrait.php',
'Laminas\\Stdlib\\InitializableInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/InitializableInterface.php',
'Laminas\\Stdlib\\JsonSerializable' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/JsonSerializable.php',
'Laminas\\Stdlib\\Message' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Message.php',
'Laminas\\Stdlib\\MessageInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/MessageInterface.php',
'Laminas\\Stdlib\\ParameterObjectInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ParameterObjectInterface.php',
'Laminas\\Stdlib\\Parameters' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Parameters.php',
'Laminas\\Stdlib\\ParametersInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ParametersInterface.php',
'Laminas\\Stdlib\\PriorityList' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/PriorityList.php',
'Laminas\\Stdlib\\PriorityQueue' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/PriorityQueue.php',
'Laminas\\Stdlib\\Request' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Request.php',
'Laminas\\Stdlib\\RequestInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/RequestInterface.php',
'Laminas\\Stdlib\\Response' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/Response.php',
'Laminas\\Stdlib\\ResponseInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/ResponseInterface.php',
'Laminas\\Stdlib\\SplPriorityQueue' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/SplPriorityQueue.php',
'Laminas\\Stdlib\\SplQueue' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/SplQueue.php',
'Laminas\\Stdlib\\SplStack' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/SplStack.php',
'Laminas\\Stdlib\\StringUtils' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/StringUtils.php',
'Laminas\\Stdlib\\StringWrapper\\AbstractStringWrapper' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/StringWrapper/AbstractStringWrapper.php',
'Laminas\\Stdlib\\StringWrapper\\Iconv' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/StringWrapper/Iconv.php',
'Laminas\\Stdlib\\StringWrapper\\Intl' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/StringWrapper/Intl.php',
'Laminas\\Stdlib\\StringWrapper\\MbString' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/StringWrapper/MbString.php',
'Laminas\\Stdlib\\StringWrapper\\Native' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/StringWrapper/Native.php',
'Laminas\\Stdlib\\StringWrapper\\StringWrapperInterface' => __DIR__ . '/..' . '/laminas/laminas-stdlib/src/StringWrapper/StringWrapperInterface.php',
'Laminas\\ZendFrameworkBridge\\Autoloader' => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src/Autoloader.php',
'Laminas\\ZendFrameworkBridge\\ConfigPostProcessor' => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src/ConfigPostProcessor.php',
'Laminas\\ZendFrameworkBridge\\Module' => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src/Module.php',
'Laminas\\ZendFrameworkBridge\\Replacements' => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src/Replacements.php',
'Laminas\\ZendFrameworkBridge\\RewriteRules' => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src/RewriteRules.php',
'Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/AbstractLogger.php',
'Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/Psr/Log/InvalidArgumentException.php',
'Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/Psr/Log/LogLevel.php',
'Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareInterface.php',
'Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareTrait.php',
'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerInterface.php',
'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerTrait.php',
'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php',
'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
'Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php',
'Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php',
'Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php',
'voku\\cache\\AdapterApc' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/AdapterApc.php',
'voku\\cache\\AdapterApcu' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/AdapterApcu.php',
'voku\\cache\\AdapterArray' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/AdapterArray.php',
'voku\\cache\\AdapterFile' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/AdapterFile.php',
'voku\\cache\\AdapterFileAbstract' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/AdapterFileAbstract.php',
'voku\\cache\\AdapterFileSimple' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/AdapterFileSimple.php',
'voku\\cache\\AdapterMemcache' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/AdapterMemcache.php',
'voku\\cache\\AdapterMemcached' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/AdapterMemcached.php',
'voku\\cache\\AdapterOpCache' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/AdapterOpCache.php',
'voku\\cache\\AdapterPredis' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/AdapterPredis.php',
'voku\\cache\\AdapterXcache' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/AdapterXcache.php',
'voku\\cache\\Cache' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/Cache.php',
'voku\\cache\\CacheAdapterAutoManager' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/CacheAdapterAutoManager.php',
'voku\\cache\\CacheChain' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/CacheChain.php',
'voku\\cache\\CachePsr16' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/CachePsr16.php',
'voku\\cache\\Exception\\ChmodException' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/Exception/ChmodException.php',
'voku\\cache\\Exception\\FileErrorExceptionInterface' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/Exception/FileErrorExceptionInterface.php',
'voku\\cache\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/Exception/InvalidArgumentException.php',
'voku\\cache\\Exception\\RenameException' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/Exception/RenameException.php',
'voku\\cache\\Exception\\RuntimeException' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/Exception/RuntimeException.php',
'voku\\cache\\Exception\\WriteContentException' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/Exception/WriteContentException.php',
'voku\\cache\\SerializerDefault' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/SerializerDefault.php',
'voku\\cache\\SerializerIgbinary' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/SerializerIgbinary.php',
'voku\\cache\\SerializerMsgpack' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/SerializerMsgpack.php',
'voku\\cache\\SerializerNo' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/SerializerNo.php',
'voku\\cache\\iAdapter' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/iAdapter.php',
'voku\\cache\\iCache' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/iCache.php',
'voku\\cache\\iSerializer' => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache/iSerializer.php',
);
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInitcbda25b16bb8365467298ce193f0f30c::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitcbda25b16bb8365467298ce193f0f30c::$prefixDirsPsr4;
$loader->prefixesPsr0 = ComposerStaticInitcbda25b16bb8365467298ce193f0f30c::$prefixesPsr0;
$loader->classMap = ComposerStaticInitcbda25b16bb8365467298ce193f0f30c::$classMap;
}, null, ClassLoader::class);
}
}

View File

@ -55,205 +55,6 @@
],
"install-path": "../katzgrau/klogger"
},
{
"name": "laminas/laminas-db",
"version": "2.11.4",
"version_normalized": "2.11.4.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-db.git",
"reference": "5b59413b8dd5d79e3fe58c2650c60b1730989f36"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-db/zipball/5b59413b8dd5d79e3fe58c2650c60b1730989f36",
"reference": "5b59413b8dd5d79e3fe58c2650c60b1730989f36",
"shasum": ""
},
"require": {
"laminas/laminas-stdlib": "^2.7 || ^3.0",
"laminas/laminas-zendframework-bridge": "^1.0",
"php": "^5.6 || ^7.0"
},
"replace": {
"zendframework/zend-db": "^2.11.0"
},
"require-dev": {
"laminas/laminas-coding-standard": "~1.0.0",
"laminas/laminas-eventmanager": "^2.6.2 || ^3.0",
"laminas/laminas-hydrator": "^1.1 || ^2.1 || ^3.0",
"laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3",
"phpunit/phpunit": "^5.7.27 || ^6.5.14"
},
"suggest": {
"laminas/laminas-eventmanager": "Laminas\\EventManager component",
"laminas/laminas-hydrator": "Laminas\\Hydrator component for using HydratingResultSets",
"laminas/laminas-servicemanager": "Laminas\\ServiceManager component"
},
"time": "2021-02-20T18:52:15+00:00",
"type": "library",
"extra": {
"laminas": {
"component": "Laminas\\Db",
"config-provider": "Laminas\\Db\\ConfigProvider"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
"Laminas\\Db\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "Database abstraction layer, SQL abstraction, result set abstraction, and RowDataGateway and TableDataGateway implementations",
"homepage": "https://laminas.dev",
"keywords": [
"db",
"laminas"
],
"support": {
"chat": "https://laminas.dev/chat",
"docs": "https://docs.laminas.dev/laminas-db/",
"forum": "https://discourse.laminas.dev",
"issues": "https://github.com/laminas/laminas-db/issues",
"rss": "https://github.com/laminas/laminas-db/releases.atom",
"source": "https://github.com/laminas/laminas-db"
},
"funding": [
{
"url": "https://funding.communitybridge.org/projects/laminas-project",
"type": "community_bridge"
}
],
"install-path": "../laminas/laminas-db"
},
{
"name": "laminas/laminas-stdlib",
"version": "3.2.1",
"version_normalized": "3.2.1.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-stdlib.git",
"reference": "2b18347625a2f06a1a485acfbc870f699dbe51c6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/2b18347625a2f06a1a485acfbc870f699dbe51c6",
"reference": "2b18347625a2f06a1a485acfbc870f699dbe51c6",
"shasum": ""
},
"require": {
"laminas/laminas-zendframework-bridge": "^1.0",
"php": "^5.6 || ^7.0"
},
"replace": {
"zendframework/zend-stdlib": "self.version"
},
"require-dev": {
"laminas/laminas-coding-standard": "~1.0.0",
"phpbench/phpbench": "^0.13",
"phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2"
},
"time": "2019-12-31T17:51:15+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2.x-dev",
"dev-develop": "3.3.x-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
"Laminas\\Stdlib\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "SPL extensions, array utilities, error handlers, and more",
"homepage": "https://laminas.dev",
"keywords": [
"laminas",
"stdlib"
],
"support": {
"chat": "https://laminas.dev/chat",
"docs": "https://docs.laminas.dev/laminas-stdlib/",
"forum": "https://discourse.laminas.dev",
"issues": "https://github.com/laminas/laminas-stdlib/issues",
"rss": "https://github.com/laminas/laminas-stdlib/releases.atom",
"source": "https://github.com/laminas/laminas-stdlib"
},
"install-path": "../laminas/laminas-stdlib"
},
{
"name": "laminas/laminas-zendframework-bridge",
"version": "1.1.1",
"version_normalized": "1.1.1.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-zendframework-bridge.git",
"reference": "6ede70583e101030bcace4dcddd648f760ddf642"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6ede70583e101030bcace4dcddd648f760ddf642",
"reference": "6ede70583e101030bcace4dcddd648f760ddf642",
"shasum": ""
},
"require": {
"php": "^5.6 || ^7.0 || ^8.0"
},
"require-dev": {
"phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1 || ^9.3",
"squizlabs/php_codesniffer": "^3.5"
},
"time": "2020-09-14T14:23:00+00:00",
"type": "library",
"extra": {
"laminas": {
"module": "Laminas\\ZendFrameworkBridge"
}
},
"installation-source": "dist",
"autoload": {
"files": [
"src/autoload.php"
],
"psr-4": {
"Laminas\\ZendFrameworkBridge\\": "src//"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "Alias legacy ZF class names to Laminas Project equivalents.",
"keywords": [
"ZendFramework",
"autoloading",
"laminas",
"zf"
],
"support": {
"forum": "https://discourse.laminas.dev/",
"issues": "https://github.com/laminas/laminas-zendframework-bridge/issues",
"rss": "https://github.com/laminas/laminas-zendframework-bridge/releases.atom",
"source": "https://github.com/laminas/laminas-zendframework-bridge"
},
"funding": [
{
"url": "https://funding.communitybridge.org/projects/laminas-project",
"type": "community_bridge"
}
],
"install-path": "../laminas/laminas-zendframework-bridge"
},
{
"name": "psr/log",
"version": "1.0.0",

View File

@ -0,0 +1,602 @@
{
"packages": [
{
"name": "katzgrau/klogger",
"version": "1.0.0",
"version_normalized": "1.0.0.0",
"source": {
"type": "git",
"url": "https://github.com/katzgrau/klogger.git",
"reference": "46cdd92a9b4a8443120cc955bf831450cb274813"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/katzgrau/klogger/zipball/46cdd92a9b4a8443120cc955bf831450cb274813",
"reference": "46cdd92a9b4a8443120cc955bf831450cb274813",
"shasum": ""
},
"require": {
"php": ">=5.3",
"psr/log": "1.0.0"
},
"require-dev": {
"phpunit/phpunit": "4.0.*"
},
"time": "2014-03-20T02:36:36+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-4": {
"Katzgrau\\KLogger\\": "src/"
},
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Dan Horrigan",
"email": "dan@dhorrigan.com",
"homepage": "http://dhorrigan.com",
"role": "Lead Developer"
},
{
"name": "Kenny Katzgrau",
"email": "katzgrau@gmail.com"
}
<<<<<<< HEAD
],
"description": "A Simple Logging Class",
"keywords": [
"logging"
],
"install-path": "../katzgrau/klogger"
},
{
"name": "psr/log",
"version": "1.0.0",
"version_normalized": "1.0.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
"reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
"shasum": ""
},
"time": "2012-12-21T11:40:51+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-0": {
"Psr\\Log\\": ""
=======
],
"description": "A Simple Logging Class",
"keywords": [
"logging"
],
"install-path": "../katzgrau/klogger"
},
{
"name": "laminas/laminas-db",
"version": "2.11.4",
"version_normalized": "2.11.4.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-db.git",
"reference": "5b59413b8dd5d79e3fe58c2650c60b1730989f36"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-db/zipball/5b59413b8dd5d79e3fe58c2650c60b1730989f36",
"reference": "5b59413b8dd5d79e3fe58c2650c60b1730989f36",
"shasum": ""
},
"require": {
"laminas/laminas-stdlib": "^2.7 || ^3.0",
"laminas/laminas-zendframework-bridge": "^1.0",
"php": "^5.6 || ^7.0"
},
"replace": {
"zendframework/zend-db": "^2.11.0"
},
"require-dev": {
"laminas/laminas-coding-standard": "~1.0.0",
"laminas/laminas-eventmanager": "^2.6.2 || ^3.0",
"laminas/laminas-hydrator": "^1.1 || ^2.1 || ^3.0",
"laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3",
"phpunit/phpunit": "^5.7.27 || ^6.5.14"
},
"suggest": {
"laminas/laminas-eventmanager": "Laminas\\EventManager component",
"laminas/laminas-hydrator": "Laminas\\Hydrator component for using HydratingResultSets",
"laminas/laminas-servicemanager": "Laminas\\ServiceManager component"
},
"time": "2021-02-20T18:52:15+00:00",
"type": "library",
"extra": {
"laminas": {
"component": "Laminas\\Db",
"config-provider": "Laminas\\Db\\ConfigProvider"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
"Laminas\\Db\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "Database abstraction layer, SQL abstraction, result set abstraction, and RowDataGateway and TableDataGateway implementations",
"homepage": "https://laminas.dev",
"keywords": [
"db",
"laminas"
],
"support": {
"chat": "https://laminas.dev/chat",
"docs": "https://docs.laminas.dev/laminas-db/",
"forum": "https://discourse.laminas.dev",
"issues": "https://github.com/laminas/laminas-db/issues",
"rss": "https://github.com/laminas/laminas-db/releases.atom",
"source": "https://github.com/laminas/laminas-db"
},
"funding": [
{
"url": "https://funding.communitybridge.org/projects/laminas-project",
"type": "community_bridge"
}
],
"install-path": "../laminas/laminas-db"
},
{
"name": "laminas/laminas-stdlib",
"version": "3.2.1",
"version_normalized": "3.2.1.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-stdlib.git",
"reference": "2b18347625a2f06a1a485acfbc870f699dbe51c6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/2b18347625a2f06a1a485acfbc870f699dbe51c6",
"reference": "2b18347625a2f06a1a485acfbc870f699dbe51c6",
"shasum": ""
},
"require": {
"laminas/laminas-zendframework-bridge": "^1.0",
"php": "^5.6 || ^7.0"
},
"replace": {
"zendframework/zend-stdlib": "self.version"
},
"require-dev": {
"laminas/laminas-coding-standard": "~1.0.0",
"phpbench/phpbench": "^0.13",
"phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2"
},
"time": "2019-12-31T17:51:15+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2.x-dev",
"dev-develop": "3.3.x-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
"Laminas\\Stdlib\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "SPL extensions, array utilities, error handlers, and more",
"homepage": "https://laminas.dev",
"keywords": [
"laminas",
"stdlib"
],
"support": {
"chat": "https://laminas.dev/chat",
"docs": "https://docs.laminas.dev/laminas-stdlib/",
"forum": "https://discourse.laminas.dev",
"issues": "https://github.com/laminas/laminas-stdlib/issues",
"rss": "https://github.com/laminas/laminas-stdlib/releases.atom",
"source": "https://github.com/laminas/laminas-stdlib"
},
"install-path": "../laminas/laminas-stdlib"
},
{
"name": "laminas/laminas-zendframework-bridge",
"version": "1.1.1",
"version_normalized": "1.1.1.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-zendframework-bridge.git",
"reference": "6ede70583e101030bcace4dcddd648f760ddf642"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6ede70583e101030bcace4dcddd648f760ddf642",
"reference": "6ede70583e101030bcace4dcddd648f760ddf642",
"shasum": ""
},
"require": {
"php": "^5.6 || ^7.0 || ^8.0"
},
"require-dev": {
"phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1 || ^9.3",
"squizlabs/php_codesniffer": "^3.5"
},
"time": "2020-09-14T14:23:00+00:00",
"type": "library",
"extra": {
"laminas": {
"module": "Laminas\\ZendFrameworkBridge"
}
},
"installation-source": "dist",
"autoload": {
"files": [
"src/autoload.php"
],
"psr-4": {
"Laminas\\ZendFrameworkBridge\\": "src//"
>>>>>>> master
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
<<<<<<< HEAD
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for logging libraries",
"keywords": [
"log",
"psr",
"psr-3"
],
"install-path": "../psr/log"
},
{
"name": "psr/simple-cache",
"version": "1.0.1",
"version_normalized": "1.0.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/simple-cache.git",
"reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
"reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"time": "2017-10-23T01:57:42+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
"Psr\\SimpleCache\\": "src/"
=======
"BSD-3-Clause"
],
"description": "Alias legacy ZF class names to Laminas Project equivalents.",
"keywords": [
"ZendFramework",
"autoloading",
"laminas",
"zf"
],
"support": {
"forum": "https://discourse.laminas.dev/",
"issues": "https://github.com/laminas/laminas-zendframework-bridge/issues",
"rss": "https://github.com/laminas/laminas-zendframework-bridge/releases.atom",
"source": "https://github.com/laminas/laminas-zendframework-bridge"
},
"funding": [
{
"url": "https://funding.communitybridge.org/projects/laminas-project",
"type": "community_bridge"
}
],
"install-path": "../laminas/laminas-zendframework-bridge"
},
{
"name": "psr/log",
"version": "1.0.0",
"version_normalized": "1.0.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
"reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
"shasum": ""
},
"time": "2012-12-21T11:40:51+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-0": {
"Psr\\Log\\": ""
>>>>>>> master
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
<<<<<<< HEAD
"description": "Common interfaces for simple caching",
"keywords": [
"cache",
"caching",
"psr",
"psr-16",
"simple-cache"
],
"install-path": "../psr/simple-cache"
},
{
"name": "voku/simple-cache",
"version": "4.0.5",
"version_normalized": "4.0.5.0",
"source": {
"type": "git",
"url": "https://github.com/voku/simple-cache.git",
"reference": "416cf88902991f3bf6168b71c0683e6dabb3d5e1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/voku/simple-cache/zipball/416cf88902991f3bf6168b71c0683e6dabb3d5e1",
"reference": "416cf88902991f3bf6168b71c0683e6dabb3d5e1",
"shasum": ""
},
"require": {
"php": ">=7.0.0",
"psr/simple-cache": "~1.0"
},
"provide": {
"psr/simple-cache-implementation": "1.0"
},
"require-dev": {
"phpunit/phpunit": "~6.0 || ~7.0"
},
"suggest": {
"predis/predis": "~1.1",
"symfony/var-exporter": "~3.0 || ~4.0 || ~5.0"
},
"time": "2020-03-15T21:00:57+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-4": {
"voku\\cache\\": "src/voku/cache/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Lars Moelleken",
"homepage": "http://www.moelleken.org/",
"role": "Developer"
}
],
"description": "Simple Cache library",
"homepage": "https://github.com/voku/simple-cache",
"keywords": [
"cache",
"caching",
"php",
"simple cache"
],
"support": {
"issues": "https://github.com/voku/simple-cache/issues",
"source": "https://github.com/voku/simple-cache/tree/master"
},
"funding": [
{
"url": "https://www.paypal.me/moelleken",
"type": "custom"
},
{
"url": "https://github.com/voku",
"type": "github"
},
{
"url": "https://www.patreon.com/voku",
"type": "patreon"
},
{
"url": "https://tidelift.com/funding/github/packagist/voku/simple-cache",
"type": "tidelift"
}
],
=======
"description": "Common interface for logging libraries",
"keywords": [
"log",
"psr",
"psr-3"
],
"install-path": "../psr/log"
},
{
"name": "psr/simple-cache",
"version": "1.0.1",
"version_normalized": "1.0.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/simple-cache.git",
"reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
"reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"time": "2017-10-23T01:57:42+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
"Psr\\SimpleCache\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interfaces for simple caching",
"keywords": [
"cache",
"caching",
"psr",
"psr-16",
"simple-cache"
],
"install-path": "../psr/simple-cache"
},
{
"name": "voku/simple-cache",
"version": "4.0.5",
"version_normalized": "4.0.5.0",
"source": {
"type": "git",
"url": "https://github.com/voku/simple-cache.git",
"reference": "416cf88902991f3bf6168b71c0683e6dabb3d5e1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/voku/simple-cache/zipball/416cf88902991f3bf6168b71c0683e6dabb3d5e1",
"reference": "416cf88902991f3bf6168b71c0683e6dabb3d5e1",
"shasum": ""
},
"require": {
"php": ">=7.0.0",
"psr/simple-cache": "~1.0"
},
"provide": {
"psr/simple-cache-implementation": "1.0"
},
"require-dev": {
"phpunit/phpunit": "~6.0 || ~7.0"
},
"suggest": {
"predis/predis": "~1.1",
"symfony/var-exporter": "~3.0 || ~4.0 || ~5.0"
},
"time": "2020-03-15T21:00:57+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-4": {
"voku\\cache\\": "src/voku/cache/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Lars Moelleken",
"homepage": "http://www.moelleken.org/",
"role": "Developer"
}
],
"description": "Simple Cache library",
"homepage": "https://github.com/voku/simple-cache",
"keywords": [
"cache",
"caching",
"php",
"simple cache"
],
"support": {
"issues": "https://github.com/voku/simple-cache/issues",
"source": "https://github.com/voku/simple-cache/tree/master"
},
"funding": [
{
"url": "https://www.paypal.me/moelleken",
"type": "custom"
},
{
"url": "https://github.com/voku",
"type": "github"
},
{
"url": "https://www.patreon.com/voku",
"type": "patreon"
},
{
"url": "https://tidelift.com/funding/github/packagist/voku/simple-cache",
"type": "tidelift"
}
],
>>>>>>> master
"install-path": "../voku/simple-cache"
}
],
"dev": true,
"dev-package-names": []
}

View File

@ -6,7 +6,7 @@
'aliases' =>
array (
),
'reference' => '05f58f90d743fe9ade24f3fdfe9a934d0b87c6a1',
'reference' => '1e645f52d45985949359c49ab147bcd45d6554f8',
'name' => '__root__',
),
'versions' =>
@ -18,7 +18,7 @@
'aliases' =>
array (
),
'reference' => '05f58f90d743fe9ade24f3fdfe9a934d0b87c6a1',
'reference' => '1e645f52d45985949359c49ab147bcd45d6554f8',
),
'katzgrau/klogger' =>
array (
@ -29,33 +29,6 @@
),
'reference' => '46cdd92a9b4a8443120cc955bf831450cb274813',
),
'laminas/laminas-db' =>
array (
'pretty_version' => '2.11.4',
'version' => '2.11.4.0',
'aliases' =>
array (
),
'reference' => '5b59413b8dd5d79e3fe58c2650c60b1730989f36',
),
'laminas/laminas-stdlib' =>
array (
'pretty_version' => '3.2.1',
'version' => '3.2.1.0',
'aliases' =>
array (
),
'reference' => '2b18347625a2f06a1a485acfbc870f699dbe51c6',
),
'laminas/laminas-zendframework-bridge' =>
array (
'pretty_version' => '1.1.1',
'version' => '1.1.1.0',
'aliases' =>
array (
),
'reference' => '6ede70583e101030bcace4dcddd648f760ddf642',
),
'psr/log' =>
array (
'pretty_version' => '1.0.0',
@ -90,19 +63,5 @@
),
'reference' => '416cf88902991f3bf6168b71c0683e6dabb3d5e1',
),
'zendframework/zend-db' =>
array (
'replaced' =>
array (
0 => '^2.11.0',
),
),
'zendframework/zend-stdlib' =>
array (
'replaced' =>
array (
0 => '3.2.1',
),
),
),
);

View File

@ -0,0 +1,122 @@
<?php return array (
'root' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'aliases' =>
array (
),
<<<<<<< HEAD
'reference' => 'ea886da10cdbdad164cd253003e862a0ec7ecd6c',
=======
'reference' => '05f58f90d743fe9ade24f3fdfe9a934d0b87c6a1',
>>>>>>> master
'name' => '__root__',
),
'versions' =>
array (
'__root__' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'aliases' =>
array (
),
<<<<<<< HEAD
'reference' => 'ea886da10cdbdad164cd253003e862a0ec7ecd6c',
=======
'reference' => '05f58f90d743fe9ade24f3fdfe9a934d0b87c6a1',
>>>>>>> master
),
'katzgrau/klogger' =>
array (
'pretty_version' => '1.0.0',
'version' => '1.0.0.0',
'aliases' =>
array (
),
'reference' => '46cdd92a9b4a8443120cc955bf831450cb274813',
),
<<<<<<< HEAD
=======
'laminas/laminas-db' =>
array (
'pretty_version' => '2.11.4',
'version' => '2.11.4.0',
'aliases' =>
array (
),
'reference' => '5b59413b8dd5d79e3fe58c2650c60b1730989f36',
),
'laminas/laminas-stdlib' =>
array (
'pretty_version' => '3.2.1',
'version' => '3.2.1.0',
'aliases' =>
array (
),
'reference' => '2b18347625a2f06a1a485acfbc870f699dbe51c6',
),
'laminas/laminas-zendframework-bridge' =>
array (
'pretty_version' => '1.1.1',
'version' => '1.1.1.0',
'aliases' =>
array (
),
'reference' => '6ede70583e101030bcace4dcddd648f760ddf642',
),
>>>>>>> master
'psr/log' =>
array (
'pretty_version' => '1.0.0',
'version' => '1.0.0.0',
'aliases' =>
array (
),
'reference' => 'fe0936ee26643249e916849d48e3a51d5f5e278b',
),
'psr/simple-cache' =>
array (
'pretty_version' => '1.0.1',
'version' => '1.0.1.0',
'aliases' =>
array (
),
'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
),
'psr/simple-cache-implementation' =>
array (
'provided' =>
array (
0 => '1.0',
),
),
'voku/simple-cache' =>
array (
'pretty_version' => '4.0.5',
'version' => '4.0.5.0',
'aliases' =>
array (
),
'reference' => '416cf88902991f3bf6168b71c0683e6dabb3d5e1',
),
<<<<<<< HEAD
=======
'zendframework/zend-db' =>
array (
'replaced' =>
array (
0 => '^2.11.0',
),
),
'zendframework/zend-stdlib' =>
array (
'replaced' =>
array (
0 => '3.2.1',
),
),
>>>>>>> master
),
);

View File

@ -1,10 +0,0 @@
{
"extensions": [
"pdo-mysql",
"pdo-pgsql",
"pdo-sqlite",
"mysqli",
"pgsql",
"sqlite3"
]
}

View File

@ -1,3 +0,0 @@
CREATE USER 'gha'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'gha'@'%';
FLUSH PRIVILEGES;

View File

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
bootstrap="vendor/autoload.php"
colors="true">
<testsuites>
<testsuite name="unit test">
<directory>./test/unit</directory>
</testsuite>
<testsuite name="integration test">
<directory>./test/integration</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./src</directory>
<exclude>
<file>./src/Sql/Ddl/Column/Float.php</file>
</exclude>
</whitelist>
</filter>
<listeners>
<listener class="LaminasIntegrationTest\Db\IntegrationTestListener" file="./test/integration/IntegrationTestListener.php" />
</listeners>
<php>
<!-- Note: the following is a FULL list of ALL POSSIBLE constants
currently in use in Laminas for ALL COMPONENTS; you should choose the
constants appropriate to the component you are migrating. -->
<!-- Integration Test Variables -->
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_MYSQL" value="true" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_MYSQL_HOSTNAME" value="mysql" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_MYSQL_USERNAME" value="gha" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_MYSQL_PASSWORD" value="password" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_MYSQL_DATABASE" value="laminasdb_test" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_SQLSRV" value="false" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_SQLSRV_HOSTNAME" value="192.168.20.20" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_SQLSRV_USERNAME" value="sa" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_SQLSRV_PASSWORD" value="Password123" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_SQLSRV_DATABASE" value="laminasdb_test" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_OCI8" value="false" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_OCI8_HOSTNAME" value="" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_OCI8_USERNAME" value="" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_OCI8_PASSWORD" value="" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_OCI8_DATABASE" value="" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_IBMDB2" value="false" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_IBMDB2_HOSTNAME" value="" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_IBMDB2_USERNAME" value="" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_IBMDB2_PASSWORD" value="" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_IBMDB2_DATABASE" value="" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_PGSQL" value="true" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_PGSQL_HOSTNAME" value="postgres" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_PGSQL_USERNAME" value="gha" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_PGSQL_PASSWORD" value="password" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_PGSQL_DATABASE" value="laminasdb_test" />
<env name="TESTS_LAMINAS_DB_ADAPTER_DRIVER_SQLITE_MEMORY" value="true" />
</php>
</phpunit>

View File

@ -1,22 +0,0 @@
#!/bin/bash
set -e
TEST_USER=$1
WORKSPACE=$2
JOB=$3
COMMAND=$(echo "${JOB}" | jq -r '.command')
if [[ ! ${COMMAND} =~ phpunit ]]; then
exit 0
fi
PHP_VERSION=$(echo "${JOB}" | jq -r '.php')
# Install CI version of phpunit config
cp .laminas-ci/phpunit.xml phpunit.xml
# Install lsof (used in integration tests)
apt update -qq
apt install -yqq lsof

View File

@ -1 +0,0 @@
Copyright (c) 2020 Laminas Project a Series of LF Projects, LLC. (https://getlaminas.org/)

View File

@ -1,26 +0,0 @@
Copyright (c) 2020 Laminas Project a Series of LF Projects, LLC.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
- Neither the name of Laminas Foundation nor the names of its contributors may
be used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@ -1,11 +0,0 @@
# laminas-db
[![Build Status](https://github.com/laminas/laminas-config/workflows/Continuous%20Integration/badge.svg)](https://github.com/laminas/laminas-config/actions?query=workflow%3A"Continuous+Integration")
`Laminas\Db` is a component that abstract the access to a Database using an object
oriented API to build the queries. `Laminas\Db` consumes different storage adapters
to access different database vendors such as MySQL, PostgreSQL, Oracle, IBM DB2,
Microsoft Sql Server, PDO, etc.
- File issues at https://github.com/laminas/laminas-db/issues
- Documentation is at https://docs.laminas.dev/laminas-db/

View File

@ -1,73 +0,0 @@
{
"name": "laminas/laminas-db",
"description": "Database abstraction layer, SQL abstraction, result set abstraction, and RowDataGateway and TableDataGateway implementations",
"license": "BSD-3-Clause",
"keywords": [
"laminas",
"db"
],
"homepage": "https://laminas.dev",
"support": {
"docs": "https://docs.laminas.dev/laminas-db/",
"issues": "https://github.com/laminas/laminas-db/issues",
"source": "https://github.com/laminas/laminas-db",
"rss": "https://github.com/laminas/laminas-db/releases.atom",
"chat": "https://laminas.dev/chat",
"forum": "https://discourse.laminas.dev"
},
"config": {
"sort-packages": true
},
"extra": {
"laminas": {
"component": "Laminas\\Db",
"config-provider": "Laminas\\Db\\ConfigProvider"
}
},
"require": {
"php": "^5.6 || ^7.0",
"laminas/laminas-stdlib": "^2.7 || ^3.0",
"laminas/laminas-zendframework-bridge": "^1.0"
},
"require-dev": {
"laminas/laminas-coding-standard": "~1.0.0",
"laminas/laminas-eventmanager": "^2.6.2 || ^3.0",
"laminas/laminas-hydrator": "^1.1 || ^2.1 || ^3.0",
"laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3",
"phpunit/phpunit": "^5.7.27 || ^6.5.14"
},
"suggest": {
"laminas/laminas-eventmanager": "Laminas\\EventManager component",
"laminas/laminas-hydrator": "Laminas\\Hydrator component for using HydratingResultSets",
"laminas/laminas-servicemanager": "Laminas\\ServiceManager component"
},
"autoload": {
"psr-4": {
"Laminas\\Db\\": "src/"
}
},
"autoload-dev": {
"files": [
"test/autoload.php"
],
"psr-4": {
"LaminasTest\\Db\\": "test/unit/",
"LaminasIntegrationTest\\Db\\": "test/integration/"
}
},
"scripts": {
"check": [
"@cs-check",
"@test"
],
"cs-check": "phpcs",
"cs-fix": "phpcbf",
"test": "phpunit --colors=always --testsuite \"unit test\"",
"test-coverage": "phpunit --colors=always --coverage-clover clover.xml",
"test-integration": "phpunit --colors=always --testsuite \"integration test\"",
"upload-coverage": "coveralls -v"
},
"replace": {
"zendframework/zend-db": "^2.11.0"
}
}

View File

@ -1,435 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter;
use Laminas\Db\ResultSet;
/**
* @property Driver\DriverInterface $driver
* @property Platform\PlatformInterface $platform
*/
class Adapter implements AdapterInterface, Profiler\ProfilerAwareInterface
{
/**
* Query Mode Constants
*/
const QUERY_MODE_EXECUTE = 'execute';
const QUERY_MODE_PREPARE = 'prepare';
/**
* Prepare Type Constants
*/
const PREPARE_TYPE_POSITIONAL = 'positional';
const PREPARE_TYPE_NAMED = 'named';
const FUNCTION_FORMAT_PARAMETER_NAME = 'formatParameterName';
const FUNCTION_QUOTE_IDENTIFIER = 'quoteIdentifier';
const FUNCTION_QUOTE_VALUE = 'quoteValue';
const VALUE_QUOTE_SEPARATOR = 'quoteSeparator';
/**
* @var Driver\DriverInterface
*/
protected $driver = null;
/**
* @var Platform\PlatformInterface
*/
protected $platform = null;
/**
* @var Profiler\ProfilerInterface
*/
protected $profiler = null;
/**
* @var ResultSet\ResultSetInterface
*/
protected $queryResultSetPrototype = null;
/**
* @var Driver\StatementInterface
*/
protected $lastPreparedStatement = null;
/**
* @param Driver\DriverInterface|array $driver
* @param Platform\PlatformInterface $platform
* @param ResultSet\ResultSetInterface $queryResultPrototype
* @param Profiler\ProfilerInterface $profiler
* @throws Exception\InvalidArgumentException
*/
public function __construct(
$driver,
Platform\PlatformInterface $platform = null,
ResultSet\ResultSetInterface $queryResultPrototype = null,
Profiler\ProfilerInterface $profiler = null
) {
// first argument can be an array of parameters
$parameters = [];
if (is_array($driver)) {
$parameters = $driver;
if ($profiler === null && isset($parameters['profiler'])) {
$profiler = $this->createProfiler($parameters);
}
$driver = $this->createDriver($parameters);
} elseif (! $driver instanceof Driver\DriverInterface) {
throw new Exception\InvalidArgumentException(
'The supplied or instantiated driver object does not implement ' . Driver\DriverInterface::class
);
}
$driver->checkEnvironment();
$this->driver = $driver;
if ($platform === null) {
$platform = $this->createPlatform($parameters);
}
$this->platform = $platform;
$this->queryResultSetPrototype = ($queryResultPrototype) ?: new ResultSet\ResultSet();
if ($profiler) {
$this->setProfiler($profiler);
}
}
/**
* @param Profiler\ProfilerInterface $profiler
* @return self Provides a fluent interface
*/
public function setProfiler(Profiler\ProfilerInterface $profiler)
{
$this->profiler = $profiler;
if ($this->driver instanceof Profiler\ProfilerAwareInterface) {
$this->driver->setProfiler($profiler);
}
return $this;
}
/**
* @return null|Profiler\ProfilerInterface
*/
public function getProfiler()
{
return $this->profiler;
}
/**
* getDriver()
*
* @throws Exception\RuntimeException
* @return Driver\DriverInterface
*/
public function getDriver()
{
if ($this->driver === null) {
throw new Exception\RuntimeException('Driver has not been set or configured for this adapter.');
}
return $this->driver;
}
/**
* @return Platform\PlatformInterface
*/
public function getPlatform()
{
return $this->platform;
}
/**
* @return ResultSet\ResultSetInterface
*/
public function getQueryResultSetPrototype()
{
return $this->queryResultSetPrototype;
}
public function getCurrentSchema()
{
return $this->driver->getConnection()->getCurrentSchema();
}
/**
* query() is a convenience function
*
* @param string $sql
* @param string|array|ParameterContainer $parametersOrQueryMode
* @param \Laminas\Db\ResultSet\ResultSetInterface $resultPrototype
* @throws Exception\InvalidArgumentException
* @return Driver\StatementInterface|ResultSet\ResultSet
*/
public function query(
$sql,
$parametersOrQueryMode = self::QUERY_MODE_PREPARE,
ResultSet\ResultSetInterface $resultPrototype = null
) {
if (is_string($parametersOrQueryMode)
&& in_array($parametersOrQueryMode, [self::QUERY_MODE_PREPARE, self::QUERY_MODE_EXECUTE])
) {
$mode = $parametersOrQueryMode;
$parameters = null;
} elseif (is_array($parametersOrQueryMode) || $parametersOrQueryMode instanceof ParameterContainer) {
$mode = self::QUERY_MODE_PREPARE;
$parameters = $parametersOrQueryMode;
} else {
throw new Exception\InvalidArgumentException(
'Parameter 2 to this method must be a flag, an array, or ParameterContainer'
);
}
if ($mode == self::QUERY_MODE_PREPARE) {
$this->lastPreparedStatement = null;
$this->lastPreparedStatement = $this->driver->createStatement($sql);
$this->lastPreparedStatement->prepare();
if (is_array($parameters) || $parameters instanceof ParameterContainer) {
if (is_array($parameters)) {
$this->lastPreparedStatement->setParameterContainer(new ParameterContainer($parameters));
} else {
$this->lastPreparedStatement->setParameterContainer($parameters);
}
$result = $this->lastPreparedStatement->execute();
} else {
return $this->lastPreparedStatement;
}
} else {
$result = $this->driver->getConnection()->execute($sql);
}
if ($result instanceof Driver\ResultInterface && $result->isQueryResult()) {
$resultSet = clone ($resultPrototype ?: $this->queryResultSetPrototype);
$resultSet->initialize($result);
return $resultSet;
}
return $result;
}
/**
* Create statement
*
* @param string $initialSql
* @param ParameterContainer $initialParameters
* @return Driver\StatementInterface
*/
public function createStatement($initialSql = null, $initialParameters = null)
{
$statement = $this->driver->createStatement($initialSql);
if ($initialParameters === null
|| ! $initialParameters instanceof ParameterContainer
&& is_array($initialParameters)
) {
$initialParameters = new ParameterContainer((is_array($initialParameters) ? $initialParameters : []));
}
$statement->setParameterContainer($initialParameters);
return $statement;
}
public function getHelpers()
{
$functions = [];
$platform = $this->platform;
foreach (func_get_args() as $arg) {
switch ($arg) {
case self::FUNCTION_QUOTE_IDENTIFIER:
$functions[] = function ($value) use ($platform) {
return $platform->quoteIdentifier($value);
};
break;
case self::FUNCTION_QUOTE_VALUE:
$functions[] = function ($value) use ($platform) {
return $platform->quoteValue($value);
};
break;
}
}
}
/**
* @param $name
* @throws Exception\InvalidArgumentException
* @return Driver\DriverInterface|Platform\PlatformInterface
*/
public function __get($name)
{
switch (strtolower($name)) {
case 'driver':
return $this->driver;
case 'platform':
return $this->platform;
default:
throw new Exception\InvalidArgumentException('Invalid magic property on adapter');
}
}
/**
* @param array $parameters
* @return Driver\DriverInterface
* @throws \InvalidArgumentException
* @throws Exception\InvalidArgumentException
*/
protected function createDriver($parameters)
{
if (! isset($parameters['driver'])) {
throw new Exception\InvalidArgumentException(
__FUNCTION__ . ' expects a "driver" key to be present inside the parameters'
);
}
if ($parameters['driver'] instanceof Driver\DriverInterface) {
return $parameters['driver'];
}
if (! is_string($parameters['driver'])) {
throw new Exception\InvalidArgumentException(
__FUNCTION__ . ' expects a "driver" to be a string or instance of DriverInterface'
);
}
$options = [];
if (isset($parameters['options'])) {
$options = (array) $parameters['options'];
unset($parameters['options']);
}
$driverName = strtolower($parameters['driver']);
switch ($driverName) {
case 'mysqli':
$driver = new Driver\Mysqli\Mysqli($parameters, null, null, $options);
break;
case 'sqlsrv':
$driver = new Driver\Sqlsrv\Sqlsrv($parameters);
break;
case 'oci8':
$driver = new Driver\Oci8\Oci8($parameters);
break;
case 'pgsql':
$driver = new Driver\Pgsql\Pgsql($parameters);
break;
case 'ibmdb2':
$driver = new Driver\IbmDb2\IbmDb2($parameters);
break;
case 'pdo':
default:
if ($driverName == 'pdo' || strpos($driverName, 'pdo') === 0) {
$driver = new Driver\Pdo\Pdo($parameters);
}
}
if (! isset($driver) || ! $driver instanceof Driver\DriverInterface) {
throw new Exception\InvalidArgumentException('DriverInterface expected', null, null);
}
return $driver;
}
/**
* @param array $parameters
* @return Platform\PlatformInterface
*/
protected function createPlatform(array $parameters)
{
if (isset($parameters['platform'])) {
$platformName = $parameters['platform'];
} elseif ($this->driver instanceof Driver\DriverInterface) {
$platformName = $this->driver->getDatabasePlatformName(Driver\DriverInterface::NAME_FORMAT_CAMELCASE);
} else {
throw new Exception\InvalidArgumentException(
'A platform could not be determined from the provided configuration'
);
}
// currently only supported by the IbmDb2 & Oracle concrete implementations
$options = (isset($parameters['platform_options'])) ? $parameters['platform_options'] : [];
switch ($platformName) {
case 'Mysql':
// mysqli or pdo_mysql driver
if ($this->driver instanceof Driver\Mysqli\Mysqli || $this->driver instanceof Driver\Pdo\Pdo) {
$driver = $this->driver;
} else {
$driver = null;
}
return new Platform\Mysql($driver);
case 'SqlServer':
// PDO is only supported driver for quoting values in this platform
return new Platform\SqlServer(($this->driver instanceof Driver\Pdo\Pdo) ? $this->driver : null);
case 'Oracle':
if ($this->driver instanceof Driver\Oci8\Oci8 || $this->driver instanceof Driver\Pdo\Pdo) {
$driver = $this->driver;
} else {
$driver = null;
}
return new Platform\Oracle($options, $driver);
case 'Sqlite':
// PDO is only supported driver for quoting values in this platform
if ($this->driver instanceof Driver\Pdo\Pdo) {
return new Platform\Sqlite($this->driver);
}
return new Platform\Sqlite(null);
case 'Postgresql':
// pgsql or pdo postgres driver
if ($this->driver instanceof Driver\Pgsql\Pgsql || $this->driver instanceof Driver\Pdo\Pdo) {
$driver = $this->driver;
} else {
$driver = null;
}
return new Platform\Postgresql($driver);
case 'IbmDb2':
// ibm_db2 driver escaping does not need an action connection
return new Platform\IbmDb2($options);
default:
return new Platform\Sql92();
}
}
/**
*
* @param array $parameters
* @return Profiler\ProfilerInterface
* @throws Exception\InvalidArgumentException
*/
protected function createProfiler($parameters)
{
if ($parameters['profiler'] instanceof Profiler\ProfilerInterface) {
$profiler = $parameters['profiler'];
} elseif (is_bool($parameters['profiler'])) {
$profiler = ($parameters['profiler'] == true) ? new Profiler\Profiler : null;
} else {
throw new Exception\InvalidArgumentException(
'"profiler" parameter must be an instance of ProfilerInterface or a boolean'
);
}
return $profiler;
}
/**
* @param array $parameters
* @return Driver\DriverInterface
* @throws \InvalidArgumentException
* @throws Exception\InvalidArgumentException
* @deprecated
*/
protected function createDriverFromParameters(array $parameters)
{
return $this->createDriver($parameters);
}
/**
* @param Driver\DriverInterface $driver
* @return Platform\PlatformInterface
* @deprecated
*/
protected function createPlatformFromDriver(Driver\DriverInterface $driver)
{
return $this->createPlatform($driver);
}
}

View File

@ -1,124 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter;
use Interop\Container\ContainerInterface;
use Laminas\ServiceManager\AbstractFactoryInterface;
use Laminas\ServiceManager\ServiceLocatorInterface;
/**
* Database adapter abstract service factory.
*
* Allows configuring several database instances (such as writer and reader).
*/
class AdapterAbstractServiceFactory implements AbstractFactoryInterface
{
/**
* @var array
*/
protected $config;
/**
* Can we create an adapter by the requested name?
*
* @param ContainerInterface $container
* @param string $requestedName
* @return bool
*/
public function canCreate(ContainerInterface $container, $requestedName)
{
$config = $this->getConfig($container);
if (empty($config)) {
return false;
}
return (
isset($config[$requestedName])
&& is_array($config[$requestedName])
&& ! empty($config[$requestedName])
);
}
/**
* Determine if we can create a service with name (SM v2 compatibility)
*
* @param ServiceLocatorInterface $serviceLocator
* @param string $name
* @param string $requestedName
* @return bool
*/
public function canCreateServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName)
{
return $this->canCreate($serviceLocator, $requestedName);
}
/**
* Create a DB adapter
*
* @param ContainerInterface $container
* @param string $requestedName
* @param array $options
* @return Adapter
*/
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
$config = $this->getConfig($container);
return new Adapter($config[$requestedName]);
}
/**
* Create service with name
*
* @param ServiceLocatorInterface $serviceLocator
* @param string $name
* @param string $requestedName
* @return Adapter
*/
public function createServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName)
{
return $this($serviceLocator, $requestedName);
}
/**
* Get db configuration, if any
*
* @param ContainerInterface $container
* @return array
*/
protected function getConfig(ContainerInterface $container)
{
if ($this->config !== null) {
return $this->config;
}
if (! $container->has('config')) {
$this->config = [];
return $this->config;
}
$config = $container->get('config');
if (! isset($config['db'])
|| ! is_array($config['db'])
) {
$this->config = [];
return $this->config;
}
$config = $config['db'];
if (! isset($config['adapters'])
|| ! is_array($config['adapters'])
) {
$this->config = [];
return $this->config;
}
$this->config = $config['adapters'];
return $this->config;
}
}

View File

@ -1,20 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter;
interface AdapterAwareInterface
{
/**
* Set db adapter
*
* @param Adapter $adapter
* @return AdapterAwareInterface
*/
public function setDbAdapter(Adapter $adapter);
}

View File

@ -1,30 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter;
trait AdapterAwareTrait
{
/**
* @var Adapter
*/
protected $adapter = null;
/**
* Set db adapter
*
* @param Adapter $adapter
* @return self Provides a fluent interface
*/
public function setDbAdapter(Adapter $adapter)
{
$this->adapter = $adapter;
return $this;
}
}

View File

@ -1,27 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter;
/**
*
* @property Driver\DriverInterface $driver
* @property Platform\PlatformInterface $platform
*/
interface AdapterInterface
{
/**
* @return Driver\DriverInterface
*/
public function getDriver();
/**
* @return Platform\PlatformInterface
*/
public function getPlatform();
}

View File

@ -1,41 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter;
use Interop\Container\ContainerInterface;
use Laminas\ServiceManager\FactoryInterface;
use Laminas\ServiceManager\ServiceLocatorInterface;
class AdapterServiceFactory implements FactoryInterface
{
/**
* Create db adapter service
*
* @param ContainerInterface $container
* @param string $requestedName
* @param array $options
* @return Adapter
*/
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
$config = $container->get('config');
return new Adapter($config['db']);
}
/**
* Create db adapter service (v2)
*
* @param ServiceLocatorInterface $container
* @return Adapter
*/
public function createService(ServiceLocatorInterface $container)
{
return $this($container, Adapter::class);
}
}

View File

@ -1,134 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver;
use Laminas\Db\Adapter\Profiler\ProfilerAwareInterface;
use Laminas\Db\Adapter\Profiler\ProfilerInterface;
abstract class AbstractConnection implements ConnectionInterface, ProfilerAwareInterface
{
/**
* @var array
*/
protected $connectionParameters = [];
/**
* @var string|null
*/
protected $driverName;
/**
* @var boolean
*/
protected $inTransaction = false;
/**
* Nested transactions count.
*
* @var integer
*/
protected $nestedTransactionsCount = 0;
/**
* @var ProfilerInterface|null
*/
protected $profiler;
/**
* @var resource|null
*/
protected $resource;
/**
* {@inheritDoc}
*/
public function disconnect()
{
if ($this->isConnected()) {
$this->resource = null;
}
return $this;
}
/**
* Get connection parameters
*
* @return array
*/
public function getConnectionParameters()
{
return $this->connectionParameters;
}
/**
* Get driver name
*
* @return null|string
*/
public function getDriverName()
{
return $this->driverName;
}
/**
* @return null|ProfilerInterface
*/
public function getProfiler()
{
return $this->profiler;
}
/**
* {@inheritDoc}
*
* @return resource
*/
public function getResource()
{
if (! $this->isConnected()) {
$this->connect();
}
return $this->resource;
}
/**
* Checks whether the connection is in transaction state.
*
* @return boolean
*/
public function inTransaction()
{
return $this->inTransaction;
}
/**
* @param array $connectionParameters
* @return self Provides a fluent interface
*/
public function setConnectionParameters(array $connectionParameters)
{
$this->connectionParameters = $connectionParameters;
return $this;
}
/**
* {@inheritDoc}
*
* @return self Provides a fluent interface
*/
public function setProfiler(ProfilerInterface $profiler)
{
$this->profiler = $profiler;
return $this;
}
}

View File

@ -1,84 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver;
interface ConnectionInterface
{
/**
* Get current schema
*
* @return string
*/
public function getCurrentSchema();
/**
* Get resource
*
* @return mixed
*/
public function getResource();
/**
* Connect
*
* @return ConnectionInterface
*/
public function connect();
/**
* Is connected
*
* @return bool
*/
public function isConnected();
/**
* Disconnect
*
* @return ConnectionInterface
*/
public function disconnect();
/**
* Begin transaction
*
* @return ConnectionInterface
*/
public function beginTransaction();
/**
* Commit
*
* @return ConnectionInterface
*/
public function commit();
/**
* Rollback
*
* @return ConnectionInterface
*/
public function rollback();
/**
* Execute
*
* @param string $sql
* @return ResultInterface
*/
public function execute($sql);
/**
* Get last generated id
*
* @param null $name Ignored
* @return int
*/
public function getLastGeneratedValue($name = null);
}

View File

@ -1,78 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver;
interface DriverInterface
{
const PARAMETERIZATION_POSITIONAL = 'positional';
const PARAMETERIZATION_NAMED = 'named';
const NAME_FORMAT_CAMELCASE = 'camelCase';
const NAME_FORMAT_NATURAL = 'natural';
/**
* Get database platform name
*
* @param string $nameFormat
* @return string
*/
public function getDatabasePlatformName($nameFormat = self::NAME_FORMAT_CAMELCASE);
/**
* Check environment
*
* @return bool
*/
public function checkEnvironment();
/**
* Get connection
*
* @return ConnectionInterface
*/
public function getConnection();
/**
* Create statement
*
* @param string|resource $sqlOrResource
* @return StatementInterface
*/
public function createStatement($sqlOrResource = null);
/**
* Create result
*
* @param resource $resource
* @return ResultInterface
*/
public function createResult($resource);
/**
* Get prepare type
*
* @return string
*/
public function getPrepareType();
/**
* Format parameter name
*
* @param string $name
* @param mixed $type
* @return string
*/
public function formatParameterName($name, $type = null);
/**
* Get last generated value
*
* @return mixed
*/
public function getLastGeneratedValue();
}

View File

@ -1,37 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Feature;
use Laminas\Db\Adapter\Driver\DriverInterface;
abstract class AbstractFeature
{
/**
* @var DriverInterface
*/
protected $driver = null;
/**
* Set driver
*
* @param DriverInterface $driver
* @return void
*/
public function setDriver(DriverInterface $driver)
{
$this->driver = $driver;
}
/**
* Get name
*
* @return string
*/
abstract public function getName();
}

View File

@ -1,36 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Feature;
interface DriverFeatureInterface
{
/**
* Setup the default features for Pdo
*
* @return DriverFeatureInterface
*/
public function setupDefaultFeatures();
/**
* Add feature
*
* @param string $name
* @param mixed $feature
* @return DriverFeatureInterface
*/
public function addFeature($name, $feature);
/**
* Get feature
*
* @param $name
* @return mixed|false
*/
public function getFeature($name);
}

View File

@ -1,284 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\IbmDb2;
use Laminas\Db\Adapter\Driver\AbstractConnection;
use Laminas\Db\Adapter\Exception;
class Connection extends AbstractConnection
{
/**
* @var IbmDb2
*/
protected $driver = null;
/**
* i5 OS
*
* @var bool
*/
protected $i5;
/**
* Previous autocommit set
*
* @var mixed
*/
protected $prevAutocommit;
/**
* Constructor
*
* @param array|resource|null $connectionParameters (ibm_db2 connection resource)
* @throws Exception\InvalidArgumentException
*/
public function __construct($connectionParameters = null)
{
if (is_array($connectionParameters)) {
$this->setConnectionParameters($connectionParameters);
} elseif (is_resource($connectionParameters)) {
$this->setResource($connectionParameters);
} elseif (null !== $connectionParameters) {
throw new Exception\InvalidArgumentException(
'$connection must be an array of parameters, a db2 connection resource or null'
);
}
}
/**
* Set driver
*
* @param IbmDb2 $driver
* @return self Provides a fluent interface
*/
public function setDriver(IbmDb2 $driver)
{
$this->driver = $driver;
return $this;
}
/**
* @param resource $resource DB2 resource
* @return self Provides a fluent interface
*/
public function setResource($resource)
{
if (! is_resource($resource) || get_resource_type($resource) !== 'DB2 Connection') {
throw new Exception\InvalidArgumentException('The resource provided must be of type "DB2 Connection"');
}
$this->resource = $resource;
return $this;
}
/**
* {@inheritDoc}
*/
public function getCurrentSchema()
{
if (! $this->isConnected()) {
$this->connect();
}
$info = db2_server_info($this->resource);
return (isset($info->DB_NAME) ? $info->DB_NAME : '');
}
/**
* {@inheritDoc}
*/
public function connect()
{
if (is_resource($this->resource)) {
return $this;
}
// localize
$p = $this->connectionParameters;
// given a list of key names, test for existence in $p
$findParameterValue = function (array $names) use ($p) {
foreach ($names as $name) {
if (isset($p[$name])) {
return $p[$name];
}
}
return;
};
$database = $findParameterValue(['database', 'db']);
$username = $findParameterValue(['username', 'uid', 'UID']);
$password = $findParameterValue(['password', 'pwd', 'PWD']);
$isPersistent = $findParameterValue(['persistent', 'PERSISTENT', 'Persistent']);
$options = (isset($p['driver_options']) ? $p['driver_options'] : []);
$connect = ((bool) $isPersistent) ? 'db2_pconnect' : 'db2_connect';
$this->resource = $connect($database, $username, $password, $options);
if ($this->resource === false) {
throw new Exception\RuntimeException(sprintf(
'%s: Unable to connect to database',
__METHOD__
));
}
return $this;
}
/**
* {@inheritDoc}
*/
public function isConnected()
{
return ($this->resource !== null);
}
/**
* {@inheritDoc}
*/
public function disconnect()
{
if ($this->resource) {
db2_close($this->resource);
$this->resource = null;
}
return $this;
}
/**
* {@inheritDoc}
*/
public function beginTransaction()
{
if ($this->isI5() && ! ini_get('ibm_db2.i5_allow_commit')) {
throw new Exception\RuntimeException(
'DB2 transactions are not enabled, you need to set the ibm_db2.i5_allow_commit=1 in your php.ini'
);
}
if (! $this->isConnected()) {
$this->connect();
}
$this->prevAutocommit = db2_autocommit($this->resource);
db2_autocommit($this->resource, DB2_AUTOCOMMIT_OFF);
$this->inTransaction = true;
return $this;
}
/**
* {@inheritDoc}
*/
public function commit()
{
if (! $this->isConnected()) {
$this->connect();
}
if (! db2_commit($this->resource)) {
throw new Exception\RuntimeException("The commit has not been successful");
}
if ($this->prevAutocommit) {
db2_autocommit($this->resource, $this->prevAutocommit);
}
$this->inTransaction = false;
return $this;
}
/**
* Rollback
*
* @return self Provides a fluent interface
* @throws Exception\RuntimeException
*/
public function rollback()
{
if (! $this->isConnected()) {
throw new Exception\RuntimeException('Must be connected before you can rollback.');
}
if (! $this->inTransaction()) {
throw new Exception\RuntimeException('Must call beginTransaction() before you can rollback.');
}
if (! db2_rollback($this->resource)) {
throw new Exception\RuntimeException('The rollback has not been successful');
}
if ($this->prevAutocommit) {
db2_autocommit($this->resource, $this->prevAutocommit);
}
$this->inTransaction = false;
return $this;
}
/**
* {@inheritDoc}
*/
public function execute($sql)
{
if (! $this->isConnected()) {
$this->connect();
}
if ($this->profiler) {
$this->profiler->profilerStart($sql);
}
set_error_handler(function () {
}, E_WARNING); // suppress warnings
$resultResource = db2_exec($this->resource, $sql);
restore_error_handler();
if ($this->profiler) {
$this->profiler->profilerFinish($sql);
}
// if the returnValue is something other than a pg result resource, bypass wrapping it
if ($resultResource === false) {
throw new Exception\InvalidQueryException(db2_stmt_errormsg());
}
return $this->driver->createResult(($resultResource === true) ? $this->resource : $resultResource);
}
/**
* {@inheritDoc}
*/
public function getLastGeneratedValue($name = null)
{
return db2_last_insert_id($this->resource);
}
/**
* Determine if the OS is OS400 (AS400, IBM i)
*
* @return bool
*/
protected function isI5()
{
if (isset($this->i5)) {
return $this->i5;
}
$this->i5 = (php_uname('s') == 'OS400');
return $this->i5;
}
}

View File

@ -1,213 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\IbmDb2;
use Laminas\Db\Adapter\Driver\DriverInterface;
use Laminas\Db\Adapter\Exception;
use Laminas\Db\Adapter\Profiler;
class IbmDb2 implements DriverInterface, Profiler\ProfilerAwareInterface
{
/**
* @var Connection
*/
protected $connection;
/** @var Statement */
protected $statementPrototype;
/** @var Result */
protected $resultPrototype;
/**
* @var Profiler\ProfilerInterface
*/
protected $profiler;
/**
* @param array|Connection|resource $connection
* @param null|Statement $statementPrototype
* @param null|Result $resultPrototype
*/
public function __construct($connection, Statement $statementPrototype = null, Result $resultPrototype = null)
{
if (! $connection instanceof Connection) {
$connection = new Connection($connection);
}
$this->registerConnection($connection);
$this->registerStatementPrototype(($statementPrototype) ?: new Statement());
$this->registerResultPrototype(($resultPrototype) ?: new Result());
}
/**
* @param Profiler\ProfilerInterface $profiler
* @return self Provides a fluent interface
*/
public function setProfiler(Profiler\ProfilerInterface $profiler)
{
$this->profiler = $profiler;
if ($this->connection instanceof Profiler\ProfilerAwareInterface) {
$this->connection->setProfiler($profiler);
}
if ($this->statementPrototype instanceof Profiler\ProfilerAwareInterface) {
$this->statementPrototype->setProfiler($profiler);
}
return $this;
}
/**
* @return null|Profiler\ProfilerInterface
*/
public function getProfiler()
{
return $this->profiler;
}
/**
* @param Connection $connection
* @return self Provides a fluent interface
*/
public function registerConnection(Connection $connection)
{
$this->connection = $connection;
$this->connection->setDriver($this);
return $this;
}
/**
* @param Statement $statementPrototype
* @return self Provides a fluent interface
*/
public function registerStatementPrototype(Statement $statementPrototype)
{
$this->statementPrototype = $statementPrototype;
$this->statementPrototype->setDriver($this);
return $this;
}
/**
* @param Result $resultPrototype
* @return self Provides a fluent interface
*/
public function registerResultPrototype(Result $resultPrototype)
{
$this->resultPrototype = $resultPrototype;
return $this;
}
/**
* Get database platform name
*
* @param string $nameFormat
* @return string
*/
public function getDatabasePlatformName($nameFormat = self::NAME_FORMAT_CAMELCASE)
{
if ($nameFormat == self::NAME_FORMAT_CAMELCASE) {
return 'IbmDb2';
} else {
return 'IBM DB2';
}
}
/**
* Check environment
*
* @return bool
*/
public function checkEnvironment()
{
if (! extension_loaded('ibm_db2')) {
throw new Exception\RuntimeException('The ibm_db2 extension is required by this driver.');
}
}
/**
* Get connection
*
* @return Connection
*/
public function getConnection()
{
return $this->connection;
}
/**
* Create statement
*
* @param string|resource $sqlOrResource
* @return Statement
*/
public function createStatement($sqlOrResource = null)
{
$statement = clone $this->statementPrototype;
if (is_resource($sqlOrResource) && get_resource_type($sqlOrResource) == 'DB2 Statement') {
$statement->setResource($sqlOrResource);
} else {
if (is_string($sqlOrResource)) {
$statement->setSql($sqlOrResource);
} elseif ($sqlOrResource !== null) {
throw new Exception\InvalidArgumentException(
__FUNCTION__ . ' only accepts an SQL string or an ibm_db2 resource'
);
}
if (! $this->connection->isConnected()) {
$this->connection->connect();
}
$statement->initialize($this->connection->getResource());
}
return $statement;
}
/**
* Create result
*
* @param resource $resource
* @return Result
*/
public function createResult($resource)
{
$result = clone $this->resultPrototype;
$result->initialize($resource, $this->connection->getLastGeneratedValue());
return $result;
}
/**
* Get prepare type
*
* @return string
*/
public function getPrepareType()
{
return self::PARAMETERIZATION_POSITIONAL;
}
/**
* Format parameter name
*
* @param string $name
* @param mixed $type
* @return string
*/
public function formatParameterName($name, $type = null)
{
return '?';
}
/**
* Get last generated value
*
* @return mixed
*/
public function getLastGeneratedValue()
{
return $this->connection->getLastGeneratedValue();
}
}

View File

@ -1,191 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\IbmDb2;
use Laminas\Db\Adapter\Driver\ResultInterface;
use Laminas\Db\Adapter\Exception;
class Result implements ResultInterface
{
/**
* @var resource
*/
protected $resource;
/**
* @var int
*/
protected $position = 0;
/**
* @var bool
*/
protected $currentComplete = false;
/**
* @var mixed
*/
protected $currentData = null;
/**
* @var mixed
*/
protected $generatedValue = null;
/**
* @param resource $resource
* @param mixed $generatedValue
* @return self Provides a fluent interface
*/
public function initialize($resource, $generatedValue = null)
{
$this->resource = $resource;
$this->generatedValue = $generatedValue;
return $this;
}
/**
* (PHP 5 &gt;= 5.0.0)<br/>
* Return the current element
* @link http://php.net/manual/en/iterator.current.php
* @return mixed Can return any type.
*/
public function current()
{
if ($this->currentComplete) {
return $this->currentData;
}
$this->currentData = db2_fetch_assoc($this->resource);
return $this->currentData;
}
/**
* @return mixed
*/
public function next()
{
$this->currentData = db2_fetch_assoc($this->resource);
$this->currentComplete = true;
$this->position++;
return $this->currentData;
}
/**
* @return int|string
*/
public function key()
{
return $this->position;
}
/**
* @return bool
*/
public function valid()
{
return ($this->currentData !== false);
}
/**
* (PHP 5 &gt;= 5.0.0)<br/>
* Rewind the Iterator to the first element
* @link http://php.net/manual/en/iterator.rewind.php
* @return void Any returned value is ignored.
*/
public function rewind()
{
if ($this->position > 0) {
throw new Exception\RuntimeException(
'This result is a forward only result set, calling rewind() after moving forward is not supported'
);
}
$this->currentData = db2_fetch_assoc($this->resource);
$this->currentComplete = true;
$this->position = 1;
}
/**
* Force buffering
*
* @return void
*/
public function buffer()
{
return;
}
/**
* Check if is buffered
*
* @return bool|null
*/
public function isBuffered()
{
return false;
}
/**
* Is query result?
*
* @return bool
*/
public function isQueryResult()
{
return (db2_num_fields($this->resource) > 0);
}
/**
* Get affected rows
*
* @return int
*/
public function getAffectedRows()
{
return db2_num_rows($this->resource);
}
/**
* Get generated value
*
* @return mixed|null
*/
public function getGeneratedValue()
{
return $this->generatedValue;
}
/**
* Get the resource
*
* @return mixed
*/
public function getResource()
{
return $this->resource;
}
/**
* Get field count
*
* @return int
*/
public function getFieldCount()
{
return db2_num_fields($this->resource);
}
/**
* @return null|int
*/
public function count()
{
return;
}
}

View File

@ -1,276 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\IbmDb2;
use ErrorException;
use Laminas\Db\Adapter\Driver\StatementInterface;
use Laminas\Db\Adapter\Exception;
use Laminas\Db\Adapter\ParameterContainer;
use Laminas\Db\Adapter\Profiler;
class Statement implements StatementInterface, Profiler\ProfilerAwareInterface
{
/**
* @var resource
*/
protected $db2 = null;
/**
* @var IbmDb2
*/
protected $driver = null;
/**
* @var Profiler\ProfilerInterface
*/
protected $profiler = null;
/**
* @var string
*/
protected $sql = '';
/**
* @var ParameterContainer
*/
protected $parameterContainer = null;
/**
* @var bool
*/
protected $isPrepared = false;
/**
* @var resource
*/
protected $resource = null;
/**
* @param $resource
* @return self Provides a fluent interface
*/
public function initialize($resource)
{
$this->db2 = $resource;
return $this;
}
/**
* @param IbmDb2 $driver
* @return self Provides a fluent interface
*/
public function setDriver(IbmDb2 $driver)
{
$this->driver = $driver;
return $this;
}
/**
* @param Profiler\ProfilerInterface $profiler
* @return self Provides a fluent interface
*/
public function setProfiler(Profiler\ProfilerInterface $profiler)
{
$this->profiler = $profiler;
return $this;
}
/**
* @return null|Profiler\ProfilerInterface
*/
public function getProfiler()
{
return $this->profiler;
}
/**
* Set sql
*
* @param $sql
* @return self Provides a fluent interface
*/
public function setSql($sql)
{
$this->sql = $sql;
return $this;
}
/**
* Get sql
*
* @return mixed
*/
public function getSql()
{
return $this->sql;
}
/**
* Set parameter container
*
* @param ParameterContainer $parameterContainer
* @return self Provides a fluent interface
*/
public function setParameterContainer(ParameterContainer $parameterContainer)
{
$this->parameterContainer = $parameterContainer;
return $this;
}
/**
* Get parameter container
*
* @return mixed
*/
public function getParameterContainer()
{
return $this->parameterContainer;
}
/**
* @param $resource
* @throws \Laminas\Db\Adapter\Exception\InvalidArgumentException
*/
public function setResource($resource)
{
if (get_resource_type($resource) !== 'DB2 Statement') {
throw new Exception\InvalidArgumentException('Resource must be of type DB2 Statement');
}
$this->resource = $resource;
}
/**
* Get resource
*
* @return resource
*/
public function getResource()
{
return $this->resource;
}
/**
* Prepare sql
*
* @param string|null $sql
* @return self Provides a fluent interface
* @throws Exception\RuntimeException
*/
public function prepare($sql = null)
{
if ($this->isPrepared) {
throw new Exception\RuntimeException('This statement has been prepared already');
}
if ($sql === null) {
$sql = $this->sql;
}
try {
set_error_handler($this->createErrorHandler());
$this->resource = db2_prepare($this->db2, $sql);
} catch (ErrorException $e) {
throw new Exception\RuntimeException($e->getMessage() . '. ' . db2_stmt_errormsg(), db2_stmt_error(), $e);
} finally {
restore_error_handler();
}
if ($this->resource === false) {
throw new Exception\RuntimeException(db2_stmt_errormsg(), db2_stmt_error());
}
$this->isPrepared = true;
return $this;
}
/**
* Check if is prepared
*
* @return bool
*/
public function isPrepared()
{
return $this->isPrepared;
}
/**
* Execute
*
* @param null|array|ParameterContainer $parameters
* @return Result
*/
public function execute($parameters = null)
{
if (! $this->isPrepared) {
$this->prepare();
}
/** START Standard ParameterContainer Merging Block */
if (! $this->parameterContainer instanceof ParameterContainer) {
if ($parameters instanceof ParameterContainer) {
$this->parameterContainer = $parameters;
$parameters = null;
} else {
$this->parameterContainer = new ParameterContainer();
}
}
if (is_array($parameters)) {
$this->parameterContainer->setFromArray($parameters);
}
/** END Standard ParameterContainer Merging Block */
if ($this->profiler) {
$this->profiler->profilerStart($this);
}
set_error_handler(function () {
}, E_WARNING); // suppress warnings
$response = db2_execute($this->resource, $this->parameterContainer->getPositionalArray());
restore_error_handler();
if ($this->profiler) {
$this->profiler->profilerFinish();
}
if ($response === false) {
throw new Exception\RuntimeException(db2_stmt_errormsg($this->resource));
}
$result = $this->driver->createResult($this->resource);
return $result;
}
/**
* Creates and returns a callable error handler that raises exceptions.
*
* Only raises exceptions for errors that are within the error_reporting mask.
*
* @return callable
*/
private function createErrorHandler()
{
/**
* @param int $errno
* @param string $errstr
* @param string $errfile
* @param int $errline
* @return void
* @throws ErrorException if error is not within the error_reporting mask.
*/
return function ($errno, $errstr, $errfile, $errline) {
if (! (error_reporting() & $errno)) {
// error_reporting does not include this error
return;
}
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
};
}
}

View File

@ -1,297 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Mysqli;
use Exception as GenericException;
use Laminas\Db\Adapter\Driver\AbstractConnection;
use Laminas\Db\Adapter\Exception;
class Connection extends AbstractConnection
{
/**
* @var Mysqli
*/
protected $driver = null;
/**
* @var \mysqli
*/
protected $resource = null;
/**
* Constructor
*
* @param array|mysqli|null $connectionInfo
* @throws \Laminas\Db\Adapter\Exception\InvalidArgumentException
*/
public function __construct($connectionInfo = null)
{
if (is_array($connectionInfo)) {
$this->setConnectionParameters($connectionInfo);
} elseif ($connectionInfo instanceof \mysqli) {
$this->setResource($connectionInfo);
} elseif (null !== $connectionInfo) {
throw new Exception\InvalidArgumentException(
'$connection must be an array of parameters, a mysqli object or null'
);
}
}
/**
* @param Mysqli $driver
* @return self Provides a fluent interface
*/
public function setDriver(Mysqli $driver)
{
$this->driver = $driver;
return $this;
}
/**
* {@inheritDoc}
*/
public function getCurrentSchema()
{
if (! $this->isConnected()) {
$this->connect();
}
$result = $this->resource->query('SELECT DATABASE()');
$r = $result->fetch_row();
return $r[0];
}
/**
* Set resource
*
* @param \mysqli $resource
* @return self Provides a fluent interface
*/
public function setResource(\mysqli $resource)
{
$this->resource = $resource;
return $this;
}
/**
* {@inheritDoc}
*/
public function connect()
{
if ($this->resource instanceof \mysqli) {
return $this;
}
// localize
$p = $this->connectionParameters;
// given a list of key names, test for existence in $p
$findParameterValue = function (array $names) use ($p) {
foreach ($names as $name) {
if (isset($p[$name])) {
return $p[$name];
}
}
return;
};
$hostname = $findParameterValue(['hostname', 'host']);
$username = $findParameterValue(['username', 'user']);
$password = $findParameterValue(['password', 'passwd', 'pw']);
$database = $findParameterValue(['database', 'dbname', 'db', 'schema']);
$port = (isset($p['port'])) ? (int) $p['port'] : null;
$socket = (isset($p['socket'])) ? $p['socket'] : null;
$useSSL = (isset($p['use_ssl'])) ? $p['use_ssl'] : 0;
$clientKey = (isset($p['client_key'])) ? $p['client_key'] : null;
$clientCert = (isset($p['client_cert'])) ? $p['client_cert'] : null;
$caCert = (isset($p['ca_cert'])) ? $p['ca_cert'] : null;
$caPath = (isset($p['ca_path'])) ? $p['ca_path'] : null;
$cipher = (isset($p['cipher'])) ? $p['cipher'] : null;
$this->resource = $this->createResource();
$this->resource->init();
if (! empty($p['driver_options'])) {
foreach ($p['driver_options'] as $option => $value) {
if (is_string($option)) {
$option = strtoupper($option);
if (! defined($option)) {
continue;
}
$option = constant($option);
}
$this->resource->options($option, $value);
}
}
$flags = null;
if ($useSSL && ! $socket) {
// Even though mysqli docs are not quite clear on this, MYSQLI_CLIENT_SSL
// needs to be set to make sure SSL is used. ssl_set can also cause it to
// be implicitly set, but only when any of the parameters is non-empty.
$flags = MYSQLI_CLIENT_SSL;
$this->resource->ssl_set($clientKey, $clientCert, $caCert, $caPath, $cipher);
//MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT is not valid option, needs to be set as flag
if (isset($p['driver_options'])
&& isset($p['driver_options'][MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT])
) {
$flags |= MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT;
}
}
try {
$this->resource->real_connect($hostname, $username, $password, $database, $port, $socket, $flags);
} catch (GenericException $e) {
throw new Exception\RuntimeException(
'Connection error',
null,
new Exception\ErrorException($this->resource->connect_error, $this->resource->connect_errno)
);
}
if ($this->resource->connect_error) {
throw new Exception\RuntimeException(
'Connection error',
null,
new Exception\ErrorException($this->resource->connect_error, $this->resource->connect_errno)
);
}
if (! empty($p['charset'])) {
$this->resource->set_charset($p['charset']);
}
return $this;
}
/**
* {@inheritDoc}
*/
public function isConnected()
{
return ($this->resource instanceof \mysqli);
}
/**
* {@inheritDoc}
*/
public function disconnect()
{
if ($this->resource instanceof \mysqli) {
$this->resource->close();
}
$this->resource = null;
}
/**
* {@inheritDoc}
*/
public function beginTransaction()
{
if (! $this->isConnected()) {
$this->connect();
}
$this->resource->autocommit(false);
$this->inTransaction = true;
return $this;
}
/**
* {@inheritDoc}
*/
public function commit()
{
if (! $this->isConnected()) {
$this->connect();
}
$this->resource->commit();
$this->inTransaction = false;
$this->resource->autocommit(true);
return $this;
}
/**
* {@inheritDoc}
*/
public function rollback()
{
if (! $this->isConnected()) {
throw new Exception\RuntimeException('Must be connected before you can rollback.');
}
if (! $this->inTransaction) {
throw new Exception\RuntimeException('Must call beginTransaction() before you can rollback.');
}
$this->resource->rollback();
$this->resource->autocommit(true);
$this->inTransaction = false;
return $this;
}
/**
* {@inheritDoc}
*
* @throws Exception\InvalidQueryException
*/
public function execute($sql)
{
if (! $this->isConnected()) {
$this->connect();
}
if ($this->profiler) {
$this->profiler->profilerStart($sql);
}
$resultResource = $this->resource->query($sql);
if ($this->profiler) {
$this->profiler->profilerFinish($sql);
}
// if the returnValue is something other than a mysqli_result, bypass wrapping it
if ($resultResource === false) {
throw new Exception\InvalidQueryException($this->resource->error);
}
$resultPrototype = $this->driver->createResult(($resultResource === true) ? $this->resource : $resultResource);
return $resultPrototype;
}
/**
* {@inheritDoc}
*/
public function getLastGeneratedValue($name = null)
{
return $this->resource->insert_id;
}
/**
* Create a new mysqli resource
*
* @return \mysqli
*/
protected function createResource()
{
return new \mysqli();
}
}

View File

@ -1,261 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Mysqli;
use Laminas\Db\Adapter\Driver\DriverInterface;
use Laminas\Db\Adapter\Exception;
use Laminas\Db\Adapter\Profiler;
use mysqli_stmt;
class Mysqli implements DriverInterface, Profiler\ProfilerAwareInterface
{
/**
* @var Connection
*/
protected $connection = null;
/**
* @var Statement
*/
protected $statementPrototype = null;
/**
* @var Result
*/
protected $resultPrototype = null;
/**
* @var Profiler\ProfilerInterface
*/
protected $profiler = null;
/**
* @var array
*/
protected $options = [
'buffer_results' => false
];
/**
* Constructor
*
* @param array|Connection|\mysqli $connection
* @param null|Statement $statementPrototype
* @param null|Result $resultPrototype
* @param array $options
*/
public function __construct(
$connection,
Statement $statementPrototype = null,
Result $resultPrototype = null,
array $options = []
) {
if (! $connection instanceof Connection) {
$connection = new Connection($connection);
}
$options = array_intersect_key(array_merge($this->options, $options), $this->options);
$this->registerConnection($connection);
$this->registerStatementPrototype(($statementPrototype) ?: new Statement($options['buffer_results']));
$this->registerResultPrototype(($resultPrototype) ?: new Result());
}
/**
* @param Profiler\ProfilerInterface $profiler
* @return self Provides a fluent interface
*/
public function setProfiler(Profiler\ProfilerInterface $profiler)
{
$this->profiler = $profiler;
if ($this->connection instanceof Profiler\ProfilerAwareInterface) {
$this->connection->setProfiler($profiler);
}
if ($this->statementPrototype instanceof Profiler\ProfilerAwareInterface) {
$this->statementPrototype->setProfiler($profiler);
}
return $this;
}
/**
* @return null|Profiler\ProfilerInterface
*/
public function getProfiler()
{
return $this->profiler;
}
/**
* Register connection
*
* @param Connection $connection
* @return self Provides a fluent interface
*/
public function registerConnection(Connection $connection)
{
$this->connection = $connection;
$this->connection->setDriver($this); // needs access to driver to createStatement()
return $this;
}
/**
* Register statement prototype
*
* @param Statement $statementPrototype
*/
public function registerStatementPrototype(Statement $statementPrototype)
{
$this->statementPrototype = $statementPrototype;
$this->statementPrototype->setDriver($this); // needs access to driver to createResult()
}
/**
* Get statement prototype
*
* @return null|Statement
*/
public function getStatementPrototype()
{
return $this->statementPrototype;
}
/**
* Register result prototype
*
* @param Result $resultPrototype
*/
public function registerResultPrototype(Result $resultPrototype)
{
$this->resultPrototype = $resultPrototype;
}
/**
* @return null|Result
*/
public function getResultPrototype()
{
return $this->resultPrototype;
}
/**
* Get database platform name
*
* @param string $nameFormat
* @return string
*/
public function getDatabasePlatformName($nameFormat = self::NAME_FORMAT_CAMELCASE)
{
if ($nameFormat == self::NAME_FORMAT_CAMELCASE) {
return 'Mysql';
}
return 'MySQL';
}
/**
* Check environment
*
* @throws Exception\RuntimeException
* @return void
*/
public function checkEnvironment()
{
if (! extension_loaded('mysqli')) {
throw new Exception\RuntimeException(
'The Mysqli extension is required for this adapter but the extension is not loaded'
);
}
}
/**
* Get connection
*
* @return Connection
*/
public function getConnection()
{
return $this->connection;
}
/**
* Create statement
*
* @param string $sqlOrResource
* @return Statement
*/
public function createStatement($sqlOrResource = null)
{
/**
* @todo Resource tracking
if (is_resource($sqlOrResource) && !in_array($sqlOrResource, $this->resources, true)) {
$this->resources[] = $sqlOrResource;
}
*/
$statement = clone $this->statementPrototype;
if ($sqlOrResource instanceof mysqli_stmt) {
$statement->setResource($sqlOrResource);
} else {
if (is_string($sqlOrResource)) {
$statement->setSql($sqlOrResource);
}
if (! $this->connection->isConnected()) {
$this->connection->connect();
}
$statement->initialize($this->connection->getResource());
}
return $statement;
}
/**
* Create result
*
* @param resource $resource
* @param null|bool $isBuffered
* @return Result
*/
public function createResult($resource, $isBuffered = null)
{
$result = clone $this->resultPrototype;
$result->initialize($resource, $this->connection->getLastGeneratedValue(), $isBuffered);
return $result;
}
/**
* Get prepare type
*
* @return string
*/
public function getPrepareType()
{
return self::PARAMETERIZATION_POSITIONAL;
}
/**
* Format parameter name
*
* @param string $name
* @param mixed $type
* @return string
*/
public function formatParameterName($name, $type = null)
{
return '?';
}
/**
* Get last generated value
*
* @return mixed
*/
public function getLastGeneratedValue()
{
return $this->getConnection()->getLastGeneratedValue();
}
}

View File

@ -1,341 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Mysqli;
use Iterator;
use Laminas\Db\Adapter\Driver\ResultInterface;
use Laminas\Db\Adapter\Exception;
class Result implements
Iterator,
ResultInterface
{
/**
* @var \mysqli|\mysqli_result|\mysqli_stmt
*/
protected $resource = null;
/**
* @var bool
*/
protected $isBuffered = null;
/**
* Cursor position
* @var int
*/
protected $position = 0;
/**
* Number of known rows
* @var int
*/
protected $numberOfRows = -1;
/**
* Is the current() operation already complete for this pointer position?
* @var bool
*/
protected $currentComplete = false;
/**
* @var bool
*/
protected $nextComplete = false;
/**
* @var mixed
*/
protected $currentData = null;
/**
*
* @var array
*/
protected $statementBindValues = ['keys' => null, 'values' => []];
/**
* @var mixed
*/
protected $generatedValue = null;
/**
* Initialize
*
* @param mixed $resource
* @param mixed $generatedValue
* @param bool|null $isBuffered
* @return self Provides a fluent interface
* @throws Exception\InvalidArgumentException
*/
public function initialize($resource, $generatedValue, $isBuffered = null)
{
if (! $resource instanceof \mysqli
&& ! $resource instanceof \mysqli_result
&& ! $resource instanceof \mysqli_stmt
) {
throw new Exception\InvalidArgumentException('Invalid resource provided.');
}
if ($isBuffered !== null) {
$this->isBuffered = $isBuffered;
} else {
if ($resource instanceof \mysqli || $resource instanceof \mysqli_result
|| $resource instanceof \mysqli_stmt && $resource->num_rows != 0) {
$this->isBuffered = true;
}
}
$this->resource = $resource;
$this->generatedValue = $generatedValue;
return $this;
}
/**
* Force buffering
*
* @throws Exception\RuntimeException
*/
public function buffer()
{
if ($this->resource instanceof \mysqli_stmt && $this->isBuffered !== true) {
if ($this->position > 0) {
throw new Exception\RuntimeException('Cannot buffer a result set that has started iteration.');
}
$this->resource->store_result();
$this->isBuffered = true;
}
}
/**
* Check if is buffered
*
* @return bool|null
*/
public function isBuffered()
{
return $this->isBuffered;
}
/**
* Return the resource
*
* @return mixed
*/
public function getResource()
{
return $this->resource;
}
/**
* Is query result?
*
* @return bool
*/
public function isQueryResult()
{
return ($this->resource->field_count > 0);
}
/**
* Get affected rows
*
* @return int
*/
public function getAffectedRows()
{
if ($this->resource instanceof \mysqli || $this->resource instanceof \mysqli_stmt) {
return $this->resource->affected_rows;
}
return $this->resource->num_rows;
}
/**
* Current
*
* @return mixed
*/
public function current()
{
if ($this->currentComplete) {
return $this->currentData;
}
if ($this->resource instanceof \mysqli_stmt) {
$this->loadDataFromMysqliStatement();
return $this->currentData;
} else {
$this->loadFromMysqliResult();
return $this->currentData;
}
}
/**
* Mysqli's binding and returning of statement values
*
* Mysqli requires you to bind variables to the extension in order to
* get data out. These values have to be references:
* @see http://php.net/manual/en/mysqli-stmt.bind-result.php
*
* @throws Exception\RuntimeException
* @return bool
*/
protected function loadDataFromMysqliStatement()
{
// build the default reference based bind structure, if it does not already exist
if ($this->statementBindValues['keys'] === null) {
$this->statementBindValues['keys'] = [];
$resultResource = $this->resource->result_metadata();
foreach ($resultResource->fetch_fields() as $col) {
$this->statementBindValues['keys'][] = $col->name;
}
$this->statementBindValues['values'] = array_fill(0, count($this->statementBindValues['keys']), null);
$refs = [];
foreach ($this->statementBindValues['values'] as $i => &$f) {
$refs[$i] = &$f;
}
call_user_func_array([$this->resource, 'bind_result'], $this->statementBindValues['values']);
}
if (($r = $this->resource->fetch()) === null) {
if (! $this->isBuffered) {
$this->resource->close();
}
return false;
} elseif ($r === false) {
throw new Exception\RuntimeException($this->resource->error);
}
// dereference
for ($i = 0, $count = count($this->statementBindValues['keys']); $i < $count; $i++) {
$this->currentData[$this->statementBindValues['keys'][$i]] = $this->statementBindValues['values'][$i];
}
$this->currentComplete = true;
$this->nextComplete = true;
$this->position++;
return true;
}
/**
* Load from mysqli result
*
* @return bool
*/
protected function loadFromMysqliResult()
{
$this->currentData = null;
if (($data = $this->resource->fetch_assoc()) === null) {
return false;
}
$this->position++;
$this->currentData = $data;
$this->currentComplete = true;
$this->nextComplete = true;
$this->position++;
return true;
}
/**
* Next
*
* @return void
*/
public function next()
{
$this->currentComplete = false;
if ($this->nextComplete == false) {
$this->position++;
}
$this->nextComplete = false;
}
/**
* Key
*
* @return mixed
*/
public function key()
{
return $this->position;
}
/**
* Rewind
*
* @throws Exception\RuntimeException
* @return void
*/
public function rewind()
{
if (0 !== $this->position && false === $this->isBuffered) {
throw new Exception\RuntimeException('Unbuffered results cannot be rewound for multiple iterations');
}
$this->resource->data_seek(0); // works for both mysqli_result & mysqli_stmt
$this->currentComplete = false;
$this->position = 0;
}
/**
* Valid
*
* @return bool
*/
public function valid()
{
if ($this->currentComplete) {
return true;
}
if ($this->resource instanceof \mysqli_stmt) {
return $this->loadDataFromMysqliStatement();
}
return $this->loadFromMysqliResult();
}
/**
* Count
*
* @throws Exception\RuntimeException
* @return int
*/
public function count()
{
if ($this->isBuffered === false) {
throw new Exception\RuntimeException('Row count is not available in unbuffered result sets.');
}
return $this->resource->num_rows;
}
/**
* Get field count
*
* @return int
*/
public function getFieldCount()
{
return $this->resource->field_count;
}
/**
* Get generated value
*
* @return mixed|null
*/
public function getGeneratedValue()
{
return $this->generatedValue;
}
}

View File

@ -1,314 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Mysqli;
use Laminas\Db\Adapter\Driver\StatementInterface;
use Laminas\Db\Adapter\Exception;
use Laminas\Db\Adapter\ParameterContainer;
use Laminas\Db\Adapter\Profiler;
class Statement implements StatementInterface, Profiler\ProfilerAwareInterface
{
/**
* @var \mysqli
*/
protected $mysqli = null;
/**
* @var Mysqli
*/
protected $driver = null;
/**
* @var Profiler\ProfilerInterface
*/
protected $profiler = null;
/**
* @var string
*/
protected $sql = '';
/**
* Parameter container
*
* @var ParameterContainer
*/
protected $parameterContainer = null;
/**
* @var \mysqli_stmt
*/
protected $resource = null;
/**
* Is prepared
*
* @var bool
*/
protected $isPrepared = false;
/**
* @var bool
*/
protected $bufferResults = false;
/**
* @param bool $bufferResults
*/
public function __construct($bufferResults = false)
{
$this->bufferResults = (bool) $bufferResults;
}
/**
* Set driver
*
* @param Mysqli $driver
* @return self Provides a fluent interface
*/
public function setDriver(Mysqli $driver)
{
$this->driver = $driver;
return $this;
}
/**
* @param Profiler\ProfilerInterface $profiler
* @return self Provides a fluent interface
*/
public function setProfiler(Profiler\ProfilerInterface $profiler)
{
$this->profiler = $profiler;
return $this;
}
/**
* @return null|Profiler\ProfilerInterface
*/
public function getProfiler()
{
return $this->profiler;
}
/**
* Initialize
*
* @param \mysqli $mysqli
* @return self Provides a fluent interface
*/
public function initialize(\mysqli $mysqli)
{
$this->mysqli = $mysqli;
return $this;
}
/**
* Set sql
*
* @param string $sql
* @return self Provides a fluent interface
*/
public function setSql($sql)
{
$this->sql = $sql;
return $this;
}
/**
* Set Parameter container
*
* @param ParameterContainer $parameterContainer
* @return self Provides a fluent interface
*/
public function setParameterContainer(ParameterContainer $parameterContainer)
{
$this->parameterContainer = $parameterContainer;
return $this;
}
/**
* Get resource
*
* @return mixed
*/
public function getResource()
{
return $this->resource;
}
/**
* Set resource
*
* @param \mysqli_stmt $mysqliStatement
* @return self Provides a fluent interface
*/
public function setResource(\mysqli_stmt $mysqliStatement)
{
$this->resource = $mysqliStatement;
$this->isPrepared = true;
return $this;
}
/**
* Get sql
*
* @return string
*/
public function getSql()
{
return $this->sql;
}
/**
* Get parameter count
*
* @return ParameterContainer
*/
public function getParameterContainer()
{
return $this->parameterContainer;
}
/**
* Is prepared
*
* @return bool
*/
public function isPrepared()
{
return $this->isPrepared;
}
/**
* Prepare
*
* @param string $sql
* @return self Provides a fluent interface
* @throws Exception\InvalidQueryException
* @throws Exception\RuntimeException
*/
public function prepare($sql = null)
{
if ($this->isPrepared) {
throw new Exception\RuntimeException('This statement has already been prepared');
}
$sql = ($sql) ?: $this->sql;
$this->resource = $this->mysqli->prepare($sql);
if (! $this->resource instanceof \mysqli_stmt) {
throw new Exception\InvalidQueryException(
'Statement couldn\'t be produced with sql: ' . $sql,
null,
new Exception\ErrorException($this->mysqli->error, $this->mysqli->errno)
);
}
$this->isPrepared = true;
return $this;
}
/**
* Execute
*
* @param null|array|ParameterContainer $parameters
* @throws Exception\RuntimeException
* @return mixed
*/
public function execute($parameters = null)
{
if (! $this->isPrepared) {
$this->prepare();
}
/** START Standard ParameterContainer Merging Block */
if (! $this->parameterContainer instanceof ParameterContainer) {
if ($parameters instanceof ParameterContainer) {
$this->parameterContainer = $parameters;
$parameters = null;
} else {
$this->parameterContainer = new ParameterContainer();
}
}
if (is_array($parameters)) {
$this->parameterContainer->setFromArray($parameters);
}
if ($this->parameterContainer->count() > 0) {
$this->bindParametersFromContainer();
}
/** END Standard ParameterContainer Merging Block */
if ($this->profiler) {
$this->profiler->profilerStart($this);
}
$return = $this->resource->execute();
if ($this->profiler) {
$this->profiler->profilerFinish();
}
if ($return === false) {
throw new Exception\RuntimeException($this->resource->error);
}
if ($this->bufferResults === true) {
$this->resource->store_result();
$this->isPrepared = false;
$buffered = true;
} else {
$buffered = false;
}
$result = $this->driver->createResult($this->resource, $buffered);
return $result;
}
/**
* Bind parameters from container
*
* @return void
*/
protected function bindParametersFromContainer()
{
$parameters = $this->parameterContainer->getNamedArray();
$type = '';
$args = [];
foreach ($parameters as $name => &$value) {
if ($this->parameterContainer->offsetHasErrata($name)) {
switch ($this->parameterContainer->offsetGetErrata($name)) {
case ParameterContainer::TYPE_DOUBLE:
$type .= 'd';
break;
case ParameterContainer::TYPE_NULL:
$value = null; // as per @see http://www.php.net/manual/en/mysqli-stmt.bind-param.php#96148
case ParameterContainer::TYPE_INTEGER:
$type .= 'i';
break;
case ParameterContainer::TYPE_STRING:
default:
$type .= 's';
break;
}
} else {
$type .= 's';
}
$args[] = &$value;
}
if ($args) {
array_unshift($args, $type);
call_user_func_array([$this->resource, 'bind_param'], $args);
}
}
}

View File

@ -1,267 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Oci8;
use Laminas\Db\Adapter\Driver\AbstractConnection;
use Laminas\Db\Adapter\Exception;
class Connection extends AbstractConnection
{
/**
* @var Oci8
*/
protected $driver = null;
/**
* Constructor
*
* @param array|resource|null $connectionInfo
* @throws \Laminas\Db\Adapter\Exception\InvalidArgumentException
*/
public function __construct($connectionInfo = null)
{
if (is_array($connectionInfo)) {
$this->setConnectionParameters($connectionInfo);
} elseif ($connectionInfo instanceof \oci8) {
$this->setResource($connectionInfo);
} elseif (null !== $connectionInfo) {
throw new Exception\InvalidArgumentException(
'$connection must be an array of parameters, an oci8 resource or null'
);
}
}
/**
* @param Oci8 $driver
* @return self Provides a fluent interface
*/
public function setDriver(Oci8 $driver)
{
$this->driver = $driver;
return $this;
}
/**
* {@inheritDoc}
*/
public function getCurrentSchema()
{
if (! $this->isConnected()) {
$this->connect();
}
$query = "SELECT sys_context('USERENV', 'CURRENT_SCHEMA') as \"current_schema\" FROM DUAL";
$stmt = oci_parse($this->resource, $query);
oci_execute($stmt);
$dbNameArray = oci_fetch_array($stmt, OCI_ASSOC);
return $dbNameArray['current_schema'];
}
/**
* Set resource
*
* @param resource $resource
* @return self Provides a fluent interface
*/
public function setResource($resource)
{
if (! is_resource($resource) || get_resource_type($resource) !== 'oci8 connection') {
throw new Exception\InvalidArgumentException('A resource of type "oci8 connection" was expected');
}
$this->resource = $resource;
return $this;
}
/**
* {@inheritDoc}
*/
public function connect()
{
if (is_resource($this->resource)) {
return $this;
}
// localize
$p = $this->connectionParameters;
// given a list of key names, test for existence in $p
$findParameterValue = function (array $names) use ($p) {
foreach ($names as $name) {
if (isset($p[$name])) {
return $p[$name];
}
}
return;
};
// http://www.php.net/manual/en/function.oci-connect.php
$username = $findParameterValue(['username']);
$password = $findParameterValue(['password']);
$connectionString = $findParameterValue([
'connection_string',
'connectionstring',
'connection',
'hostname',
'instance'
]);
$characterSet = $findParameterValue(['character_set', 'charset', 'encoding']);
$sessionMode = $findParameterValue(['session_mode']);
// connection modifiers
$isUnique = $findParameterValue(['unique']);
$isPersistent = $findParameterValue(['persistent']);
if ($isUnique == true) {
$this->resource = oci_new_connect($username, $password, $connectionString, $characterSet, $sessionMode);
} elseif ($isPersistent == true) {
$this->resource = oci_pconnect($username, $password, $connectionString, $characterSet, $sessionMode);
} else {
$this->resource = oci_connect($username, $password, $connectionString, $characterSet, $sessionMode);
}
if (! $this->resource) {
$e = oci_error();
throw new Exception\RuntimeException(
'Connection error',
null,
new Exception\ErrorException($e['message'], $e['code'])
);
}
return $this;
}
/**
* {@inheritDoc}
*/
public function isConnected()
{
return (is_resource($this->resource));
}
/**
* {@inheritDoc}
*/
public function disconnect()
{
if (is_resource($this->resource)) {
oci_close($this->resource);
}
}
/**
* {@inheritDoc}
*/
public function beginTransaction()
{
if (! $this->isConnected()) {
$this->connect();
}
// A transaction begins when the first SQL statement that changes data is executed with oci_execute() using
// the OCI_NO_AUTO_COMMIT flag.
$this->inTransaction = true;
return $this;
}
/**
* {@inheritDoc}
*/
public function commit()
{
if (! $this->isConnected()) {
$this->connect();
}
if ($this->inTransaction()) {
$valid = oci_commit($this->resource);
if ($valid === false) {
$e = oci_error($this->resource);
throw new Exception\InvalidQueryException($e['message'], $e['code']);
}
$this->inTransaction = false;
}
return $this;
}
/**
* {@inheritDoc}
*/
public function rollback()
{
if (! $this->isConnected()) {
throw new Exception\RuntimeException('Must be connected before you can rollback.');
}
if (! $this->inTransaction()) {
throw new Exception\RuntimeException('Must call commit() before you can rollback.');
}
$valid = oci_rollback($this->resource);
if ($valid === false) {
$e = oci_error($this->resource);
throw new Exception\InvalidQueryException($e['message'], $e['code']);
}
$this->inTransaction = false;
return $this;
}
/**
* {@inheritDoc}
*/
public function execute($sql)
{
if (! $this->isConnected()) {
$this->connect();
}
if ($this->profiler) {
$this->profiler->profilerStart($sql);
}
$ociStmt = oci_parse($this->resource, $sql);
if ($this->inTransaction) {
$valid = @oci_execute($ociStmt, OCI_NO_AUTO_COMMIT);
} else {
$valid = @oci_execute($ociStmt, OCI_COMMIT_ON_SUCCESS);
}
if ($this->profiler) {
$this->profiler->profilerFinish($sql);
}
if ($valid === false) {
$e = oci_error($ociStmt);
throw new Exception\InvalidQueryException($e['message'], $e['code']);
}
$resultPrototype = $this->driver->createResult($ociStmt);
return $resultPrototype;
}
/**
* {@inheritDoc}
*/
public function getLastGeneratedValue($name = null)
{
// @todo Get Last Generated Value in Connection (this might not apply)
return;
}
}

View File

@ -1,74 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Oci8\Feature;
use Laminas\Db\Adapter\Driver\Feature\AbstractFeature;
use Laminas\Db\Adapter\Driver\Oci8\Statement;
/**
* Class for count of results of a select
*/
class RowCounter extends AbstractFeature
{
/**
* @return string
*/
public function getName()
{
return 'RowCounter';
}
/**
* @param Statement $statement
* @return null|int
*/
public function getCountForStatement(Statement $statement)
{
$countStmt = clone $statement;
$sql = $statement->getSql();
if ($sql == '' || stripos(strtolower($sql), 'select') === false) {
return;
}
$countSql = 'SELECT COUNT(*) as "count" FROM (' . $sql . ')';
$countStmt->prepare($countSql);
$result = $countStmt->execute();
$countRow = $result->current();
return $countRow['count'];
}
/**
* @param string $sql
* @return null|int
*/
public function getCountForSql($sql)
{
if (stripos(strtolower($sql), 'select') === false) {
return;
}
$countSql = 'SELECT COUNT(*) as "count" FROM (' . $sql . ')';
$result = $this->driver->getConnection()->execute($countSql);
$countRow = $result->current();
return $countRow['count'];
}
/**
* @param \Laminas\Db\Adapter\Driver\Oci8\Statement|string $context
* @return callable
*/
public function getRowCountClosure($context)
{
$rowCounter = $this;
return function () use ($rowCounter, $context) {
/** @var $rowCounter RowCounter */
return ($context instanceof Statement)
? $rowCounter->getCountForStatement($context)
: $rowCounter->getCountForSql($context);
};
}
}

View File

@ -1,301 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Oci8;
use Laminas\Db\Adapter\Driver\DriverInterface;
use Laminas\Db\Adapter\Driver\Feature\AbstractFeature;
use Laminas\Db\Adapter\Exception;
use Laminas\Db\Adapter\Profiler;
class Oci8 implements DriverInterface, Profiler\ProfilerAwareInterface
{
const FEATURES_DEFAULT = 'default';
/**
* @var Connection
*/
protected $connection = null;
/**
* @var Statement
*/
protected $statementPrototype = null;
/**
* @var Result
*/
protected $resultPrototype = null;
/**
* @var Profiler\ProfilerInterface
*/
protected $profiler = null;
/**
* @var array
*/
protected $options = [];
/**
* @var array
*/
protected $features = [];
/**
* @param array|Connection|\oci8 $connection
* @param null|Statement $statementPrototype
* @param null|Result $resultPrototype
* @param array $options
* @param string $features
*/
public function __construct(
$connection,
Statement $statementPrototype = null,
Result $resultPrototype = null,
array $options = [],
$features = self::FEATURES_DEFAULT
) {
if (! $connection instanceof Connection) {
$connection = new Connection($connection);
}
$options = array_intersect_key(array_merge($this->options, $options), $this->options);
$this->registerConnection($connection);
$this->registerStatementPrototype(($statementPrototype) ?: new Statement());
$this->registerResultPrototype(($resultPrototype) ?: new Result());
if (is_array($features)) {
foreach ($features as $name => $feature) {
$this->addFeature($name, $feature);
}
} elseif ($features instanceof AbstractFeature) {
$this->addFeature($features->getName(), $features);
} elseif ($features === self::FEATURES_DEFAULT) {
$this->setupDefaultFeatures();
}
}
/**
* @param Profiler\ProfilerInterface $profiler
* @return self Provides a fluent interface
*/
public function setProfiler(Profiler\ProfilerInterface $profiler)
{
$this->profiler = $profiler;
if ($this->connection instanceof Profiler\ProfilerAwareInterface) {
$this->connection->setProfiler($profiler);
}
if ($this->statementPrototype instanceof Profiler\ProfilerAwareInterface) {
$this->statementPrototype->setProfiler($profiler);
}
return $this;
}
/**
* @return null|Profiler\ProfilerInterface
*/
public function getProfiler()
{
return $this->profiler;
}
/**
* Register connection
*
* @param Connection $connection
* @return self Provides a fluent interface
*/
public function registerConnection(Connection $connection)
{
$this->connection = $connection;
$this->connection->setDriver($this); // needs access to driver to createStatement()
return $this;
}
/**
* Register statement prototype
*
* @param Statement $statementPrototype
* @return self Provides a fluent interface
*/
public function registerStatementPrototype(Statement $statementPrototype)
{
$this->statementPrototype = $statementPrototype;
$this->statementPrototype->setDriver($this); // needs access to driver to createResult()
return $this;
}
/**
* @return null|Statement
*/
public function getStatementPrototype()
{
return $this->statementPrototype;
}
/**
* Register result prototype
*
* @param Result $resultPrototype
* @return self Provides a fluent interface
*/
public function registerResultPrototype(Result $resultPrototype)
{
$this->resultPrototype = $resultPrototype;
return $this;
}
/**
* @return null|Result
*/
public function getResultPrototype()
{
return $this->resultPrototype;
}
/**
* Add feature
*
* @param string $name
* @param AbstractFeature $feature
* @return self Provides a fluent interface
*/
public function addFeature($name, $feature)
{
if ($feature instanceof AbstractFeature) {
$name = $feature->getName(); // overwrite the name, just in case
$feature->setDriver($this);
}
$this->features[$name] = $feature;
return $this;
}
/**
* Setup the default features for Pdo
*
* @return self Provides a fluent interface
*/
public function setupDefaultFeatures()
{
$this->addFeature(null, new Feature\RowCounter());
return $this;
}
/**
* Get feature
*
* @param string $name
* @return AbstractFeature|false
*/
public function getFeature($name)
{
if (isset($this->features[$name])) {
return $this->features[$name];
}
return false;
}
/**
* Get database platform name
*
* @param string $nameFormat
* @return string
*/
public function getDatabasePlatformName($nameFormat = self::NAME_FORMAT_CAMELCASE)
{
return 'Oracle';
}
/**
* Check environment
*/
public function checkEnvironment()
{
if (! extension_loaded('oci8')) {
throw new Exception\RuntimeException(
'The Oci8 extension is required for this adapter but the extension is not loaded'
);
}
}
/**
* @return Connection
*/
public function getConnection()
{
return $this->connection;
}
/**
* @param string $sqlOrResource
* @return Statement
*/
public function createStatement($sqlOrResource = null)
{
$statement = clone $this->statementPrototype;
if (is_resource($sqlOrResource) && get_resource_type($sqlOrResource) == 'oci8 statement') {
$statement->setResource($sqlOrResource);
} else {
if (is_string($sqlOrResource)) {
$statement->setSql($sqlOrResource);
} elseif ($sqlOrResource !== null) {
throw new Exception\InvalidArgumentException(
'Oci8 only accepts an SQL string or an oci8 resource in ' . __FUNCTION__
);
}
if (! $this->connection->isConnected()) {
$this->connection->connect();
}
$statement->initialize($this->connection->getResource());
}
return $statement;
}
/**
* @param resource $resource
* @param null $context
* @return Result
*/
public function createResult($resource, $context = null)
{
$result = clone $this->resultPrototype;
$rowCount = null;
// special feature, oracle Oci counter
if ($context && ($rowCounter = $this->getFeature('RowCounter')) && oci_num_fields($resource) > 0) {
$rowCount = $rowCounter->getRowCountClosure($context);
}
$result->initialize($resource, null, $rowCount);
return $result;
}
/**
* @return string
*/
public function getPrepareType()
{
return self::PARAMETERIZATION_NAMED;
}
/**
* @param string $name
* @param mixed $type
* @return string
*/
public function formatParameterName($name, $type = null)
{
return ':' . $name;
}
/**
* @return mixed
*/
public function getLastGeneratedValue()
{
return $this->getConnection()->getLastGeneratedValue();
}
}

View File

@ -1,230 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Oci8;
use Iterator;
use Laminas\Db\Adapter\Driver\ResultInterface;
use Laminas\Db\Adapter\Exception;
class Result implements Iterator, ResultInterface
{
/**
* @var resource
*/
protected $resource = null;
/**
* @var null|int
*/
protected $rowCount = null;
/**
* Cursor position
* @var int
*/
protected $position = 0;
/**
* Number of known rows
* @var int
*/
protected $numberOfRows = -1;
/**
* Is the current() operation already complete for this pointer position?
* @var bool
*/
protected $currentComplete = false;
/**
* @var bool|array
*/
protected $currentData = false;
/**
*
* @var array
*/
protected $statementBindValues = ['keys' => null, 'values' => []];
/**
* @var mixed
*/
protected $generatedValue = null;
/**
* Initialize
* @param resource $resource
* @param null|int $generatedValue
* @param null|int $rowCount
* @return self Provides a fluent interface
*/
public function initialize($resource, $generatedValue = null, $rowCount = null)
{
if (! is_resource($resource) && get_resource_type($resource) !== 'oci8 statement') {
throw new Exception\InvalidArgumentException('Invalid resource provided.');
}
$this->resource = $resource;
$this->generatedValue = $generatedValue;
$this->rowCount = $rowCount;
return $this;
}
/**
* Force buffering at driver level
*
* Oracle does not support this, to my knowledge (@ralphschindler)
*
* @throws Exception\RuntimeException
*/
public function buffer()
{
return;
}
/**
* Is the result buffered?
*
* @return bool
*/
public function isBuffered()
{
return false;
}
/**
* Return the resource
* @return mixed
*/
public function getResource()
{
return $this->resource;
}
/**
* Is query result?
*
* @return bool
*/
public function isQueryResult()
{
return (oci_num_fields($this->resource) > 0);
}
/**
* Get affected rows
* @return int
*/
public function getAffectedRows()
{
return oci_num_rows($this->resource);
}
/**
* Current
* @return mixed
*/
public function current()
{
if ($this->currentComplete == false) {
if ($this->loadData() === false) {
return false;
}
}
return $this->currentData;
}
/**
* Load from oci8 result
*
* @return bool
*/
protected function loadData()
{
$this->currentComplete = true;
$this->currentData = oci_fetch_assoc($this->resource);
if ($this->currentData !== false) {
$this->position++;
return true;
}
return false;
}
/**
* Next
*/
public function next()
{
return $this->loadData();
}
/**
* Key
* @return mixed
*/
public function key()
{
return $this->position;
}
/**
* Rewind
*/
public function rewind()
{
if ($this->position > 0) {
throw new Exception\RuntimeException('Oci8 results cannot be rewound for multiple iterations');
}
}
/**
* Valid
* @return bool
*/
public function valid()
{
if ($this->currentComplete) {
return ($this->currentData !== false);
}
return $this->loadData();
}
/**
* Count
* @return null|int
*/
public function count()
{
if (is_int($this->rowCount)) {
return $this->rowCount;
}
if (is_callable($this->rowCount)) {
$this->rowCount = (int) call_user_func($this->rowCount);
return $this->rowCount;
}
return;
}
/**
* @return int
*/
public function getFieldCount()
{
return oci_num_fields($this->resource);
}
/**
* @return null
*/
public function getGeneratedValue()
{
// @todo OCI8 generated value in Driver Result
return;
}
}

View File

@ -1,326 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Oci8;
use Laminas\Db\Adapter\Driver\StatementInterface;
use Laminas\Db\Adapter\Exception;
use Laminas\Db\Adapter\ParameterContainer;
use Laminas\Db\Adapter\Profiler;
class Statement implements StatementInterface, Profiler\ProfilerAwareInterface
{
/**
* @var resource
*/
protected $oci8 = null;
/**
* @var Oci8
*/
protected $driver = null;
/**
* @var Profiler\ProfilerInterface
*/
protected $profiler = null;
/**
* @var string
*/
protected $sql = '';
/**
* Parameter container
*
* @var ParameterContainer
*/
protected $parameterContainer = null;
/**
* @var resource
*/
protected $resource = null;
/**
* Is prepared
*
* @var bool
*/
protected $isPrepared = false;
/**
* @var bool
*/
protected $bufferResults = false;
/**
* Set driver
*
* @param Oci8 $driver
* @return self Provides a fluent interface
*/
public function setDriver($driver)
{
$this->driver = $driver;
return $this;
}
/**
* @param Profiler\ProfilerInterface $profiler
* @return self Provides a fluent interface
*/
public function setProfiler(Profiler\ProfilerInterface $profiler)
{
$this->profiler = $profiler;
return $this;
}
/**
* @return null|Profiler\ProfilerInterface
*/
public function getProfiler()
{
return $this->profiler;
}
/**
* Initialize
*
* @param resource $oci8
* @return self Provides a fluent interface
*/
public function initialize($oci8)
{
$this->oci8 = $oci8;
return $this;
}
/**
* Set sql
*
* @param string $sql
* @return self Provides a fluent interface
*/
public function setSql($sql)
{
$this->sql = $sql;
return $this;
}
/**
* Set Parameter container
*
* @param ParameterContainer $parameterContainer
* @return self Provides a fluent interface
*/
public function setParameterContainer(ParameterContainer $parameterContainer)
{
$this->parameterContainer = $parameterContainer;
return $this;
}
/**
* Get resource
*
* @return mixed
*/
public function getResource()
{
return $this->resource;
}
/**
* Set resource
*
* @param resource $oci8Statement
* @return self Provides a fluent interface
*/
public function setResource($oci8Statement)
{
$type = oci_statement_type($oci8Statement);
if (false === $type || 'UNKNOWN' == $type) {
throw new Exception\InvalidArgumentException(sprintf(
'Invalid statement provided to %s',
__METHOD__
));
}
$this->resource = $oci8Statement;
$this->isPrepared = true;
return $this;
}
/**
* Get sql
*
* @return string
*/
public function getSql()
{
return $this->sql;
}
/**
* @return ParameterContainer
*/
public function getParameterContainer()
{
return $this->parameterContainer;
}
/**
* @return bool
*/
public function isPrepared()
{
return $this->isPrepared;
}
/**
* @param string $sql
* @return self Provides a fluent interface
*/
public function prepare($sql = null)
{
if ($this->isPrepared) {
throw new Exception\RuntimeException('This statement has already been prepared');
}
$sql = ($sql) ?: $this->sql;
// get oci8 statement resource
$this->resource = oci_parse($this->oci8, $sql);
if (! $this->resource) {
$e = oci_error($this->oci8);
throw new Exception\InvalidQueryException(
'Statement couldn\'t be produced with sql: ' . $sql,
null,
new Exception\ErrorException($e['message'], $e['code'])
);
}
$this->isPrepared = true;
return $this;
}
/**
* Execute
*
* @param null|array|ParameterContainer $parameters
* @return mixed
*/
public function execute($parameters = null)
{
if (! $this->isPrepared) {
$this->prepare();
}
/** START Standard ParameterContainer Merging Block */
if (! $this->parameterContainer instanceof ParameterContainer) {
if ($parameters instanceof ParameterContainer) {
$this->parameterContainer = $parameters;
$parameters = null;
} else {
$this->parameterContainer = new ParameterContainer();
}
}
if (is_array($parameters)) {
$this->parameterContainer->setFromArray($parameters);
}
if ($this->parameterContainer->count() > 0) {
$this->bindParametersFromContainer();
}
/** END Standard ParameterContainer Merging Block */
if ($this->profiler) {
$this->profiler->profilerStart($this);
}
if ($this->driver->getConnection()->inTransaction()) {
$ret = @oci_execute($this->resource, OCI_NO_AUTO_COMMIT);
} else {
$ret = @oci_execute($this->resource, OCI_COMMIT_ON_SUCCESS);
}
if ($this->profiler) {
$this->profiler->profilerFinish();
}
if ($ret === false) {
$e = oci_error($this->resource);
throw new Exception\RuntimeException($e['message'], $e['code']);
}
$result = $this->driver->createResult($this->resource, $this);
return $result;
}
/**
* Bind parameters from container
*/
protected function bindParametersFromContainer()
{
$parameters = $this->parameterContainer->getNamedArray();
foreach ($parameters as $name => &$value) {
if ($this->parameterContainer->offsetHasErrata($name)) {
switch ($this->parameterContainer->offsetGetErrata($name)) {
case ParameterContainer::TYPE_NULL:
$type = null;
$value = null;
break;
case ParameterContainer::TYPE_DOUBLE:
case ParameterContainer::TYPE_INTEGER:
$type = SQLT_INT;
if (is_string($value)) {
$value = (int) $value;
}
break;
case ParameterContainer::TYPE_BINARY:
$type = SQLT_BIN;
break;
case ParameterContainer::TYPE_LOB:
$type = OCI_B_CLOB;
$clob = oci_new_descriptor($this->driver->getConnection()->getResource(), OCI_DTYPE_LOB);
$clob->writetemporary($value, OCI_TEMP_CLOB);
$value = $clob;
break;
case ParameterContainer::TYPE_STRING:
default:
$type = SQLT_CHR;
break;
}
} else {
$type = SQLT_CHR;
}
$maxLength = -1;
if ($this->parameterContainer->offsetHasMaxLength($name)) {
$maxLength = $this->parameterContainer->offsetGetMaxLength($name);
}
oci_bind_by_name($this->resource, $name, $value, $maxLength, $type);
}
}
/**
* Perform a deep clone
*/
public function __clone()
{
$this->isPrepared = false;
$this->parametersBound = false;
$this->resource = null;
if ($this->parameterContainer) {
$this->parameterContainer = clone $this->parameterContainer;
}
}
}

View File

@ -1,431 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Pdo;
use Laminas\Db\Adapter\Driver\AbstractConnection;
use Laminas\Db\Adapter\Exception;
class Connection extends AbstractConnection
{
/**
* @var Pdo
*/
protected $driver = null;
/**
* @var \PDO
*/
protected $resource = null;
/**
* @var string
*/
protected $dsn = null;
/**
* Constructor
*
* @param array|\PDO|null $connectionParameters
* @throws Exception\InvalidArgumentException
*/
public function __construct($connectionParameters = null)
{
if (is_array($connectionParameters)) {
$this->setConnectionParameters($connectionParameters);
} elseif ($connectionParameters instanceof \PDO) {
$this->setResource($connectionParameters);
} elseif (null !== $connectionParameters) {
throw new Exception\InvalidArgumentException(
'$connection must be an array of parameters, a PDO object or null'
);
}
}
/**
* Set driver
*
* @param Pdo $driver
* @return self Provides a fluent interface
*/
public function setDriver(Pdo $driver)
{
$this->driver = $driver;
return $this;
}
/**
* {@inheritDoc}
*/
public function setConnectionParameters(array $connectionParameters)
{
$this->connectionParameters = $connectionParameters;
if (isset($connectionParameters['dsn'])) {
$this->driverName = substr(
$connectionParameters['dsn'],
0,
strpos($connectionParameters['dsn'], ':')
);
} elseif (isset($connectionParameters['pdodriver'])) {
$this->driverName = strtolower($connectionParameters['pdodriver']);
} elseif (isset($connectionParameters['driver'])) {
$this->driverName = strtolower(substr(
str_replace(['-', '_', ' '], '', $connectionParameters['driver']),
3
));
}
}
/**
* Get the dsn string for this connection
* @throws \Laminas\Db\Adapter\Exception\RunTimeException
* @return string
*/
public function getDsn()
{
if (! $this->dsn) {
throw new Exception\RuntimeException(
'The DSN has not been set or constructed from parameters in connect() for this Connection'
);
}
return $this->dsn;
}
/**
* {@inheritDoc}
*/
public function getCurrentSchema()
{
if (! $this->isConnected()) {
$this->connect();
}
switch ($this->driverName) {
case 'mysql':
$sql = 'SELECT DATABASE()';
break;
case 'sqlite':
return 'main';
case 'sqlsrv':
case 'dblib':
$sql = 'SELECT SCHEMA_NAME()';
break;
case 'pgsql':
default:
$sql = 'SELECT CURRENT_SCHEMA';
break;
}
/** @var $result \PDOStatement */
$result = $this->resource->query($sql);
if ($result instanceof \PDOStatement) {
return $result->fetchColumn();
}
return false;
}
/**
* Set resource
*
* @param \PDO $resource
* @return self Provides a fluent interface
*/
public function setResource(\PDO $resource)
{
$this->resource = $resource;
$this->driverName = strtolower($this->resource->getAttribute(\PDO::ATTR_DRIVER_NAME));
return $this;
}
/**
* {@inheritDoc}
*
* @throws Exception\InvalidConnectionParametersException
* @throws Exception\RuntimeException
*/
public function connect()
{
if ($this->resource) {
return $this;
}
$dsn = $username = $password = $hostname = $database = null;
$options = [];
foreach ($this->connectionParameters as $key => $value) {
switch (strtolower($key)) {
case 'dsn':
$dsn = $value;
break;
case 'driver':
$value = strtolower((string) $value);
if (strpos($value, 'pdo') === 0) {
$pdoDriver = str_replace(['-', '_', ' '], '', $value);
$pdoDriver = substr($pdoDriver, 3) ?: '';
}
break;
case 'pdodriver':
$pdoDriver = (string) $value;
break;
case 'user':
case 'username':
$username = (string) $value;
break;
case 'pass':
case 'password':
$password = (string) $value;
break;
case 'host':
case 'hostname':
$hostname = (string) $value;
break;
case 'port':
$port = (int) $value;
break;
case 'database':
case 'dbname':
$database = (string) $value;
break;
case 'charset':
$charset = (string) $value;
break;
case 'unix_socket':
$unix_socket = (string) $value;
break;
case 'version':
$version = (string) $value;
break;
case 'driver_options':
case 'options':
$value = (array) $value;
$options = array_diff_key($options, $value) + $value;
break;
default:
$options[$key] = $value;
break;
}
}
if (isset($hostname) && isset($unix_socket)) {
throw new Exception\InvalidConnectionParametersException(
'Ambiguous connection parameters, both hostname and unix_socket parameters were set',
$this->connectionParameters
);
}
if (! isset($dsn) && isset($pdoDriver)) {
$dsn = [];
switch ($pdoDriver) {
case 'sqlite':
$dsn[] = $database;
break;
case 'sqlsrv':
if (isset($database)) {
$dsn[] = "database={$database}";
}
if (isset($hostname)) {
$dsn[] = "server={$hostname}";
}
break;
default:
if (isset($database)) {
$dsn[] = "dbname={$database}";
}
if (isset($hostname)) {
$dsn[] = "host={$hostname}";
}
if (isset($port)) {
$dsn[] = "port={$port}";
}
if (isset($charset) && $pdoDriver != 'pgsql') {
$dsn[] = "charset={$charset}";
}
if (isset($unix_socket)) {
$dsn[] = "unix_socket={$unix_socket}";
}
if (isset($version)) {
$dsn[] = "version={$version}";
}
break;
}
$dsn = $pdoDriver . ':' . implode(';', $dsn);
} elseif (! isset($dsn)) {
throw new Exception\InvalidConnectionParametersException(
'A dsn was not provided or could not be constructed from your parameters',
$this->connectionParameters
);
}
$this->dsn = $dsn;
try {
$this->resource = new \PDO($dsn, $username, $password, $options);
$this->resource->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
if (isset($charset) && $pdoDriver == 'pgsql') {
$this->resource->exec('SET NAMES ' . $this->resource->quote($charset));
}
$this->driverName = strtolower($this->resource->getAttribute(\PDO::ATTR_DRIVER_NAME));
} catch (\PDOException $e) {
$code = $e->getCode();
if (! is_long($code)) {
$code = null;
}
throw new Exception\RuntimeException('Connect Error: ' . $e->getMessage(), $code, $e);
}
return $this;
}
/**
* {@inheritDoc}
*/
public function isConnected()
{
return ($this->resource instanceof \PDO);
}
/**
* {@inheritDoc}
*/
public function beginTransaction()
{
if (! $this->isConnected()) {
$this->connect();
}
if (0 === $this->nestedTransactionsCount) {
$this->resource->beginTransaction();
$this->inTransaction = true;
}
$this->nestedTransactionsCount ++;
return $this;
}
/**
* {@inheritDoc}
*/
public function commit()
{
if (! $this->isConnected()) {
$this->connect();
}
if ($this->inTransaction) {
$this->nestedTransactionsCount -= 1;
}
/*
* This shouldn't check for being in a transaction since
* after issuing a SET autocommit=0; we have to commit too.
*/
if (0 === $this->nestedTransactionsCount) {
$this->resource->commit();
$this->inTransaction = false;
}
return $this;
}
/**
* {@inheritDoc}
*
* @throws Exception\RuntimeException
*/
public function rollback()
{
if (! $this->isConnected()) {
throw new Exception\RuntimeException('Must be connected before you can rollback');
}
if (! $this->inTransaction()) {
throw new Exception\RuntimeException('Must call beginTransaction() before you can rollback');
}
$this->resource->rollBack();
$this->inTransaction = false;
$this->nestedTransactionsCount = 0;
return $this;
}
/**
* {@inheritDoc}
*
* @throws Exception\InvalidQueryException
*/
public function execute($sql)
{
if (! $this->isConnected()) {
$this->connect();
}
if ($this->profiler) {
$this->profiler->profilerStart($sql);
}
$resultResource = $this->resource->query($sql);
if ($this->profiler) {
$this->profiler->profilerFinish($sql);
}
if ($resultResource === false) {
$errorInfo = $this->resource->errorInfo();
throw new Exception\InvalidQueryException($errorInfo[2]);
}
$result = $this->driver->createResult($resultResource, $sql);
return $result;
}
/**
* Prepare
*
* @param string $sql
* @return Statement
*/
public function prepare($sql)
{
if (! $this->isConnected()) {
$this->connect();
}
$statement = $this->driver->createStatement($sql);
return $statement;
}
/**
* {@inheritDoc}
*
* @param string $name
* @return string|null|false
*/
public function getLastGeneratedValue($name = null)
{
if ($name === null
&& ($this->driverName == 'pgsql' || $this->driverName == 'firebird')) {
return;
}
try {
return $this->resource->lastInsertId($name);
} catch (\Exception $e) {
// do nothing
}
return false;
}
}

View File

@ -1,75 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Pdo\Feature;
use Laminas\Db\Adapter\Driver\Feature\AbstractFeature;
use Laminas\Db\Adapter\Driver\Pdo;
/**
* OracleRowCounter
*/
class OracleRowCounter extends AbstractFeature
{
/**
* @return string
*/
public function getName()
{
return 'OracleRowCounter';
}
/**
* @param \Laminas\Db\Adapter\Driver\Pdo\Statement $statement
* @return int
*/
public function getCountForStatement(Pdo\Statement $statement)
{
$countStmt = clone $statement;
$sql = $statement->getSql();
if ($sql == '' || stripos($sql, 'select') === false) {
return;
}
$countSql = 'SELECT COUNT(*) as "count" FROM (' . $sql . ')';
$countStmt->prepare($countSql);
$result = $countStmt->execute();
$countRow = $result->getResource()->fetch(\PDO::FETCH_ASSOC);
unset($statement, $result);
return $countRow['count'];
}
/**
* @param $sql
* @return null|int
*/
public function getCountForSql($sql)
{
if (stripos($sql, 'select') === false) {
return;
}
$countSql = 'SELECT COUNT(*) as count FROM (' . $sql . ')';
/** @var $pdo \PDO */
$pdo = $this->driver->getConnection()->getResource();
$result = $pdo->query($countSql);
$countRow = $result->fetch(\PDO::FETCH_ASSOC);
return $countRow['count'];
}
/**
* @param $context
* @return \Closure
*/
public function getRowCountClosure($context)
{
return function () use ($context) {
return ($context instanceof Pdo\Statement)
? $this->getCountForStatement($context)
: $this->getCountForSql($context);
};
}
}

View File

@ -1,75 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Pdo\Feature;
use Laminas\Db\Adapter\Driver\Feature\AbstractFeature;
use Laminas\Db\Adapter\Driver\Pdo;
/**
* SqliteRowCounter
*/
class SqliteRowCounter extends AbstractFeature
{
/**
* @return string
*/
public function getName()
{
return 'SqliteRowCounter';
}
/**
* @param \Laminas\Db\Adapter\Driver\Pdo\Statement $statement
* @return int
*/
public function getCountForStatement(Pdo\Statement $statement)
{
$countStmt = clone $statement;
$sql = $statement->getSql();
if ($sql == '' || stripos($sql, 'select') === false) {
return;
}
$countSql = 'SELECT COUNT(*) as "count" FROM (' . $sql . ')';
$countStmt->prepare($countSql);
$result = $countStmt->execute();
$countRow = $result->getResource()->fetch(\PDO::FETCH_ASSOC);
unset($statement, $result);
return $countRow['count'];
}
/**
* @param $sql
* @return null|int
*/
public function getCountForSql($sql)
{
if (stripos($sql, 'select') === false) {
return;
}
$countSql = 'SELECT COUNT(*) as count FROM (' . $sql . ')';
/** @var $pdo \PDO */
$pdo = $this->driver->getConnection()->getResource();
$result = $pdo->query($countSql);
$countRow = $result->fetch(\PDO::FETCH_ASSOC);
return $countRow['count'];
}
/**
* @param $context
* @return \Closure
*/
public function getRowCountClosure($context)
{
return function () use ($context) {
return ($context instanceof Pdo\Statement)
? $this->getCountForStatement($context)
: $this->getCountForSql($context);
};
}
}

View File

@ -1,330 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Pdo;
use Laminas\Db\Adapter\Driver\DriverInterface;
use Laminas\Db\Adapter\Driver\Feature\AbstractFeature;
use Laminas\Db\Adapter\Driver\Feature\DriverFeatureInterface;
use Laminas\Db\Adapter\Exception;
use Laminas\Db\Adapter\Profiler;
use PDOStatement;
class Pdo implements DriverInterface, DriverFeatureInterface, Profiler\ProfilerAwareInterface
{
/**
* @const
*/
const FEATURES_DEFAULT = 'default';
/**
* @var Connection
*/
protected $connection = null;
/**
* @var Statement
*/
protected $statementPrototype = null;
/**
* @var Result
*/
protected $resultPrototype = null;
/**
* @var array
*/
protected $features = [];
/**
* @param array|Connection|\PDO $connection
* @param null|Statement $statementPrototype
* @param null|Result $resultPrototype
* @param string $features
*/
public function __construct(
$connection,
Statement $statementPrototype = null,
Result $resultPrototype = null,
$features = self::FEATURES_DEFAULT
) {
if (! $connection instanceof Connection) {
$connection = new Connection($connection);
}
$this->registerConnection($connection);
$this->registerStatementPrototype(($statementPrototype) ?: new Statement());
$this->registerResultPrototype(($resultPrototype) ?: new Result());
if (is_array($features)) {
foreach ($features as $name => $feature) {
$this->addFeature($name, $feature);
}
} elseif ($features instanceof AbstractFeature) {
$this->addFeature($features->getName(), $features);
} elseif ($features === self::FEATURES_DEFAULT) {
$this->setupDefaultFeatures();
}
}
/**
* @param Profiler\ProfilerInterface $profiler
* @return self Provides a fluent interface
*/
public function setProfiler(Profiler\ProfilerInterface $profiler)
{
$this->profiler = $profiler;
if ($this->connection instanceof Profiler\ProfilerAwareInterface) {
$this->connection->setProfiler($profiler);
}
if ($this->statementPrototype instanceof Profiler\ProfilerAwareInterface) {
$this->statementPrototype->setProfiler($profiler);
}
return $this;
}
/**
* @return null|Profiler\ProfilerInterface
*/
public function getProfiler()
{
return $this->profiler;
}
/**
* Register connection
*
* @param Connection $connection
* @return self Provides a fluent interface
*/
public function registerConnection(Connection $connection)
{
$this->connection = $connection;
$this->connection->setDriver($this);
return $this;
}
/**
* Register statement prototype
*
* @param Statement $statementPrototype
*/
public function registerStatementPrototype(Statement $statementPrototype)
{
$this->statementPrototype = $statementPrototype;
$this->statementPrototype->setDriver($this);
}
/**
* Register result prototype
*
* @param Result $resultPrototype
*/
public function registerResultPrototype(Result $resultPrototype)
{
$this->resultPrototype = $resultPrototype;
}
/**
* Add feature
*
* @param string $name
* @param AbstractFeature $feature
* @return self Provides a fluent interface
*/
public function addFeature($name, $feature)
{
if ($feature instanceof AbstractFeature) {
$name = $feature->getName(); // overwrite the name, just in case
$feature->setDriver($this);
}
$this->features[$name] = $feature;
return $this;
}
/**
* Setup the default features for Pdo
*
* @return self Provides a fluent interface
*/
public function setupDefaultFeatures()
{
$driverName = $this->connection->getDriverName();
if ($driverName == 'sqlite') {
$this->addFeature(null, new Feature\SqliteRowCounter);
} elseif ($driverName == 'oci') {
$this->addFeature(null, new Feature\OracleRowCounter);
}
return $this;
}
/**
* Get feature
*
* @param $name
* @return AbstractFeature|false
*/
public function getFeature($name)
{
if (isset($this->features[$name])) {
return $this->features[$name];
}
return false;
}
/**
* Get database platform name
*
* @param string $nameFormat
* @return string
*/
public function getDatabasePlatformName($nameFormat = self::NAME_FORMAT_CAMELCASE)
{
$name = $this->getConnection()->getDriverName();
if ($nameFormat == self::NAME_FORMAT_CAMELCASE) {
switch ($name) {
case 'pgsql':
return 'Postgresql';
case 'oci':
return 'Oracle';
case 'dblib':
case 'sqlsrv':
return 'SqlServer';
default:
return ucfirst($name);
}
} else {
switch ($name) {
case 'sqlite':
return 'SQLite';
case 'mysql':
return 'MySQL';
case 'pgsql':
return 'PostgreSQL';
case 'oci':
return 'Oracle';
case 'dblib':
case 'sqlsrv':
return 'SQLServer';
default:
return ucfirst($name);
}
}
}
/**
* Check environment
*/
public function checkEnvironment()
{
if (! extension_loaded('PDO')) {
throw new Exception\RuntimeException(
'The PDO extension is required for this adapter but the extension is not loaded'
);
}
}
/**
* @return Connection
*/
public function getConnection()
{
return $this->connection;
}
/**
* @param string|PDOStatement $sqlOrResource
* @return Statement
*/
public function createStatement($sqlOrResource = null)
{
$statement = clone $this->statementPrototype;
if ($sqlOrResource instanceof PDOStatement) {
$statement->setResource($sqlOrResource);
} else {
if (is_string($sqlOrResource)) {
$statement->setSql($sqlOrResource);
}
if (! $this->connection->isConnected()) {
$this->connection->connect();
}
$statement->initialize($this->connection->getResource());
}
return $statement;
}
/**
* @param resource $resource
* @param mixed $context
* @return Result
*/
public function createResult($resource, $context = null)
{
$result = clone $this->resultPrototype;
$rowCount = null;
// special feature, sqlite PDO counter
if ($this->connection->getDriverName() == 'sqlite'
&& ($sqliteRowCounter = $this->getFeature('SqliteRowCounter'))
&& $resource->columnCount() > 0) {
$rowCount = $sqliteRowCounter->getRowCountClosure($context);
}
// special feature, oracle PDO counter
if ($this->connection->getDriverName() == 'oci'
&& ($oracleRowCounter = $this->getFeature('OracleRowCounter'))
&& $resource->columnCount() > 0) {
$rowCount = $oracleRowCounter->getRowCountClosure($context);
}
$result->initialize($resource, $this->connection->getLastGeneratedValue(), $rowCount);
return $result;
}
/**
* @return string
*/
public function getPrepareType()
{
return self::PARAMETERIZATION_NAMED;
}
/**
* @param string $name
* @param string|null $type
* @return string
*/
public function formatParameterName($name, $type = null)
{
if ($type === null && ! is_numeric($name) || $type == self::PARAMETERIZATION_NAMED) {
$name = ltrim($name, ':');
// @see https://bugs.php.net/bug.php?id=43130
if (preg_match('/[^a-zA-Z0-9_]/', $name)) {
throw new Exception\RuntimeException(sprintf(
'The PDO param %s contains invalid characters.'
. ' Only alphabetic characters, digits, and underscores (_)'
. ' are allowed.',
$name
));
}
return ':' . $name;
}
return '?';
}
/**
* @param string|null $name
* @return string|null|false
*/
public function getLastGeneratedValue($name = null)
{
return $this->connection->getLastGeneratedValue($name);
}
}

View File

@ -1,277 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Pdo;
use Iterator;
use Laminas\Db\Adapter\Driver\ResultInterface;
use Laminas\Db\Adapter\Exception;
use PDOStatement;
class Result implements Iterator, ResultInterface
{
const STATEMENT_MODE_SCROLLABLE = 'scrollable';
const STATEMENT_MODE_FORWARD = 'forward';
/**
*
* @var string
*/
protected $statementMode = self::STATEMENT_MODE_FORWARD;
/**
* @var int
*/
protected $fetchMode = \PDO::FETCH_ASSOC;
/**
* @var array
* @internal
*/
const VALID_FETCH_MODES = [
\PDO::FETCH_LAZY, // 1
\PDO::FETCH_ASSOC, // 2
\PDO::FETCH_NUM, // 3
\PDO::FETCH_BOTH, // 4
\PDO::FETCH_OBJ, // 5
\PDO::FETCH_BOUND, // 6
// \PDO::FETCH_COLUMN, // 7 (not a valid fetch mode)
\PDO::FETCH_CLASS, // 8
\PDO::FETCH_INTO, // 9
\PDO::FETCH_FUNC, // 10
\PDO::FETCH_NAMED, // 11
\PDO::FETCH_KEY_PAIR, // 12
\PDO::FETCH_PROPS_LATE, // Extra option for \PDO::FETCH_CLASS
// \PDO::FETCH_SERIALIZE, // Seems to have been removed
// \PDO::FETCH_UNIQUE, // Option for fetchAll
\PDO::FETCH_CLASSTYPE, // Extra option for \PDO::FETCH_CLASS
];
/**
* @var PDOStatement
*/
protected $resource = null;
/**
* @var array Result options
*/
protected $options;
/**
* Is the current complete?
* @var bool
*/
protected $currentComplete = false;
/**
* Track current item in recordset
* @var mixed
*/
protected $currentData = null;
/**
* Current position of scrollable statement
* @var int
*/
protected $position = -1;
/**
* @var mixed
*/
protected $generatedValue = null;
/**
* @var null
*/
protected $rowCount = null;
/**
* Initialize
*
* @param PDOStatement $resource
* @param $generatedValue
* @param int $rowCount
* @return self Provides a fluent interface
*/
public function initialize(PDOStatement $resource, $generatedValue, $rowCount = null)
{
$this->resource = $resource;
$this->generatedValue = $generatedValue;
$this->rowCount = $rowCount;
return $this;
}
/**
* @return null
*/
public function buffer()
{
return;
}
/**
* @return bool|null
*/
public function isBuffered()
{
return false;
}
/**
* @param int $fetchMode
* @throws Exception\InvalidArgumentException on invalid fetch mode
*/
public function setFetchMode($fetchMode)
{
if (! in_array($fetchMode, self::VALID_FETCH_MODES, true)) {
throw new Exception\InvalidArgumentException(
'The fetch mode must be one of the PDO::FETCH_* constants.'
);
}
$this->fetchMode = (int) $fetchMode;
}
/**
* @return int
*/
public function getFetchMode()
{
return $this->fetchMode;
}
/**
* Get resource
*
* @return mixed
*/
public function getResource()
{
return $this->resource;
}
/**
* Get the data
* @return mixed
*/
public function current()
{
if ($this->currentComplete) {
return $this->currentData;
}
$this->currentData = $this->resource->fetch($this->fetchMode);
$this->currentComplete = true;
return $this->currentData;
}
/**
* Next
*
* @return mixed
*/
public function next()
{
$this->currentData = $this->resource->fetch($this->fetchMode);
$this->currentComplete = true;
$this->position++;
return $this->currentData;
}
/**
* Key
*
* @return mixed
*/
public function key()
{
return $this->position;
}
/**
* @throws Exception\RuntimeException
* @return void
*/
public function rewind()
{
if ($this->statementMode == self::STATEMENT_MODE_FORWARD && $this->position > 0) {
throw new Exception\RuntimeException(
'This result is a forward only result set, calling rewind() after moving forward is not supported'
);
}
$this->currentData = $this->resource->fetch($this->fetchMode);
$this->currentComplete = true;
$this->position = 0;
}
/**
* Valid
*
* @return bool
*/
public function valid()
{
return ($this->currentData !== false);
}
/**
* Count
*
* @return int
*/
public function count()
{
if (is_int($this->rowCount)) {
return $this->rowCount;
}
if ($this->rowCount instanceof \Closure) {
$this->rowCount = (int) call_user_func($this->rowCount);
} else {
$this->rowCount = (int) $this->resource->rowCount();
}
return $this->rowCount;
}
/**
* @return int
*/
public function getFieldCount()
{
return $this->resource->columnCount();
}
/**
* Is query result
*
* @return bool
*/
public function isQueryResult()
{
return ($this->resource->columnCount() > 0);
}
/**
* Get affected rows
*
* @return int
*/
public function getAffectedRows()
{
return $this->resource->rowCount();
}
/**
* @return mixed|null
*/
public function getGeneratedValue()
{
return $this->generatedValue;
}
}

View File

@ -1,309 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Pdo;
use Laminas\Db\Adapter\Driver\StatementInterface;
use Laminas\Db\Adapter\Exception;
use Laminas\Db\Adapter\ParameterContainer;
use Laminas\Db\Adapter\Profiler;
class Statement implements StatementInterface, Profiler\ProfilerAwareInterface
{
/**
* @var \PDO
*/
protected $pdo = null;
/**
* @var Profiler\ProfilerInterface
*/
protected $profiler = null;
/**
* @var Pdo
*/
protected $driver = null;
/**
*
* @var string
*/
protected $sql = '';
/**
*
* @var bool
*/
protected $isQuery = null;
/**
*
* @var ParameterContainer
*/
protected $parameterContainer = null;
/**
* @var bool
*/
protected $parametersBound = false;
/**
* @var \PDOStatement
*/
protected $resource = null;
/**
*
* @var bool
*/
protected $isPrepared = false;
/**
* Set driver
*
* @param Pdo $driver
* @return self Provides a fluent interface
*/
public function setDriver(Pdo $driver)
{
$this->driver = $driver;
return $this;
}
/**
* @param Profiler\ProfilerInterface $profiler
* @return self Provides a fluent interface
*/
public function setProfiler(Profiler\ProfilerInterface $profiler)
{
$this->profiler = $profiler;
return $this;
}
/**
* @return null|Profiler\ProfilerInterface
*/
public function getProfiler()
{
return $this->profiler;
}
/**
* Initialize
*
* @param \PDO $connectionResource
* @return self Provides a fluent interface
*/
public function initialize(\PDO $connectionResource)
{
$this->pdo = $connectionResource;
return $this;
}
/**
* Set resource
*
* @param \PDOStatement $pdoStatement
* @return self Provides a fluent interface
*/
public function setResource(\PDOStatement $pdoStatement)
{
$this->resource = $pdoStatement;
return $this;
}
/**
* Get resource
*
* @return mixed
*/
public function getResource()
{
return $this->resource;
}
/**
* Set sql
*
* @param string $sql
* @return self Provides a fluent interface
*/
public function setSql($sql)
{
$this->sql = $sql;
return $this;
}
/**
* Get sql
*
* @return string
*/
public function getSql()
{
return $this->sql;
}
/**
* @param ParameterContainer $parameterContainer
* @return self Provides a fluent interface
*/
public function setParameterContainer(ParameterContainer $parameterContainer)
{
$this->parameterContainer = $parameterContainer;
return $this;
}
/**
* @return ParameterContainer
*/
public function getParameterContainer()
{
return $this->parameterContainer;
}
/**
* @param string $sql
* @throws Exception\RuntimeException
*/
public function prepare($sql = null)
{
if ($this->isPrepared) {
throw new Exception\RuntimeException('This statement has been prepared already');
}
if ($sql === null) {
$sql = $this->sql;
}
$this->resource = $this->pdo->prepare($sql);
if ($this->resource === false) {
$error = $this->pdo->errorInfo();
throw new Exception\RuntimeException($error[2]);
}
$this->isPrepared = true;
}
/**
* @return bool
*/
public function isPrepared()
{
return $this->isPrepared;
}
/**
* @param null|array|ParameterContainer $parameters
* @throws Exception\InvalidQueryException
* @return Result
*/
public function execute($parameters = null)
{
if (! $this->isPrepared) {
$this->prepare();
}
/** START Standard ParameterContainer Merging Block */
if (! $this->parameterContainer instanceof ParameterContainer) {
if ($parameters instanceof ParameterContainer) {
$this->parameterContainer = $parameters;
$parameters = null;
} else {
$this->parameterContainer = new ParameterContainer();
}
}
if (is_array($parameters)) {
$this->parameterContainer->setFromArray($parameters);
}
if ($this->parameterContainer->count() > 0) {
$this->bindParametersFromContainer();
}
/** END Standard ParameterContainer Merging Block */
if ($this->profiler) {
$this->profiler->profilerStart($this);
}
try {
$this->resource->execute();
} catch (\PDOException $e) {
if ($this->profiler) {
$this->profiler->profilerFinish();
}
throw new Exception\InvalidQueryException(
'Statement could not be executed (' . implode(' - ', $this->resource->errorInfo()) . ')',
null,
$e
);
}
if ($this->profiler) {
$this->profiler->profilerFinish();
}
$result = $this->driver->createResult($this->resource, $this);
return $result;
}
/**
* Bind parameters from container
*/
protected function bindParametersFromContainer()
{
if ($this->parametersBound) {
return;
}
$parameters = $this->parameterContainer->getNamedArray();
foreach ($parameters as $name => &$value) {
if (is_bool($value)) {
$type = \PDO::PARAM_BOOL;
} elseif (is_int($value)) {
$type = \PDO::PARAM_INT;
} else {
$type = \PDO::PARAM_STR;
}
if ($this->parameterContainer->offsetHasErrata($name)) {
switch ($this->parameterContainer->offsetGetErrata($name)) {
case ParameterContainer::TYPE_INTEGER:
$type = \PDO::PARAM_INT;
break;
case ParameterContainer::TYPE_NULL:
$type = \PDO::PARAM_NULL;
break;
case ParameterContainer::TYPE_LOB:
$type = \PDO::PARAM_LOB;
break;
}
}
// parameter is named or positional, value is reference
$parameter = is_int($name) ? ($name + 1) : $this->driver->formatParameterName($name);
$this->resource->bindParam($parameter, $value, $type);
}
}
/**
* Perform a deep clone
* @return Statement A cloned statement
*/
public function __clone()
{
$this->isPrepared = false;
$this->parametersBound = false;
$this->resource = null;
if ($this->parameterContainer) {
$this->parameterContainer = clone $this->parameterContainer;
}
}
}

View File

@ -1,315 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Pgsql;
use Laminas\Db\Adapter\Driver\AbstractConnection;
use Laminas\Db\Adapter\Exception;
class Connection extends AbstractConnection
{
/**
* @var Pgsql
*/
protected $driver = null;
/**
* @var resource
*/
protected $resource = null;
/**
* @var null|int PostgreSQL connection type
*/
protected $type = null;
/**
* Constructor
*
* @param resource|array|null $connectionInfo
*/
public function __construct($connectionInfo = null)
{
if (is_array($connectionInfo)) {
$this->setConnectionParameters($connectionInfo);
} elseif (is_resource($connectionInfo)) {
$this->setResource($connectionInfo);
}
}
/**
* Set resource
*
* @param resource $resource
* @return self Provides a fluent interface
*/
public function setResource($resource)
{
$this->resource = $resource;
return $this;
}
/**
* Set driver
*
* @param Pgsql $driver
* @return self Provides a fluent interface
*/
public function setDriver(Pgsql $driver)
{
$this->driver = $driver;
return $this;
}
/**
* @param int|null $type
* @return self Provides a fluent interface
*/
public function setType($type)
{
$invalidConectionType = ($type !== PGSQL_CONNECT_FORCE_NEW);
// Compatibility with PHP < 5.6
if ($invalidConectionType && defined('PGSQL_CONNECT_ASYNC')) {
$invalidConectionType = ($type !== PGSQL_CONNECT_ASYNC);
}
if ($invalidConectionType) {
throw new Exception\InvalidArgumentException(
'Connection type is not valid. (See: http://php.net/manual/en/function.pg-connect.php)'
);
}
$this->type = $type;
return $this;
}
/**
* {@inheritDoc}
*
* @return null|string
*/
public function getCurrentSchema()
{
if (! $this->isConnected()) {
$this->connect();
}
$result = pg_query($this->resource, 'SELECT CURRENT_SCHEMA AS "currentschema"');
if ($result == false) {
return;
}
return pg_fetch_result($result, 0, 'currentschema');
}
/**
* {@inheritDoc}
*
* @throws Exception\RuntimeException on failure
*/
public function connect()
{
if (is_resource($this->resource)) {
return $this;
}
$connection = $this->getConnectionString();
set_error_handler(function ($number, $string) {
throw new Exception\RuntimeException(
__CLASS__ . '::connect: Unable to connect to database',
null,
new Exception\ErrorException($string, $number)
);
});
try {
$this->resource = pg_connect($connection);
} finally {
restore_error_handler();
}
if ($this->resource === false) {
throw new Exception\RuntimeException(sprintf(
'%s: Unable to connect to database',
__METHOD__
));
}
$p = $this->connectionParameters;
if (! empty($p['charset'])) {
if (-1 === pg_set_client_encoding($this->resource, $p['charset'])) {
throw new Exception\RuntimeException(sprintf(
"%s: Unable to set client encoding '%s'",
__METHOD__,
$p['charset']
));
}
}
return $this;
}
/**
* {@inheritDoc}
*/
public function isConnected()
{
return (is_resource($this->resource));
}
/**
* {@inheritDoc}
*/
public function disconnect()
{
pg_close($this->resource);
return $this;
}
/**
* {@inheritDoc}
*/
public function beginTransaction()
{
if ($this->inTransaction()) {
throw new Exception\RuntimeException('Nested transactions are not supported');
}
if (! $this->isConnected()) {
$this->connect();
}
pg_query($this->resource, 'BEGIN');
$this->inTransaction = true;
return $this;
}
/**
* {@inheritDoc}
*/
public function commit()
{
if (! $this->isConnected()) {
$this->connect();
}
if (! $this->inTransaction()) {
return; // We ignore attempts to commit non-existing transaction
}
pg_query($this->resource, 'COMMIT');
$this->inTransaction = false;
return $this;
}
/**
* {@inheritDoc}
*/
public function rollback()
{
if (! $this->isConnected()) {
throw new Exception\RuntimeException('Must be connected before you can rollback');
}
if (! $this->inTransaction()) {
throw new Exception\RuntimeException('Must call beginTransaction() before you can rollback');
}
pg_query($this->resource, 'ROLLBACK');
$this->inTransaction = false;
return $this;
}
/**
* {@inheritDoc}
*
* @throws Exception\InvalidQueryException
* @return resource|\Laminas\Db\ResultSet\ResultSetInterface
*/
public function execute($sql)
{
if (! $this->isConnected()) {
$this->connect();
}
if ($this->profiler) {
$this->profiler->profilerStart($sql);
}
$resultResource = pg_query($this->resource, $sql);
if ($this->profiler) {
$this->profiler->profilerFinish($sql);
}
// if the returnValue is something other than a pg result resource, bypass wrapping it
if ($resultResource === false) {
throw new Exception\InvalidQueryException(pg_errormessage());
}
$resultPrototype = $this->driver->createResult(($resultResource === true) ? $this->resource : $resultResource);
return $resultPrototype;
}
/**
* {@inheritDoc}
*
* @return string
*/
public function getLastGeneratedValue($name = null)
{
if ($name === null) {
return;
}
$result = pg_query(
$this->resource,
'SELECT CURRVAL(\'' . str_replace('\'', '\\\'', $name) . '\') as "currval"'
);
return pg_fetch_result($result, 0, 'currval');
}
/**
* Get Connection String
*
* @return string
*/
private function getConnectionString()
{
// localize
$p = $this->connectionParameters;
// given a list of key names, test for existence in $p
$findParameterValue = function (array $names) use ($p) {
foreach ($names as $name) {
if (isset($p[$name])) {
return $p[$name];
}
}
return;
};
$connectionParameters = [
'host' => $findParameterValue(['hostname', 'host']),
'user' => $findParameterValue(['username', 'user']),
'password' => $findParameterValue(['password', 'passwd', 'pw']),
'dbname' => $findParameterValue(['database', 'dbname', 'db', 'schema']),
'port' => isset($p['port']) ? (int) $p['port'] : null,
'socket' => isset($p['socket']) ? $p['socket'] : null,
];
return urldecode(http_build_query(array_filter($connectionParameters), null, ' '));
}
}

View File

@ -1,236 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Pgsql;
use Laminas\Db\Adapter\Driver\DriverInterface;
use Laminas\Db\Adapter\Exception;
use Laminas\Db\Adapter\Profiler;
class Pgsql implements DriverInterface, Profiler\ProfilerAwareInterface
{
/**
* @var Connection
*/
protected $connection = null;
/**
* @var Statement
*/
protected $statementPrototype = null;
/**
* @var Result
*/
protected $resultPrototype = null;
/**
* @var null|Profiler\ProfilerInterface
*/
protected $profiler = null;
/**
* @var array
*/
protected $options = [
'buffer_results' => false
];
/**
* Constructor
*
* @param array|Connection|resource $connection
* @param null|Statement $statementPrototype
* @param null|Result $resultPrototype
* @param array $options
*/
public function __construct(
$connection,
Statement $statementPrototype = null,
Result $resultPrototype = null,
$options = null
) {
if (! $connection instanceof Connection) {
$connection = new Connection($connection);
}
$this->registerConnection($connection);
$this->registerStatementPrototype(($statementPrototype) ?: new Statement());
$this->registerResultPrototype(($resultPrototype) ?: new Result());
}
/**
* @param Profiler\ProfilerInterface $profiler
* @return self Provides a fluent interface
*/
public function setProfiler(Profiler\ProfilerInterface $profiler)
{
$this->profiler = $profiler;
if ($this->connection instanceof Profiler\ProfilerAwareInterface) {
$this->connection->setProfiler($profiler);
}
if ($this->statementPrototype instanceof Profiler\ProfilerAwareInterface) {
$this->statementPrototype->setProfiler($profiler);
}
return $this;
}
/**
* @return null|Profiler\ProfilerInterface
*/
public function getProfiler()
{
return $this->profiler;
}
/**
* Register connection
*
* @param Connection $connection
* @return self Provides a fluent interface
*/
public function registerConnection(Connection $connection)
{
$this->connection = $connection;
$this->connection->setDriver($this);
return $this;
}
/**
* Register statement prototype
*
* @param Statement $statement
* @return self Provides a fluent interface
*/
public function registerStatementPrototype(Statement $statement)
{
$this->statementPrototype = $statement;
$this->statementPrototype->setDriver($this); // needs access to driver to createResult()
return $this;
}
/**
* Register result prototype
*
* @param Result $result
* @return self Provides a fluent interface
*/
public function registerResultPrototype(Result $result)
{
$this->resultPrototype = $result;
return $this;
}
/**
* Get database platform name
*
* @param string $nameFormat
* @return string
*/
public function getDatabasePlatformName($nameFormat = self::NAME_FORMAT_CAMELCASE)
{
if ($nameFormat == self::NAME_FORMAT_CAMELCASE) {
return 'Postgresql';
}
return 'PostgreSQL';
}
/**
* Check environment
*
* @throws Exception\RuntimeException
* @return bool
*/
public function checkEnvironment()
{
if (! extension_loaded('pgsql')) {
throw new Exception\RuntimeException(
'The PostgreSQL (pgsql) extension is required for this adapter but the extension is not loaded'
);
}
}
/**
* Get connection
*
* @return Connection
*/
public function getConnection()
{
return $this->connection;
}
/**
* Create statement
*
* @param string|null $sqlOrResource
* @return Statement
*/
public function createStatement($sqlOrResource = null)
{
$statement = clone $this->statementPrototype;
if (is_string($sqlOrResource)) {
$statement->setSql($sqlOrResource);
}
if (! $this->connection->isConnected()) {
$this->connection->connect();
}
$statement->initialize($this->connection->getResource());
return $statement;
}
/**
* Create result
*
* @param resource $resource
* @return Result
*/
public function createResult($resource)
{
$result = clone $this->resultPrototype;
$result->initialize($resource, $this->connection->getLastGeneratedValue());
return $result;
}
/**
* Get prepare Type
*
* @return string
*/
public function getPrepareType()
{
return self::PARAMETERIZATION_POSITIONAL;
}
/**
* Format parameter name
*
* @param string $name
* @param mixed $type
* @return string
*/
public function formatParameterName($name, $type = null)
{
return '$#';
}
/**
* Get last generated value
*
* @param string $name
* @return mixed
*/
public function getLastGeneratedValue($name = null)
{
return $this->connection->getLastGeneratedValue($name);
}
}

View File

@ -1,191 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Pgsql;
use Laminas\Db\Adapter\Driver\ResultInterface;
use Laminas\Db\Adapter\Exception;
class Result implements ResultInterface
{
/**
* @var resource
*/
protected $resource = null;
/**
* @var int
*/
protected $position = 0;
/**
* @var int
*/
protected $count = 0;
/**
* @var null|mixed
*/
protected $generatedValue = null;
/**
* Initialize
*
* @param $resource
* @param $generatedValue
* @return void
* @throws Exception\InvalidArgumentException
*/
public function initialize($resource, $generatedValue)
{
if (! is_resource($resource) || get_resource_type($resource) != 'pgsql result') {
throw new Exception\InvalidArgumentException('Resource not of the correct type.');
}
$this->resource = $resource;
$this->count = pg_num_rows($this->resource);
$this->generatedValue = $generatedValue;
}
/**
* Current
*
* @return array|bool|mixed
*/
public function current()
{
if ($this->count === 0) {
return false;
}
return pg_fetch_assoc($this->resource, $this->position);
}
/**
* Next
*
* @return void
*/
public function next()
{
$this->position++;
}
/**
* Key
*
* @return int|mixed
*/
public function key()
{
return $this->position;
}
/**
* Valid
*
* @return bool
*/
public function valid()
{
return ($this->position < $this->count);
}
/**
* Rewind
*
* @return void
*/
public function rewind()
{
$this->position = 0;
}
/**
* Buffer
*
* @return null
*/
public function buffer()
{
return;
}
/**
* Is buffered
*
* @return false
*/
public function isBuffered()
{
return false;
}
/**
* Is query result
*
* @return bool
*/
public function isQueryResult()
{
return (pg_num_fields($this->resource) > 0);
}
/**
* Get affected rows
*
* @return int
*/
public function getAffectedRows()
{
return pg_affected_rows($this->resource);
}
/**
* Get generated value
*
* @return mixed|null
*/
public function getGeneratedValue()
{
return $this->generatedValue;
}
/**
* Get resource
*/
public function getResource()
{
// TODO: Implement getResource() method.
}
/**
* Count
*
* (PHP 5 &gt;= 5.1.0)<br/>
* Count elements of an object
* @link http://php.net/manual/en/countable.count.php
* @return int The custom count as an integer.
* </p>
* <p>
* The return value is cast to an integer.
*/
public function count()
{
return $this->count;
}
/**
* Get field count
*
* @return int
*/
public function getFieldCount()
{
return pg_num_fields($this->resource);
}
}

View File

@ -1,241 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Pgsql;
use Laminas\Db\Adapter\Driver\StatementInterface;
use Laminas\Db\Adapter\Exception;
use Laminas\Db\Adapter\ParameterContainer;
use Laminas\Db\Adapter\Profiler;
class Statement implements StatementInterface, Profiler\ProfilerAwareInterface
{
/**
* @var int
*/
protected static $statementIndex = 0;
/**
* @var string
*/
protected $statementName = '';
/**
* @var Pgsql
*/
protected $driver = null;
/**
* @var Profiler\ProfilerInterface
*/
protected $profiler = null;
/**
* @var resource
*/
protected $pgsql = null;
/**
* @var resource
*/
protected $resource = null;
/**
* @var string
*/
protected $sql;
/**
* @var ParameterContainer
*/
protected $parameterContainer;
/**
* @param Pgsql $driver
* @return self Provides a fluent interface
*/
public function setDriver(Pgsql $driver)
{
$this->driver = $driver;
return $this;
}
/**
* @param Profiler\ProfilerInterface $profiler
* @return self Provides a fluent interface
*/
public function setProfiler(Profiler\ProfilerInterface $profiler)
{
$this->profiler = $profiler;
return $this;
}
/**
* @return null|Profiler\ProfilerInterface
*/
public function getProfiler()
{
return $this->profiler;
}
/**
* Initialize
*
* @param resource $pgsql
* @return void
* @throws Exception\RuntimeException for invalid or missing postgresql connection
*/
public function initialize($pgsql)
{
if (! is_resource($pgsql) || get_resource_type($pgsql) !== 'pgsql link') {
throw new Exception\RuntimeException(sprintf(
'%s: Invalid or missing postgresql connection; received "%s"',
__METHOD__,
get_resource_type($pgsql)
));
}
$this->pgsql = $pgsql;
}
/**
* Get resource
*
* @return resource
*/
public function getResource()
{
// TODO: Implement getResource() method.
}
/**
* Set sql
*
* @param string $sql
* @return self Provides a fluent interface
*/
public function setSql($sql)
{
$this->sql = $sql;
return $this;
}
/**
* Get sql
*
* @return string
*/
public function getSql()
{
return $this->sql;
}
/**
* Set parameter container
*
* @param ParameterContainer $parameterContainer
* @return self Provides a fluent interface
*/
public function setParameterContainer(ParameterContainer $parameterContainer)
{
$this->parameterContainer = $parameterContainer;
return $this;
}
/**
* Get parameter container
*
* @return ParameterContainer
*/
public function getParameterContainer()
{
return $this->parameterContainer;
}
/**
* Prepare
*
* @param string $sql
*/
public function prepare($sql = null)
{
$sql = ($sql) ?: $this->sql;
$pCount = 1;
$sql = preg_replace_callback(
'#\$\##',
function () use (&$pCount) {
return '$' . $pCount++;
},
$sql
);
$this->sql = $sql;
$this->statementName = 'statement' . ++static::$statementIndex;
$this->resource = pg_prepare($this->pgsql, $this->statementName, $sql);
}
/**
* Is prepared
*
* @return bool
*/
public function isPrepared()
{
return isset($this->resource);
}
/**
* Execute
*
* @param null|array|ParameterContainer $parameters
* @throws Exception\InvalidQueryException
* @return Result
*/
public function execute($parameters = null)
{
if (! $this->isPrepared()) {
$this->prepare();
}
/** START Standard ParameterContainer Merging Block */
if (! $this->parameterContainer instanceof ParameterContainer) {
if ($parameters instanceof ParameterContainer) {
$this->parameterContainer = $parameters;
$parameters = null;
} else {
$this->parameterContainer = new ParameterContainer();
}
}
if (is_array($parameters)) {
$this->parameterContainer->setFromArray($parameters);
}
if ($this->parameterContainer->count() > 0) {
$parameters = $this->parameterContainer->getPositionalArray();
}
/** END Standard ParameterContainer Merging Block */
if ($this->profiler) {
$this->profiler->profilerStart($this);
}
$resultResource = pg_execute($this->pgsql, $this->statementName, (array) $parameters);
if ($this->profiler) {
$this->profiler->profilerFinish();
}
if ($resultResource === false) {
throw new Exception\InvalidQueryException(pg_last_error());
}
$result = $this->driver->createResult($resultResource);
return $result;
}
}

View File

@ -1,66 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver;
use Countable;
use Iterator;
interface ResultInterface extends
Countable,
Iterator
{
/**
* Force buffering
*
* @return void
*/
public function buffer();
/**
* Check if is buffered
*
* @return bool|null
*/
public function isBuffered();
/**
* Is query result?
*
* @return bool
*/
public function isQueryResult();
/**
* Get affected rows
*
* @return int
*/
public function getAffectedRows();
/**
* Get generated value
*
* @return mixed|null
*/
public function getGeneratedValue();
/**
* Get the resource
*
* @return mixed
*/
public function getResource();
/**
* Get field count
*
* @return int
*/
public function getFieldCount();
}

View File

@ -1,288 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Sqlsrv;
use Laminas\Db\Adapter\Driver\AbstractConnection;
use Laminas\Db\Adapter\Driver\Sqlsrv\Exception\ErrorException;
use Laminas\Db\Adapter\Exception;
class Connection extends AbstractConnection
{
/**
* @var Sqlsrv
*/
protected $driver = null;
/**
* Constructor
*
* @param array|resource $connectionInfo
* @throws \Laminas\Db\Adapter\Exception\InvalidArgumentException
*/
public function __construct($connectionInfo)
{
if (is_array($connectionInfo)) {
$this->setConnectionParameters($connectionInfo);
} elseif (is_resource($connectionInfo)) {
$this->setResource($connectionInfo);
} else {
throw new Exception\InvalidArgumentException('$connection must be an array of parameters or a resource');
}
}
/**
* Set driver
*
* @param Sqlsrv $driver
* @return self Provides a fluent interface
*/
public function setDriver(Sqlsrv $driver)
{
$this->driver = $driver;
return $this;
}
/**
* {@inheritDoc}
*/
public function getCurrentSchema()
{
if (! $this->isConnected()) {
$this->connect();
}
$result = sqlsrv_query($this->resource, 'SELECT SCHEMA_NAME()');
$r = sqlsrv_fetch_array($result);
return $r[0];
}
/**
* Set resource
*
* @param resource $resource
* @return self Provides a fluent interface
* @throws Exception\InvalidArgumentException
*/
public function setResource($resource)
{
if (get_resource_type($resource) !== 'SQL Server Connection') {
throw new Exception\InvalidArgumentException('Resource provided was not of type SQL Server Connection');
}
$this->resource = $resource;
return $this;
}
/**
* {@inheritDoc}
*
* @throws Exception\RuntimeException
*/
public function connect()
{
if ($this->resource) {
return $this;
}
$serverName = '.';
$params = [
'ReturnDatesAsStrings' => true
];
foreach ($this->connectionParameters as $key => $value) {
switch (strtolower($key)) {
case 'hostname':
case 'servername':
$serverName = (string) $value;
break;
case 'username':
case 'uid':
$params['UID'] = (string) $value;
break;
case 'password':
case 'pwd':
$params['PWD'] = (string) $value;
break;
case 'database':
case 'dbname':
$params['Database'] = (string) $value;
break;
case 'charset':
$params['CharacterSet'] = (string) $value;
break;
case 'driver_options':
case 'options':
$params = array_merge($params, (array) $value);
break;
}
}
$this->resource = sqlsrv_connect($serverName, $params);
if (! $this->resource) {
throw new Exception\RuntimeException(
'Connect Error',
null,
new ErrorException(sqlsrv_errors())
);
}
return $this;
}
/**
* {@inheritDoc}
*/
public function isConnected()
{
return (is_resource($this->resource));
}
/**
* {@inheritDoc}
*/
public function disconnect()
{
sqlsrv_close($this->resource);
$this->resource = null;
}
/**
* {@inheritDoc}
*/
public function beginTransaction()
{
if (! $this->isConnected()) {
$this->connect();
}
if (sqlsrv_begin_transaction($this->resource) === false) {
throw new Exception\RuntimeException(
new ErrorException(sqlsrv_errors())
);
}
$this->inTransaction = true;
return $this;
}
/**
* {@inheritDoc}
*/
public function commit()
{
// http://msdn.microsoft.com/en-us/library/cc296194.aspx
if (! $this->isConnected()) {
$this->connect();
}
sqlsrv_commit($this->resource);
$this->inTransaction = false;
return $this;
}
/**
* {@inheritDoc}
*/
public function rollback()
{
// http://msdn.microsoft.com/en-us/library/cc296176.aspx
if (! $this->isConnected()) {
throw new Exception\RuntimeException('Must be connected before you can rollback.');
}
sqlsrv_rollback($this->resource);
$this->inTransaction = false;
return $this;
}
/**
* {@inheritDoc}
*
* @throws Exception\RuntimeException
*/
public function execute($sql)
{
if (! $this->isConnected()) {
$this->connect();
}
if (! $this->driver instanceof Sqlsrv) {
throw new Exception\RuntimeException('Connection is missing an instance of Sqlsrv');
}
if ($this->profiler) {
$this->profiler->profilerStart($sql);
}
$returnValue = sqlsrv_query($this->resource, $sql);
if ($this->profiler) {
$this->profiler->profilerFinish($sql);
}
// if the returnValue is something other than a Sqlsrv_result, bypass wrapping it
if ($returnValue === false) {
$errors = sqlsrv_errors();
// ignore general warnings
if ($errors[0]['SQLSTATE'] != '01000') {
throw new Exception\RuntimeException(
'An exception occurred while trying to execute the provided $sql',
null,
new ErrorException($errors)
);
}
}
$result = $this->driver->createResult($returnValue);
return $result;
}
/**
* Prepare
*
* @param string $sql
* @return string
*/
public function prepare($sql)
{
if (! $this->isConnected()) {
$this->connect();
}
$statement = $this->driver->createStatement($sql);
return $statement;
}
/**
* {@inheritDoc}
*
* @return mixed
*/
public function getLastGeneratedValue($name = null)
{
if (! $this->resource) {
$this->connect();
}
$sql = 'SELECT @@IDENTITY as Current_Identity';
$result = sqlsrv_query($this->resource, $sql);
$row = sqlsrv_fetch_array($result);
return $row['Current_Identity'];
}
}

View File

@ -1,31 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Sqlsrv\Exception;
use Laminas\Db\Adapter\Exception;
class ErrorException extends Exception\ErrorException implements ExceptionInterface
{
/**
* Errors
*
* @var array
*/
protected $errors = [];
/**
* Construct
*
* @param bool $errors
*/
public function __construct($errors = false)
{
$this->errors = ($errors === false) ? sqlsrv_errors() : $errors;
}
}

View File

@ -1,15 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Sqlsrv\Exception;
use Laminas\Db\Adapter\Exception;
interface ExceptionInterface extends Exception\ExceptionInterface
{
}

View File

@ -1,207 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Sqlsrv;
use Iterator;
use Laminas\Db\Adapter\Driver\ResultInterface;
class Result implements Iterator, ResultInterface
{
/**
* @var resource
*/
protected $resource = null;
/**
* @var bool
*/
protected $currentData = false;
/**
*
* @var bool
*/
protected $currentComplete = false;
/**
*
* @var int
*/
protected $position = -1;
/**
* @var mixed
*/
protected $generatedValue = null;
/**
* Initialize
*
* @param resource $resource
* @param mixed $generatedValue
* @return self Provides a fluent interface
*/
public function initialize($resource, $generatedValue = null)
{
$this->resource = $resource;
$this->generatedValue = $generatedValue;
return $this;
}
/**
* @return null
*/
public function buffer()
{
return;
}
/**
* @return bool
*/
public function isBuffered()
{
return false;
}
/**
* Get resource
*
* @return resource
*/
public function getResource()
{
return $this->resource;
}
/**
* Current
*
* @return mixed
*/
public function current()
{
if ($this->currentComplete) {
return $this->currentData;
}
$this->load();
return $this->currentData;
}
/**
* Next
*
* @return bool
*/
public function next()
{
$this->load();
return true;
}
/**
* Load
*
* @param int $row
* @return mixed
*/
protected function load($row = SQLSRV_SCROLL_NEXT)
{
$this->currentData = sqlsrv_fetch_array($this->resource, SQLSRV_FETCH_ASSOC, $row);
$this->currentComplete = true;
$this->position++;
return $this->currentData;
}
/**
* Key
*
* @return mixed
*/
public function key()
{
return $this->position;
}
/**
* Rewind
*
* @return bool
*/
public function rewind()
{
$this->position = 0;
$this->load(SQLSRV_SCROLL_FIRST);
return true;
}
/**
* Valid
*
* @return bool
*/
public function valid()
{
if ($this->currentComplete && $this->currentData) {
return true;
}
return $this->load();
}
/**
* Count
*
* @return int
*/
public function count()
{
return sqlsrv_num_rows($this->resource);
}
/**
* @return bool|int
*/
public function getFieldCount()
{
return sqlsrv_num_fields($this->resource);
}
/**
* Is query result
*
* @return bool
*/
public function isQueryResult()
{
if (is_bool($this->resource)) {
return false;
}
return (sqlsrv_num_fields($this->resource) > 0);
}
/**
* Get affected rows
*
* @return int
*/
public function getAffectedRows()
{
return sqlsrv_rows_affected($this->resource);
}
/**
* @return mixed|null
*/
public function getGeneratedValue()
{
return $this->generatedValue;
}
}

View File

@ -1,214 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Sqlsrv;
use Laminas\Db\Adapter\Driver\DriverInterface;
use Laminas\Db\Adapter\Exception;
use Laminas\Db\Adapter\Profiler;
class Sqlsrv implements DriverInterface, Profiler\ProfilerAwareInterface
{
/**
* @var Connection
*/
protected $connection = null;
/**
* @var Statement
*/
protected $statementPrototype = null;
/**
* @var Result
*/
protected $resultPrototype = null;
/**
* @var null|Profiler\ProfilerInterface
*/
protected $profiler = null;
/**
* @param array|Connection|resource $connection
* @param null|Statement $statementPrototype
* @param null|Result $resultPrototype
*/
public function __construct($connection, Statement $statementPrototype = null, Result $resultPrototype = null)
{
if (! $connection instanceof Connection) {
$connection = new Connection($connection);
}
$this->registerConnection($connection);
$this->registerStatementPrototype(($statementPrototype) ?: new Statement());
$this->registerResultPrototype(($resultPrototype) ?: new Result());
}
/**
* @param Profiler\ProfilerInterface $profiler
* @return self Provides a fluent interface
*/
public function setProfiler(Profiler\ProfilerInterface $profiler)
{
$this->profiler = $profiler;
if ($this->connection instanceof Profiler\ProfilerAwareInterface) {
$this->connection->setProfiler($profiler);
}
if ($this->statementPrototype instanceof Profiler\ProfilerAwareInterface) {
$this->statementPrototype->setProfiler($profiler);
}
return $this;
}
/**
* @return null|Profiler\ProfilerInterface
*/
public function getProfiler()
{
return $this->profiler;
}
/**
* Register connection
*
* @param Connection $connection
* @return self Provides a fluent interface
*/
public function registerConnection(Connection $connection)
{
$this->connection = $connection;
$this->connection->setDriver($this);
return $this;
}
/**
* Register statement prototype
*
* @param Statement $statementPrototype
* @return self Provides a fluent interface
*/
public function registerStatementPrototype(Statement $statementPrototype)
{
$this->statementPrototype = $statementPrototype;
$this->statementPrototype->setDriver($this);
return $this;
}
/**
* Register result prototype
*
* @param Result $resultPrototype
* @return self Provides a fluent interface
*/
public function registerResultPrototype(Result $resultPrototype)
{
$this->resultPrototype = $resultPrototype;
return $this;
}
/**
* Get database paltform name
*
* @param string $nameFormat
* @return string
*/
public function getDatabasePlatformName($nameFormat = self::NAME_FORMAT_CAMELCASE)
{
if ($nameFormat == self::NAME_FORMAT_CAMELCASE) {
return 'SqlServer';
}
return 'SQLServer';
}
/**
* Check environment
*
* @throws Exception\RuntimeException
* @return void
*/
public function checkEnvironment()
{
if (! extension_loaded('sqlsrv')) {
throw new Exception\RuntimeException(
'The Sqlsrv extension is required for this adapter but the extension is not loaded'
);
}
}
/**
* @return Connection
*/
public function getConnection()
{
return $this->connection;
}
/**
* @param string|resource $sqlOrResource
* @return Statement
*/
public function createStatement($sqlOrResource = null)
{
$statement = clone $this->statementPrototype;
if (is_resource($sqlOrResource)) {
$statement->initialize($sqlOrResource);
} else {
if (! $this->connection->isConnected()) {
$this->connection->connect();
}
$statement->initialize($this->connection->getResource());
if (is_string($sqlOrResource)) {
$statement->setSql($sqlOrResource);
} elseif ($sqlOrResource !== null) {
throw new Exception\InvalidArgumentException(
'createStatement() only accepts an SQL string or a Sqlsrv resource'
);
}
}
return $statement;
}
/**
* @param resource $resource
* @return Result
*/
public function createResult($resource)
{
$result = clone $this->resultPrototype;
$result->initialize($resource, $this->connection->getLastGeneratedValue());
return $result;
}
/**
* @return string
*/
public function getPrepareType()
{
return self::PARAMETERIZATION_POSITIONAL;
}
/**
* @param string $name
* @param mixed $type
* @return string
*/
public function formatParameterName($name, $type = null)
{
return '?';
}
/**
* @return mixed
*/
public function getLastGeneratedValue()
{
return $this->getConnection()->getLastGeneratedValue();
}
}

View File

@ -1,316 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver\Sqlsrv;
use Laminas\Db\Adapter\Driver\StatementInterface;
use Laminas\Db\Adapter\Exception;
use Laminas\Db\Adapter\ParameterContainer;
use Laminas\Db\Adapter\Profiler;
class Statement implements StatementInterface, Profiler\ProfilerAwareInterface
{
/**
* @var resource
*/
protected $sqlsrv = null;
/**
* @var Sqlsrv
*/
protected $driver = null;
/**
* @var Profiler\ProfilerInterface
*/
protected $profiler = null;
/**
* @var string
*/
protected $sql = null;
/**
* @var bool
*/
protected $isQuery = null;
/**
* @var array
*/
protected $parameterReferences = [];
/**
* @var ParameterContainer
*/
protected $parameterContainer = null;
/**
* @var resource
*/
protected $resource = null;
/**
*
* @var bool
*/
protected $isPrepared = false;
/**
* @var array
*/
protected $prepareParams = [];
/**
* @var array
*/
protected $prepareOptions = [];
/**
* @var array
*/
protected $parameterReferenceValues = [];
/**
* Set driver
*
* @param Sqlsrv $driver
* @return self Provides a fluent interface
*/
public function setDriver(Sqlsrv $driver)
{
$this->driver = $driver;
return $this;
}
/**
* @param Profiler\ProfilerInterface $profiler
* @return self Provides a fluent interface
*/
public function setProfiler(Profiler\ProfilerInterface $profiler)
{
$this->profiler = $profiler;
return $this;
}
/**
* @return null|Profiler\ProfilerInterface
*/
public function getProfiler()
{
return $this->profiler;
}
/**
*
* One of two resource types will be provided here:
* a) "SQL Server Connection" when a prepared statement needs to still be produced
* b) "SQL Server Statement" when a prepared statement has been already produced
* (there will need to already be a bound param set if it applies to this query)
*
* @param resource $resource
* @return self Provides a fluent interface
* @throws Exception\InvalidArgumentException
*/
public function initialize($resource)
{
$resourceType = get_resource_type($resource);
if ($resourceType == 'SQL Server Connection') {
$this->sqlsrv = $resource;
} elseif ($resourceType == 'SQL Server Statement') {
$this->resource = $resource;
$this->isPrepared = true;
} else {
throw new Exception\InvalidArgumentException('Invalid resource provided to ' . __CLASS__);
}
return $this;
}
/**
* Set parameter container
*
* @param ParameterContainer $parameterContainer
* @return self Provides a fluent interface
*/
public function setParameterContainer(ParameterContainer $parameterContainer)
{
$this->parameterContainer = $parameterContainer;
return $this;
}
/**
* @return ParameterContainer
*/
public function getParameterContainer()
{
return $this->parameterContainer;
}
/**
* @param $resource
* @return self Provides a fluent interface
*/
public function setResource($resource)
{
$this->resource = $resource;
return $this;
}
/**
* Get resource
*
* @return resource
*/
public function getResource()
{
return $this->resource;
}
/**
* @param string $sql
* @return self Provides a fluent interface
*/
public function setSql($sql)
{
$this->sql = $sql;
return $this;
}
/**
* Get sql
*
* @return string
*/
public function getSql()
{
return $this->sql;
}
/**
* @param string $sql
* @param array $options
* @return self Provides a fluent interface
* @throws Exception\RuntimeException
*/
public function prepare($sql = null, array $options = [])
{
if ($this->isPrepared) {
throw new Exception\RuntimeException('Already prepared');
}
$sql = ($sql) ?: $this->sql;
$options = ($options) ?: $this->prepareOptions;
$pRef = &$this->parameterReferences;
for ($position = 0, $count = substr_count($sql, '?'); $position < $count; $position++) {
if (! isset($this->prepareParams[$position])) {
$pRef[$position] = [&$this->parameterReferenceValues[$position], SQLSRV_PARAM_IN, null, null];
} else {
$pRef[$position] = &$this->prepareParams[$position];
}
}
$this->resource = sqlsrv_prepare($this->sqlsrv, $sql, $pRef, $options);
$this->isPrepared = true;
return $this;
}
/**
* @return bool
*/
public function isPrepared()
{
return $this->isPrepared;
}
/**
* Execute
*
* @param null|array|ParameterContainer $parameters
* @throws Exception\RuntimeException
* @return Result
*/
public function execute($parameters = null)
{
/** END Standard ParameterContainer Merging Block */
if (! $this->isPrepared) {
$this->prepare();
}
/** START Standard ParameterContainer Merging Block */
if (! $this->parameterContainer instanceof ParameterContainer) {
if ($parameters instanceof ParameterContainer) {
$this->parameterContainer = $parameters;
$parameters = null;
} else {
$this->parameterContainer = new ParameterContainer();
}
}
if (is_array($parameters)) {
$this->parameterContainer->setFromArray($parameters);
}
if ($this->parameterContainer->count() > 0) {
$this->bindParametersFromContainer();
}
if ($this->profiler) {
$this->profiler->profilerStart($this);
}
$resultValue = sqlsrv_execute($this->resource);
if ($this->profiler) {
$this->profiler->profilerFinish();
}
if ($resultValue === false) {
$errors = sqlsrv_errors();
// ignore general warnings
if ($errors[0]['SQLSTATE'] != '01000') {
throw new Exception\RuntimeException($errors[0]['message']);
}
}
$result = $this->driver->createResult($this->resource);
return $result;
}
/**
* Bind parameters from container
*
*/
protected function bindParametersFromContainer()
{
$values = $this->parameterContainer->getPositionalArray();
$position = 0;
foreach ($values as $value) {
$this->parameterReferences[$position++][0] = $value;
}
}
/**
* @param array $prepareParams
*/
public function setPrepareParams(array $prepareParams)
{
$this->prepareParams = $prepareParams;
}
/**
* @param array $prepareOptions
*/
public function setPrepareOptions(array $prepareOptions)
{
$this->prepareOptions = $prepareOptions;
}
}

View File

@ -1,44 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Driver;
use Laminas\Db\Adapter\ParameterContainer;
use Laminas\Db\Adapter\StatementContainerInterface;
interface StatementInterface extends StatementContainerInterface
{
/**
* Get resource
*
* @return resource
*/
public function getResource();
/**
* Prepare sql
*
* @param string $sql
*/
public function prepare($sql = null);
/**
* Check if is prepared
*
* @return bool
*/
public function isPrepared();
/**
* Execute
*
* @param null|array|ParameterContainer $parameters
* @return ResultInterface
*/
public function execute($parameters = null);
}

View File

@ -1,15 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Exception;
use Laminas\Db\Exception;
class ErrorException extends Exception\ErrorException implements ExceptionInterface
{
}

View File

@ -1,15 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Exception;
use Laminas\Db\Exception;
interface ExceptionInterface extends Exception\ExceptionInterface
{
}

View File

@ -1,15 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Exception;
use Laminas\Db\Exception;
class InvalidArgumentException extends Exception\InvalidArgumentException implements ExceptionInterface
{
}

View File

@ -1,27 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Exception;
class InvalidConnectionParametersException extends RuntimeException implements ExceptionInterface
{
/**
* @var int
*/
protected $parameters;
/**
* @param string $message
* @param int $parameters
*/
public function __construct($message, $parameters)
{
parent::__construct($message);
$this->parameters = $parameters;
}
}

View File

@ -1,13 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Exception;
class InvalidQueryException extends UnexpectedValueException implements ExceptionInterface
{
}

View File

@ -1,15 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Exception;
use Laminas\Db\Exception;
class RuntimeException extends Exception\RuntimeException implements ExceptionInterface
{
}

View File

@ -1,15 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Exception;
use Laminas\Db\Exception;
class UnexpectedValueException extends Exception\UnexpectedValueException implements ExceptionInterface
{
}

View File

@ -1,421 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter;
use ArrayAccess;
use Countable;
use Iterator;
class ParameterContainer implements Iterator, ArrayAccess, Countable
{
const TYPE_AUTO = 'auto';
const TYPE_NULL = 'null';
const TYPE_DOUBLE = 'double';
const TYPE_INTEGER = 'integer';
const TYPE_BINARY = 'binary';
const TYPE_STRING = 'string';
const TYPE_LOB = 'lob';
/**
* Data
*
* @var array
*/
protected $data = [];
/**
* @var array
*/
protected $positions = [];
/**
* Errata
*
* @var array
*/
protected $errata = [];
/**
* Max length
*
* @var array
*/
protected $maxLength = [];
/**
* Constructor
*
* @param array $data
*/
public function __construct(array $data = [])
{
if ($data) {
$this->setFromArray($data);
}
}
/**
* Offset exists
*
* @param string $name
* @return bool
*/
public function offsetExists($name)
{
return (isset($this->data[$name]));
}
/**
* Offset get
*
* @param string $name
* @return mixed
*/
public function offsetGet($name)
{
return (isset($this->data[$name])) ? $this->data[$name] : null;
}
/**
* @param $name
* @param $from
*/
public function offsetSetReference($name, $from)
{
$this->data[$name] =& $this->data[$from];
}
/**
* Offset set
*
* @param string|int $name
* @param mixed $value
* @param mixed $errata
* @param mixed $maxLength
* @throws Exception\InvalidArgumentException
*/
public function offsetSet($name, $value, $errata = null, $maxLength = null)
{
$position = false;
// if integer, get name for this position
if (is_int($name)) {
if (isset($this->positions[$name])) {
$position = $name;
$name = $this->positions[$name];
} else {
$name = (string) $name;
}
} elseif (is_string($name)) {
// is a string:
$position = array_key_exists($name, $this->data);
} elseif ($name === null) {
$name = (string) count($this->data);
} else {
throw new Exception\InvalidArgumentException('Keys must be string, integer or null');
}
if ($position === false) {
$this->positions[] = $name;
}
$this->data[$name] = $value;
if ($errata) {
$this->offsetSetErrata($name, $errata);
}
if ($maxLength) {
$this->offsetSetMaxLength($name, $maxLength);
}
}
/**
* Offset unset
*
* @param string $name
* @return self Provides a fluent interface
*/
public function offsetUnset($name)
{
if (is_int($name) && isset($this->positions[$name])) {
$name = $this->positions[$name];
}
unset($this->data[$name]);
return $this;
}
/**
* Set from array
*
* @param array $data
* @return self Provides a fluent interface
*/
public function setFromArray(array $data)
{
foreach ($data as $n => $v) {
$this->offsetSet($n, $v);
}
return $this;
}
/**
* Offset set max length
*
* @param string|int $name
* @param mixed $maxLength
*/
public function offsetSetMaxLength($name, $maxLength)
{
if (is_int($name)) {
$name = $this->positions[$name];
}
$this->maxLength[$name] = $maxLength;
}
/**
* Offset get max length
*
* @param string|int $name
* @throws Exception\InvalidArgumentException
* @return mixed
*/
public function offsetGetMaxLength($name)
{
if (is_int($name)) {
$name = $this->positions[$name];
}
if (! array_key_exists($name, $this->data)) {
throw new Exception\InvalidArgumentException('Data does not exist for this name/position');
}
return $this->maxLength[$name];
}
/**
* Offset has max length
*
* @param string|int $name
* @return bool
*/
public function offsetHasMaxLength($name)
{
if (is_int($name)) {
$name = $this->positions[$name];
}
return (isset($this->maxLength[$name]));
}
/**
* Offset unset max length
*
* @param string|int $name
* @throws Exception\InvalidArgumentException
*/
public function offsetUnsetMaxLength($name)
{
if (is_int($name)) {
$name = $this->positions[$name];
}
if (! array_key_exists($name, $this->maxLength)) {
throw new Exception\InvalidArgumentException('Data does not exist for this name/position');
}
$this->maxLength[$name] = null;
}
/**
* Get max length iterator
*
* @return \ArrayIterator
*/
public function getMaxLengthIterator()
{
return new \ArrayIterator($this->maxLength);
}
/**
* Offset set errata
*
* @param string|int $name
* @param mixed $errata
*/
public function offsetSetErrata($name, $errata)
{
if (is_int($name)) {
$name = $this->positions[$name];
}
$this->errata[$name] = $errata;
}
/**
* Offset get errata
*
* @param string|int $name
* @throws Exception\InvalidArgumentException
* @return mixed
*/
public function offsetGetErrata($name)
{
if (is_int($name)) {
$name = $this->positions[$name];
}
if (! array_key_exists($name, $this->data)) {
throw new Exception\InvalidArgumentException('Data does not exist for this name/position');
}
return $this->errata[$name];
}
/**
* Offset has errata
*
* @param string|int $name
* @return bool
*/
public function offsetHasErrata($name)
{
if (is_int($name)) {
$name = $this->positions[$name];
}
return (isset($this->errata[$name]));
}
/**
* Offset unset errata
*
* @param string|int $name
* @throws Exception\InvalidArgumentException
*/
public function offsetUnsetErrata($name)
{
if (is_int($name)) {
$name = $this->positions[$name];
}
if (! array_key_exists($name, $this->errata)) {
throw new Exception\InvalidArgumentException('Data does not exist for this name/position');
}
$this->errata[$name] = null;
}
/**
* Get errata iterator
*
* @return \ArrayIterator
*/
public function getErrataIterator()
{
return new \ArrayIterator($this->errata);
}
/**
* getNamedArray
*
* @return array
*/
public function getNamedArray()
{
return $this->data;
}
/**
* getNamedArray
*
* @return array
*/
public function getPositionalArray()
{
return array_values($this->data);
}
/**
* count
*
* @return int
*/
public function count()
{
return count($this->data);
}
/**
* Current
*
* @return mixed
*/
public function current()
{
return current($this->data);
}
/**
* Next
*
* @return mixed
*/
public function next()
{
return next($this->data);
}
/**
* Key
*
* @return mixed
*/
public function key()
{
return key($this->data);
}
/**
* Valid
*
* @return bool
*/
public function valid()
{
return (current($this->data) !== false);
}
/**
* Rewind
*/
public function rewind()
{
reset($this->data);
}
/**
* @param array|ParameterContainer $parameters
* @return self Provides a fluent interface
* @throws Exception\InvalidArgumentException
*/
public function merge($parameters)
{
if (! is_array($parameters) && ! $parameters instanceof ParameterContainer) {
throw new Exception\InvalidArgumentException(
'$parameters must be an array or an instance of ParameterContainer'
);
}
if (count($parameters) == 0) {
return $this;
}
if ($parameters instanceof ParameterContainer) {
$parameters = $parameters->getNamedArray();
}
foreach ($parameters as $key => $value) {
if (is_int($key)) {
$key = null;
}
$this->offsetSet($key, $value);
}
return $this;
}
}

View File

@ -1,141 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Platform;
abstract class AbstractPlatform implements PlatformInterface
{
/**
* @var string[]
*/
protected $quoteIdentifier = ['"', '"'];
/**
* @var string
*/
protected $quoteIdentifierTo = '\'';
/**
* @var bool
*/
protected $quoteIdentifiers = true;
/**
* @var string
*/
protected $quoteIdentifierFragmentPattern = '/([^0-9,a-z,A-Z$_:])/i';
/**
* {@inheritDoc}
*/
public function quoteIdentifierInFragment($identifier, array $safeWords = [])
{
if (! $this->quoteIdentifiers) {
return $identifier;
}
$safeWordsInt = ['*' => true, ' ' => true, '.' => true, 'as' => true];
foreach ($safeWords as $sWord) {
$safeWordsInt[strtolower($sWord)] = true;
}
$parts = preg_split(
$this->quoteIdentifierFragmentPattern,
$identifier,
-1,
PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY
);
$identifier = '';
foreach ($parts as $part) {
$identifier .= isset($safeWordsInt[strtolower($part)])
? $part
: $this->quoteIdentifier[0]
. str_replace($this->quoteIdentifier[0], $this->quoteIdentifierTo, $part)
. $this->quoteIdentifier[1];
}
return $identifier;
}
/**
* {@inheritDoc}
*/
public function quoteIdentifier($identifier)
{
if (! $this->quoteIdentifiers) {
return $identifier;
}
return $this->quoteIdentifier[0]
. str_replace($this->quoteIdentifier[0], $this->quoteIdentifierTo, $identifier)
. $this->quoteIdentifier[1];
}
/**
* {@inheritDoc}
*/
public function quoteIdentifierChain($identifierChain)
{
return '"' . implode('"."', (array) str_replace('"', '\\"', $identifierChain)) . '"';
}
/**
* {@inheritDoc}
*/
public function getQuoteIdentifierSymbol()
{
return $this->quoteIdentifier[0];
}
/**
* {@inheritDoc}
*/
public function getQuoteValueSymbol()
{
return '\'';
}
/**
* {@inheritDoc}
*/
public function quoteValue($value)
{
trigger_error(
'Attempting to quote a value in ' . get_class($this) .
' without extension/driver support can introduce security vulnerabilities in a production environment'
);
return '\'' . addcslashes((string) $value, "\x00\n\r\\'\"\x1a") . '\'';
}
/**
* {@inheritDoc}
*/
public function quoteTrustedValue($value)
{
return '\'' . addcslashes((string) $value, "\x00\n\r\\'\"\x1a") . '\'';
}
/**
* {@inheritDoc}
*/
public function quoteValueList($valueList)
{
return implode(', ', array_map([$this, 'quoteValue'], (array) $valueList));
}
/**
* {@inheritDoc}
*/
public function getIdentifierSeparator()
{
return '.';
}
}

View File

@ -1,124 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Platform;
class IbmDb2 extends AbstractPlatform
{
/**
* @var string
*/
protected $identifierSeparator = '.';
/**
* @param array $options
*/
public function __construct($options = [])
{
if (isset($options['quote_identifiers'])
&& ($options['quote_identifiers'] == false
|| $options['quote_identifiers'] === 'false')
) {
$this->quoteIdentifiers = false;
}
if (isset($options['identifier_separator'])) {
$this->identifierSeparator = $options['identifier_separator'];
}
}
/**
* {@inheritDoc}
*/
public function getName()
{
return 'IBM DB2';
}
/**
* {@inheritDoc}
*/
public function quoteIdentifierInFragment($identifier, array $safeWords = [])
{
if (! $this->quoteIdentifiers) {
return $identifier;
}
$safeWordsInt = ['*' => true, ' ' => true, '.' => true, 'as' => true];
foreach ($safeWords as $sWord) {
$safeWordsInt[strtolower($sWord)] = true;
}
$parts = preg_split(
'/([^0-9,a-z,A-Z$#_:])/i',
$identifier,
-1,
PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY
);
$identifier = '';
foreach ($parts as $part) {
$identifier .= isset($safeWordsInt[strtolower($part)])
? $part
: $this->quoteIdentifier[0]
. str_replace($this->quoteIdentifier[0], $this->quoteIdentifierTo, $part)
. $this->quoteIdentifier[1];
}
return $identifier;
}
/**
* {@inheritDoc}
*/
public function quoteIdentifierChain($identifierChain)
{
if ($this->quoteIdentifiers === false) {
if (is_array($identifierChain)) {
return implode($this->identifierSeparator, $identifierChain);
} else {
return $identifierChain;
}
}
$identifierChain = str_replace('"', '\\"', $identifierChain);
if (is_array($identifierChain)) {
$identifierChain = implode('"' . $this->identifierSeparator . '"', $identifierChain);
}
return '"' . $identifierChain . '"';
}
/**
* {@inheritDoc}
*/
public function quoteValue($value)
{
if (function_exists('db2_escape_string')) {
return '\'' . db2_escape_string($value) . '\'';
}
trigger_error(
'Attempting to quote a value in ' . __CLASS__ . ' without extension/driver support '
. 'can introduce security vulnerabilities in a production environment.'
);
return '\'' . str_replace("'", "''", $value) . '\'';
}
/**
* {@inheritDoc}
*/
public function quoteTrustedValue($value)
{
if (function_exists('db2_escape_string')) {
return '\'' . db2_escape_string($value) . '\'';
}
return '\'' . str_replace("'", "''", $value) . '\'';
}
/**
* {@inheritDoc}
*/
public function getIdentifierSeparator()
{
return $this->identifierSeparator;
}
}

View File

@ -1,129 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Platform;
use Laminas\Db\Adapter\Driver\DriverInterface;
use Laminas\Db\Adapter\Driver\Mysqli;
use Laminas\Db\Adapter\Driver\Pdo;
use Laminas\Db\Adapter\Exception;
class Mysql extends AbstractPlatform
{
/**
* {@inheritDoc}
*/
protected $quoteIdentifier = ['`', '`'];
/**
* {@inheritDoc}
*/
protected $quoteIdentifierTo = '``';
/**
* @var \mysqli|\PDO|Pdo\Pdo|Mysqli\Mysqli
*/
protected $driver = null;
/**
* NOTE: Include dashes for MySQL only, need tests for others platforms
*
* @var string
*/
protected $quoteIdentifierFragmentPattern = '/([^0-9,a-z,A-Z$_\-:])/i';
/**
* @param null|\Laminas\Db\Adapter\Driver\Mysqli\Mysqli|\Laminas\Db\Adapter\Driver\Pdo\Pdo|\mysqli|\PDO $driver
*/
public function __construct($driver = null)
{
if ($driver) {
$this->setDriver($driver);
}
}
/**
* @param \Laminas\Db\Adapter\Driver\Mysqli\Mysqli|\Laminas\Db\Adapter\Driver\Pdo\Pdo|\mysqli|\PDO $driver
* @return self Provides a fluent interface
* @throws \Laminas\Db\Adapter\Exception\InvalidArgumentException
*/
public function setDriver($driver)
{
// handle Laminas\Db drivers
if ($driver instanceof Mysqli\Mysqli
|| ($driver instanceof Pdo\Pdo && $driver->getDatabasePlatformName() == 'Mysql')
|| ($driver instanceof \mysqli)
|| ($driver instanceof \PDO && $driver->getAttribute(\PDO::ATTR_DRIVER_NAME) == 'mysql')
) {
$this->driver = $driver;
return $this;
}
throw new Exception\InvalidArgumentException(
'$driver must be a Mysqli or Mysql PDO Laminas\Db\Adapter\Driver, Mysqli instance or MySQL PDO instance'
);
}
/**
* {@inheritDoc}
*/
public function getName()
{
return 'MySQL';
}
/**
* {@inheritDoc}
*/
public function quoteIdentifierChain($identifierChain)
{
return '`' . implode('`.`', (array) str_replace('`', '``', $identifierChain)) . '`';
}
/**
* {@inheritDoc}
*/
public function quoteValue($value)
{
$quotedViaDriverValue = $this->quoteViaDriver($value);
return $quotedViaDriverValue !== null ? $quotedViaDriverValue : parent::quoteValue($value);
}
/**
* {@inheritDoc}
*/
public function quoteTrustedValue($value)
{
$quotedViaDriverValue = $this->quoteViaDriver($value);
return $quotedViaDriverValue !== null ? $quotedViaDriverValue : parent::quoteTrustedValue($value);
}
/**
* @param string $value
* @return string|null
*/
protected function quoteViaDriver($value)
{
if ($this->driver instanceof DriverInterface) {
$resource = $this->driver->getConnection()->getResource();
} else {
$resource = $this->driver;
}
if ($resource instanceof \mysqli) {
return '\'' . $resource->real_escape_string($value) . '\'';
}
if ($resource instanceof \PDO) {
return $resource->quote($value);
}
return null;
}
}

View File

@ -1,130 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Platform;
use \Laminas\Db\Adapter\Exception\InvalidArgumentException;
use Laminas\Db\Adapter\Driver\DriverInterface;
use Laminas\Db\Adapter\Driver\Oci8\Oci8;
use Laminas\Db\Adapter\Driver\Pdo\Pdo;
class Oracle extends AbstractPlatform
{
/**
* @var null|Pdo|Oci8|\PDO
*/
protected $resource = null;
/**
* @param array $options
* @param null|Oci8|Pdo $driver
*/
public function __construct($options = [], $driver = null)
{
if (isset($options['quote_identifiers'])
&& ($options['quote_identifiers'] == false
|| $options['quote_identifiers'] === 'false')
) {
$this->quoteIdentifiers = false;
}
if ($driver) {
$this->setDriver($driver);
}
}
/**
* @param Pdo|Oci8 $driver
* @return self Provides a fluent interface
* @throws InvalidArgumentException
*/
public function setDriver($driver)
{
if ($driver instanceof Oci8
|| ($driver instanceof Pdo && $driver->getDatabasePlatformName() == 'Oracle')
|| ($driver instanceof Pdo && $driver->getDatabasePlatformName() == 'Sqlite')
|| ($driver instanceof \oci8)
|| ($driver instanceof \PDO && $driver->getAttribute(\PDO::ATTR_DRIVER_NAME) == 'oci')
) {
$this->resource = $driver;
return $this;
}
throw new InvalidArgumentException(
'$driver must be a Oci8 or Oracle PDO Laminas\Db\Adapter\Driver, '
. 'Oci8 instance, or Oci PDO instance'
);
}
/**
* @return null|Pdo|Oci8
*/
public function getDriver()
{
return $this->resource;
}
/**
* {@inheritDoc}
*/
public function getName()
{
return 'Oracle';
}
/**
* {@inheritDoc}
*/
public function quoteIdentifierChain($identifierChain)
{
if ($this->quoteIdentifiers === false) {
return implode('.', (array) $identifierChain);
}
return '"' . implode('"."', (array) str_replace('"', '\\"', $identifierChain)) . '"';
}
/**
* {@inheritDoc}
*/
public function quoteValue($value)
{
if ($this->resource instanceof DriverInterface) {
$resource = $this->resource->getConnection()->getResource();
} else {
$resource = $this->resource;
}
if ($resource) {
if ($resource instanceof \PDO) {
return $resource->quote($value);
}
if (get_resource_type($resource) == 'oci8 connection'
|| get_resource_type($resource) == 'oci8 persistent connection'
) {
return "'" . addcslashes(str_replace("'", "''", $value), "\x00\n\r\"\x1a") . "'";
}
}
trigger_error(
'Attempting to quote a value in ' . __CLASS__ . ' without extension/driver support '
. 'can introduce security vulnerabilities in a production environment.'
);
return "'" . addcslashes(str_replace("'", "''", $value), "\x00\n\r\"\x1a") . "'";
}
/**
* {@inheritDoc}
*/
public function quoteTrustedValue($value)
{
return "'" . addcslashes(str_replace('\'', '\'\'', $value), "\x00\n\r\"\x1a") . "'";
}
}

View File

@ -1,93 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Platform;
interface PlatformInterface
{
/**
* Get name
*
* @return string
*/
public function getName();
/**
* Get quote identifier symbol
*
* @return string
*/
public function getQuoteIdentifierSymbol();
/**
* Quote identifier
*
* @param string $identifier
* @return string
*/
public function quoteIdentifier($identifier);
/**
* Quote identifier chain
*
* @param string|string[] $identifierChain
* @return string
*/
public function quoteIdentifierChain($identifierChain);
/**
* Get quote value symbol
*
* @return string
*/
public function getQuoteValueSymbol();
/**
* Quote value
*
* Will throw a notice when used in a workflow that can be considered "unsafe"
*
* @param string $value
* @return string
*/
public function quoteValue($value);
/**
* Quote Trusted Value
*
* The ability to quote values without notices
*
* @param $value
* @return mixed
*/
public function quoteTrustedValue($value);
/**
* Quote value list
*
* @param string|string[] $valueList
* @return string
*/
public function quoteValueList($valueList);
/**
* Get identifier separator
*
* @return string
*/
public function getIdentifierSeparator();
/**
* Quote identifier in fragment
*
* @param string $identifier
* @param array $additionalSafeWords
* @return string
*/
public function quoteIdentifierInFragment($identifier, array $additionalSafeWords = []);
}

View File

@ -1,119 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Platform;
use Laminas\Db\Adapter\Driver\DriverInterface;
use Laminas\Db\Adapter\Driver\Pdo;
use Laminas\Db\Adapter\Driver\Pgsql;
use Laminas\Db\Adapter\Exception;
class Postgresql extends AbstractPlatform
{
/**
* Overrides value from AbstractPlatform to use proper escaping for Postgres
*
* @var string
*/
protected $quoteIdentifierTo = '""';
/**
* @var resource|\PDO|Pdo\Pdo|Pgsql\Pgsql
*/
protected $driver = null;
/**
* @param null|\Laminas\Db\Adapter\Driver\Pgsql\Pgsql|\Laminas\Db\Adapter\Driver\Pdo\Pdo|resource|\PDO $driver
*/
public function __construct($driver = null)
{
if ($driver) {
$this->setDriver($driver);
}
}
/**
* @param \Laminas\Db\Adapter\Driver\Pgsql\Pgsql|\Laminas\Db\Adapter\Driver\Pdo\Pdo|resource|\PDO $driver
* @return self Provides a fluent interface
* @throws \Laminas\Db\Adapter\Exception\InvalidArgumentException
*/
public function setDriver($driver)
{
if ($driver instanceof Pgsql\Pgsql
|| ($driver instanceof Pdo\Pdo && $driver->getDatabasePlatformName() == 'Postgresql')
|| (is_resource($driver) && (in_array(get_resource_type($driver), ['pgsql link', 'pgsql link persistent'])))
|| ($driver instanceof \PDO && $driver->getAttribute(\PDO::ATTR_DRIVER_NAME) == 'pgsql')
) {
$this->driver = $driver;
return $this;
}
throw new Exception\InvalidArgumentException(
'$driver must be a Pgsql or Postgresql PDO Laminas\Db\Adapter\Driver, pgsql link resource'
. ' or Postgresql PDO instance'
);
}
/**
* {@inheritDoc}
*/
public function getName()
{
return 'PostgreSQL';
}
/**
* {@inheritDoc}
*/
public function quoteIdentifierChain($identifierChain)
{
return '"' . implode('"."', (array) str_replace('"', '""', $identifierChain)) . '"';
}
/**
* {@inheritDoc}
*/
public function quoteValue($value)
{
$quotedViaDriverValue = $this->quoteViaDriver($value);
return $quotedViaDriverValue !== null ? $quotedViaDriverValue : ('E' . parent::quoteValue($value));
}
/**
* {@inheritDoc}
*/
public function quoteTrustedValue($value)
{
$quotedViaDriverValue = $this->quoteViaDriver($value);
return $quotedViaDriverValue !== null ? $quotedViaDriverValue : ('E' . parent::quoteTrustedValue($value));
}
/**
* @param string $value
* @return string|null
*/
protected function quoteViaDriver($value)
{
if ($this->driver instanceof DriverInterface) {
$resource = $this->driver->getConnection()->getResource();
} else {
$resource = $this->driver;
}
if (is_resource($resource)) {
return '\'' . pg_escape_string($resource, $value) . '\'';
}
if ($resource instanceof \PDO) {
return $resource->quote($value);
}
return null;
}
}

View File

@ -1,32 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Platform;
class Sql92 extends AbstractPlatform
{
/**
* {@inheritDoc}
*/
public function getName()
{
return 'SQL92';
}
/**
* {@inheritDoc}
*/
public function quoteValue($value)
{
trigger_error(
'Attempting to quote a value without specific driver level support'
. ' can introduce security vulnerabilities in a production environment.'
);
return '\'' . addcslashes($value, "\x00\n\r\\'\"\x1a") . '\'';
}
}

View File

@ -1,123 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Platform;
use Laminas\Db\Adapter\Driver\DriverInterface;
use Laminas\Db\Adapter\Driver\Pdo;
use Laminas\Db\Adapter\Exception;
class SqlServer extends AbstractPlatform
{
/**
* {@inheritDoc}
*/
protected $quoteIdentifier = ['[',']'];
/**
* {@inheritDoc}
*/
protected $quoteIdentifierTo = '\\';
/**
* @var resource|\PDO
*/
protected $resource = null;
/**
* @param null|\Laminas\Db\Adapter\Driver\Sqlsrv\Sqlsrv|\Laminas\Db\Adapter\Driver\Pdo\Pdo|resource|\PDO $driver
*/
public function __construct($driver = null)
{
if ($driver) {
$this->setDriver($driver);
}
}
/**
* @param \Laminas\Db\Adapter\Driver\Sqlsrv\Sqlsrv|\Laminas\Db\Adapter\Driver\Pdo\Pdo|resource|\PDO $driver
* @return self Provides a fluent interface
* @throws \Laminas\Db\Adapter\Exception\InvalidArgumentException
*/
public function setDriver($driver)
{
// handle Laminas\Db drivers
if (($driver instanceof Pdo\Pdo && in_array($driver->getDatabasePlatformName(), ['SqlServer', 'Dblib']))
|| ($driver instanceof \PDO && in_array($driver->getAttribute(\PDO::ATTR_DRIVER_NAME), ['sqlsrv', 'dblib']))
) {
$this->resource = $driver;
return $this;
}
throw new Exception\InvalidArgumentException(
'$driver must be a Sqlsrv PDO Laminas\Db\Adapter\Driver or Sqlsrv PDO instance'
);
}
/**
* {@inheritDoc}
*/
public function getName()
{
return 'SQLServer';
}
/**
* {@inheritDoc}
*/
public function getQuoteIdentifierSymbol()
{
return $this->quoteIdentifier;
}
/**
* {@inheritDoc}
*/
public function quoteIdentifierChain($identifierChain)
{
return '[' . implode('].[', (array) $identifierChain) . ']';
}
/**
* {@inheritDoc}
*/
public function quoteValue($value)
{
$resource = $this->resource;
if ($resource instanceof DriverInterface) {
$resource = $resource->getConnection()->getResource();
}
if ($resource instanceof \PDO) {
return $resource->quote($value);
}
trigger_error(
'Attempting to quote a value in ' . __CLASS__ . ' without extension/driver support '
. 'can introduce security vulnerabilities in a production environment.'
);
return '\'' . str_replace('\'', '\'\'', addcslashes($value, "\000\032")) . '\'';
}
/**
* {@inheritDoc}
*/
public function quoteTrustedValue($value)
{
$resource = $this->resource;
if ($resource instanceof DriverInterface) {
$resource = $resource->getConnection()->getResource();
}
if ($resource instanceof \PDO) {
return $resource->quote($value);
}
return '\'' . str_replace('\'', '\'\'', $value) . '\'';
}
}

View File

@ -1,104 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Platform;
use Laminas\Db\Adapter\Driver\DriverInterface;
use Laminas\Db\Adapter\Driver\Pdo;
use Laminas\Db\Adapter\Exception;
class Sqlite extends AbstractPlatform
{
/**
* {@inheritDoc}
*/
protected $quoteIdentifier = ['"','"'];
/**
* {@inheritDoc}
*/
protected $quoteIdentifierTo = '\'';
/**
* @var \PDO
*/
protected $resource = null;
/**
* @param null|\Laminas\Db\Adapter\Driver\Pdo\Pdo||\PDO $driver
*/
public function __construct($driver = null)
{
if ($driver) {
$this->setDriver($driver);
}
}
/**
* @param \Laminas\Db\Adapter\Driver\Pdo\Pdo|\PDO $driver
* @return self Provides a fluent interface
* @throws \Laminas\Db\Adapter\Exception\InvalidArgumentException
*/
public function setDriver($driver)
{
if (($driver instanceof \PDO && $driver->getAttribute(\PDO::ATTR_DRIVER_NAME) == 'sqlite')
|| ($driver instanceof Pdo\Pdo && $driver->getDatabasePlatformName() == 'Sqlite')
) {
$this->resource = $driver;
return $this;
}
throw new Exception\InvalidArgumentException(
'$driver must be a Sqlite PDO Laminas\Db\Adapter\Driver, Sqlite PDO instance'
);
}
/**
* {@inheritDoc}
*/
public function getName()
{
return 'SQLite';
}
/**
* {@inheritDoc}
*/
public function quoteValue($value)
{
$resource = $this->resource;
if ($resource instanceof DriverInterface) {
$resource = $resource->getConnection()->getResource();
}
if ($resource instanceof \PDO) {
return $resource->quote($value);
}
return parent::quoteValue($value);
}
/**
* {@inheritDoc}
*/
public function quoteTrustedValue($value)
{
$resource = $this->resource;
if ($resource instanceof DriverInterface) {
$resource = $resource->getConnection()->getResource();
}
if ($resource instanceof \PDO) {
return $resource->quote($value);
}
return parent::quoteTrustedValue($value);
}
}

View File

@ -1,88 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Profiler;
use Laminas\Db\Adapter\Exception;
use Laminas\Db\Adapter\StatementContainerInterface;
class Profiler implements ProfilerInterface
{
/**
* @var array
*/
protected $profiles = [];
/**
* @var null
*/
protected $currentIndex = 0;
/**
* @param string|StatementContainerInterface $target
* @return self Provides a fluent interface
* @throws \Laminas\Db\Adapter\Exception\InvalidArgumentException
*/
public function profilerStart($target)
{
$profileInformation = [
'sql' => '',
'parameters' => null,
'start' => microtime(true),
'end' => null,
'elapse' => null
];
if ($target instanceof StatementContainerInterface) {
$profileInformation['sql'] = $target->getSql();
$profileInformation['parameters'] = clone $target->getParameterContainer();
} elseif (is_string($target)) {
$profileInformation['sql'] = $target;
} else {
throw new Exception\InvalidArgumentException(
__FUNCTION__ . ' takes either a StatementContainer or a string'
);
}
$this->profiles[$this->currentIndex] = $profileInformation;
return $this;
}
/**
* @return self Provides a fluent interface
*/
public function profilerFinish()
{
if (! isset($this->profiles[$this->currentIndex])) {
throw new Exception\RuntimeException(
'A profile must be started before ' . __FUNCTION__ . ' can be called.'
);
}
$current = &$this->profiles[$this->currentIndex];
$current['end'] = microtime(true);
$current['elapse'] = $current['end'] - $current['start'];
$this->currentIndex++;
return $this;
}
/**
* @return array|null
*/
public function getLastProfile()
{
return end($this->profiles);
}
/**
* @return array
*/
public function getProfiles()
{
return $this->profiles;
}
}

View File

@ -1,17 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Profiler;
interface ProfilerAwareInterface
{
/**
* @param ProfilerInterface $profiler
*/
public function setProfiler(ProfilerInterface $profiler);
}

View File

@ -1,19 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter\Profiler;
interface ProfilerInterface
{
/**
* @param string|\Laminas\Db\Adapter\StatementContainerInterface $target
* @return mixed
*/
public function profilerStart($target);
public function profilerFinish();
}

View File

@ -1,70 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter;
class StatementContainer implements StatementContainerInterface
{
/**
* @var string
*/
protected $sql = '';
/**
* @var ParameterContainer
*/
protected $parameterContainer = null;
/**
* @param string|null $sql
* @param ParameterContainer|null $parameterContainer
*/
public function __construct($sql = null, ParameterContainer $parameterContainer = null)
{
if ($sql) {
$this->setSql($sql);
}
$this->parameterContainer = ($parameterContainer) ?: new ParameterContainer;
}
/**
* @param $sql
* @return self Provides a fluent interface
*/
public function setSql($sql)
{
$this->sql = $sql;
return $this;
}
/**
* @return string
*/
public function getSql()
{
return $this->sql;
}
/**
* @param ParameterContainer $parameterContainer
* @return self Provides a fluent interface
*/
public function setParameterContainer(ParameterContainer $parameterContainer)
{
$this->parameterContainer = $parameterContainer;
return $this;
}
/**
* @return null|ParameterContainer
*/
public function getParameterContainer()
{
return $this->parameterContainer;
}
}

View File

@ -1,42 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Adapter;
interface StatementContainerInterface
{
/**
* Set sql
*
* @param $sql
* @return mixed
*/
public function setSql($sql);
/**
* Get sql
*
* @return mixed
*/
public function getSql();
/**
* Set parameter container
*
* @param ParameterContainer $parameterContainer
* @return mixed
*/
public function setParameterContainer(ParameterContainer $parameterContainer);
/**
* Get parameter container
*
* @return mixed
*/
public function getParameterContainer();
}

View File

@ -1,48 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db;
class ConfigProvider
{
/**
* Retrieve laminas-db default configuration.
*
* @return array
*/
public function __invoke()
{
return [
'dependencies' => $this->getDependencyConfig(),
];
}
/**
* Retrieve laminas-db default dependency configuration.
*
* @return array
*/
public function getDependencyConfig()
{
return [
'abstract_factories' => [
Adapter\AdapterAbstractServiceFactory::class,
],
'factories' => [
Adapter\AdapterInterface::class => Adapter\AdapterServiceFactory::class,
],
'aliases' => [
Adapter\Adapter::class => Adapter\AdapterInterface::class,
// Legacy Zend Framework aliases
\Zend\Db\Adapter\AdapterInterface::class => Adapter\AdapterInterface::class,
\Zend\Db\Adapter\Adapter::class => Adapter\Adapter::class,
],
];
}
}

View File

@ -1,13 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Exception;
class ErrorException extends \Exception implements ExceptionInterface
{
}

View File

@ -1,13 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Exception;
interface ExceptionInterface
{
}

View File

@ -1,13 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Exception;
class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
{
}

View File

@ -1,13 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Exception;
class RuntimeException extends \RuntimeException implements ExceptionInterface
{
}

View File

@ -1,13 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Exception;
class UnexpectedValueException extends \UnexpectedValueException implements ExceptionInterface
{
}

View File

@ -1,160 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Metadata;
use Laminas\Db\Adapter\Adapter;
/**
* @deprecated Use Laminas\Db\Metadata\Source\Factory::createSourceFromAdapter($adapter)
*/
class Metadata implements MetadataInterface
{
/**
* @var MetadataInterface
*/
protected $source = null;
/**
* Constructor
*
* @param Adapter $adapter
*/
public function __construct(Adapter $adapter)
{
$this->source = Source\Factory::createSourceFromAdapter($adapter);
}
/**
* {@inheritdoc}
*/
public function getTables($schema = null, $includeViews = false)
{
return $this->source->getTables($schema, $includeViews);
}
/**
* {@inheritdoc}
*/
public function getViews($schema = null)
{
return $this->source->getViews($schema);
}
/**
* {@inheritdoc}
*/
public function getTriggers($schema = null)
{
return $this->source->getTriggers($schema);
}
/**
* {@inheritdoc}
*/
public function getConstraints($table, $schema = null)
{
return $this->source->getConstraints($table, $schema);
}
/**
* {@inheritdoc}
*/
public function getColumns($table, $schema = null)
{
return $this->source->getColumns($table, $schema);
}
/**
* {@inheritdoc}
*/
public function getConstraintKeys($constraint, $table, $schema = null)
{
return $this->source->getConstraintKeys($constraint, $table, $schema);
}
/**
* {@inheritdoc}
*/
public function getConstraint($constraintName, $table, $schema = null)
{
return $this->source->getConstraint($constraintName, $table, $schema);
}
/**
* {@inheritdoc}
*/
public function getSchemas()
{
return $this->source->getSchemas();
}
/**
* {@inheritdoc}
*/
public function getTableNames($schema = null, $includeViews = false)
{
return $this->source->getTableNames($schema, $includeViews);
}
/**
* {@inheritdoc}
*/
public function getTable($tableName, $schema = null)
{
return $this->source->getTable($tableName, $schema);
}
/**
* {@inheritdoc}
*/
public function getViewNames($schema = null)
{
return $this->source->getViewNames($schema);
}
/**
* {@inheritdoc}
*/
public function getView($viewName, $schema = null)
{
return $this->source->getView($viewName, $schema);
}
/**
* {@inheritdoc}
*/
public function getTriggerNames($schema = null)
{
return $this->source->getTriggerNames($schema);
}
/**
* {@inheritdoc}
*/
public function getTrigger($triggerName, $schema = null)
{
return $this->source->getTrigger($triggerName, $schema);
}
/**
* {@inheritdoc}
*/
public function getColumnNames($table, $schema = null)
{
return $this->source->getColumnNames($table, $schema);
}
/**
* {@inheritdoc}
*/
public function getColumn($columnName, $table, $schema = null)
{
return $this->source->getColumn($columnName, $table, $schema);
}
}

View File

@ -1,153 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Metadata;
interface MetadataInterface
{
/**
* Get schemas.
*
* @return string[]
*/
public function getSchemas();
/**
* Get table names.
*
* @param null|string $schema
* @param bool $includeViews
* @return string[]
*/
public function getTableNames($schema = null, $includeViews = false);
/**
* Get tables.
*
* @param null|string $schema
* @param bool $includeViews
* @return Object\TableObject[]
*/
public function getTables($schema = null, $includeViews = false);
/**
* Get table
*
* @param string $tableName
* @param null|string $schema
* @return Object\TableObject
*/
public function getTable($tableName, $schema = null);
/**
* Get view names
*
* @param null|string $schema
* @return string[]
*/
public function getViewNames($schema = null);
/**
* Get views
*
* @param null|string $schema
* @return Object\ViewObject[]
*/
public function getViews($schema = null);
/**
* Get view
*
* @param string $viewName
* @param null|string $schema
* @return Object\ViewObject
*/
public function getView($viewName, $schema = null);
/**
* Get column names
*
* @param string $table
* @param null|string $schema
* @return string[]
*/
public function getColumnNames($table, $schema = null);
/**
* Get columns
*
* @param string $table
* @param null|string $schema
* @return Object\ColumnObject[]
*/
public function getColumns($table, $schema = null);
/**
* Get column
*
* @param string $columnName
* @param string $table
* @param null|string $schema
* @return Object\ColumnObject
*/
public function getColumn($columnName, $table, $schema = null);
/**
* Get constraints
*
* @param string $table
* @param null|string $schema
* @return Object\ConstraintObject[]
*/
public function getConstraints($table, $schema = null);
/**
* Get constraint
*
* @param string $constraintName
* @param string $table
* @param null|string $schema
* @return Object\ConstraintObject
*/
public function getConstraint($constraintName, $table, $schema = null);
/**
* Get constraint keys
*
* @param string $constraint
* @param string $table
* @param null|string $schema
* @return Object\ConstraintKeyObject[]
*/
public function getConstraintKeys($constraint, $table, $schema = null);
/**
* Get trigger names
*
* @param null|string $schema
* @return string[]
*/
public function getTriggerNames($schema = null);
/**
* Get triggers
*
* @param null|string $schema
* @return Object\TriggerObject[]
*/
public function getTriggers($schema = null);
/**
* Get trigger
*
* @param string $triggerName
* @param null|string $schema
* @return Object\TriggerObject
*/
public function getTrigger($triggerName, $schema = null);
}

View File

@ -1,113 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Metadata\Object;
abstract class AbstractTableObject
{
/*
protected $catalogName = null;
protected $schemaName = null;
*/
/**
*
* @var string
*/
protected $name = null;
/**
*
* @var string
*/
protected $type = null;
/**
*
* @var array
*/
protected $columns = null;
/**
*
* @var array
*/
protected $constraints = null;
/**
* Constructor
*
* @param string $name
*/
public function __construct($name)
{
if ($name) {
$this->setName($name);
}
}
/**
* Set columns
*
* @param array $columns
*/
public function setColumns(array $columns)
{
$this->columns = $columns;
}
/**
* Get columns
*
* @return array
*/
public function getColumns()
{
return $this->columns;
}
/**
* Set constraints
*
* @param array $constraints
*/
public function setConstraints($constraints)
{
$this->constraints = $constraints;
}
/**
* Get constraints
*
* @return array
*/
public function getConstraints()
{
return $this->constraints;
}
/**
* Set name
*
* @param string $name
*/
public function setName($name)
{
$this->name = $name;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
}

View File

@ -1,387 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Metadata\Object;
class ColumnObject
{
/**
*
* @var string
*/
protected $name = null;
/**
*
* @var string
*/
protected $tableName = null;
/**
*
* @var string
*/
protected $schemaName = null;
/**
*
* @var
*/
protected $ordinalPosition = null;
/**
*
* @var string
*/
protected $columnDefault = null;
/**
*
* @var bool
*/
protected $isNullable = null;
/**
*
* @var string
*/
protected $dataType = null;
/**
*
* @var int
*/
protected $characterMaximumLength = null;
/**
*
* @var int
*/
protected $characterOctetLength = null;
/**
*
* @var int
*/
protected $numericPrecision = null;
/**
*
* @var int
*/
protected $numericScale = null;
/**
*
* @var bool
*/
protected $numericUnsigned = null;
/**
*
* @var array
*/
protected $errata = [];
/**
* Constructor
*
* @param string $name
* @param string $tableName
* @param string $schemaName
*/
public function __construct($name, $tableName, $schemaName = null)
{
$this->setName($name);
$this->setTableName($tableName);
$this->setSchemaName($schemaName);
}
/**
* Set name
*
* @param string $name
*/
public function setName($name)
{
$this->name = $name;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Get table name
*
* @return string
*/
public function getTableName()
{
return $this->tableName;
}
/**
* Set table name
*
* @param string $tableName
* @return self Provides a fluent interface
*/
public function setTableName($tableName)
{
$this->tableName = $tableName;
return $this;
}
/**
* Set schema name
*
* @param string $schemaName
*/
public function setSchemaName($schemaName)
{
$this->schemaName = $schemaName;
}
/**
* Get schema name
*
* @return string
*/
public function getSchemaName()
{
return $this->schemaName;
}
/**
* @return int $ordinalPosition
*/
public function getOrdinalPosition()
{
return $this->ordinalPosition;
}
/**
* @param int $ordinalPosition to set
* @return self Provides a fluent interface
*/
public function setOrdinalPosition($ordinalPosition)
{
$this->ordinalPosition = $ordinalPosition;
return $this;
}
/**
* @return null|string the $columnDefault
*/
public function getColumnDefault()
{
return $this->columnDefault;
}
/**
* @param mixed $columnDefault to set
* @return self Provides a fluent interface
*/
public function setColumnDefault($columnDefault)
{
$this->columnDefault = $columnDefault;
return $this;
}
/**
* @return bool $isNullable
*/
public function getIsNullable()
{
return $this->isNullable;
}
/**
* @param bool $isNullable to set
* @return self Provides a fluent interface
*/
public function setIsNullable($isNullable)
{
$this->isNullable = $isNullable;
return $this;
}
/**
* @return bool $isNullable
*/
public function isNullable()
{
return $this->isNullable;
}
/**
* @return null|string the $dataType
*/
public function getDataType()
{
return $this->dataType;
}
/**
* @param string $dataType the $dataType to set
* @return self Provides a fluent interface
*/
public function setDataType($dataType)
{
$this->dataType = $dataType;
return $this;
}
/**
* @return int|null the $characterMaximumLength
*/
public function getCharacterMaximumLength()
{
return $this->characterMaximumLength;
}
/**
* @param int $characterMaximumLength the $characterMaximumLength to set
* @return self Provides a fluent interface
*/
public function setCharacterMaximumLength($characterMaximumLength)
{
$this->characterMaximumLength = $characterMaximumLength;
return $this;
}
/**
* @return int|null the $characterOctetLength
*/
public function getCharacterOctetLength()
{
return $this->characterOctetLength;
}
/**
* @param int $characterOctetLength the $characterOctetLength to set
* @return self Provides a fluent interface
*/
public function setCharacterOctetLength($characterOctetLength)
{
$this->characterOctetLength = $characterOctetLength;
return $this;
}
/**
* @return int the $numericPrecision
*/
public function getNumericPrecision()
{
return $this->numericPrecision;
}
/**
* @param int $numericPrecision the $numericPrevision to set
* @return self Provides a fluent interface
*/
public function setNumericPrecision($numericPrecision)
{
$this->numericPrecision = $numericPrecision;
return $this;
}
/**
* @return int the $numericScale
*/
public function getNumericScale()
{
return $this->numericScale;
}
/**
* @param int $numericScale the $numericScale to set
* @return self Provides a fluent interface
*/
public function setNumericScale($numericScale)
{
$this->numericScale = $numericScale;
return $this;
}
/**
* @return bool
*/
public function getNumericUnsigned()
{
return $this->numericUnsigned;
}
/**
* @param bool $numericUnsigned
* @return self Provides a fluent interface
*/
public function setNumericUnsigned($numericUnsigned)
{
$this->numericUnsigned = $numericUnsigned;
return $this;
}
/**
* @return bool
*/
public function isNumericUnsigned()
{
return $this->numericUnsigned;
}
/**
* @return array the $errata
*/
public function getErratas()
{
return $this->errata;
}
/**
* @param array $erratas
* @return self Provides a fluent interface
*/
public function setErratas(array $erratas)
{
foreach ($erratas as $name => $value) {
$this->setErrata($name, $value);
}
return $this;
}
/**
* @param string $errataName
* @return mixed
*/
public function getErrata($errataName)
{
if (array_key_exists($errataName, $this->errata)) {
return $this->errata[$errataName];
}
return;
}
/**
* @param string $errataName
* @param mixed $errataValue
* @return self Provides a fluent interface
*/
public function setErrata($errataName, $errataValue)
{
$this->errata[$errataName] = $errataValue;
return $this;
}
}

View File

@ -1,248 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-db for the canonical source repository
* @copyright https://github.com/laminas/laminas-db/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-db/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Db\Metadata\Object;
class ConstraintKeyObject
{
const FK_CASCADE = 'CASCADE';
const FK_SET_NULL = 'SET NULL';
const FK_NO_ACTION = 'NO ACTION';
const FK_RESTRICT = 'RESTRICT';
const FK_SET_DEFAULT = 'SET DEFAULT';
/**
*
* @var string
*/
protected $columnName = null;
/**
*
* @var int
*/
protected $ordinalPosition = null;
/**
*
* @var bool
*/
protected $positionInUniqueConstraint = null;
/**
*
* @var string
*/
protected $referencedTableSchema = null;
/**
*
* @var string
*/
protected $referencedTableName = null;
/**
*
* @var string
*/
protected $referencedColumnName = null;
/**
*
* @var string
*/
protected $foreignKeyUpdateRule = null;
/**
*
* @var string
*/
protected $foreignKeyDeleteRule = null;
/**
* Constructor
*
* @param string $column
*/
public function __construct($column)
{
$this->setColumnName($column);
}
/**
* Get column name
*
* @return string
*/
public function getColumnName()
{
return $this->columnName;
}
/**
* Set column name
*
* @param string $columnName
* @return self Provides a fluent interface
*/
public function setColumnName($columnName)
{
$this->columnName = $columnName;
return $this;
}
/**
* Get ordinal position
*
* @return int
*/
public function getOrdinalPosition()
{
return $this->ordinalPosition;
}
/**
* Set ordinal position
*
* @param int $ordinalPosition
* @return self Provides a fluent interface
*/
public function setOrdinalPosition($ordinalPosition)
{
$this->ordinalPosition = $ordinalPosition;
return $this;
}
/**
* Get position in unique constraint
*
* @return bool
*/
public function getPositionInUniqueConstraint()
{
return $this->positionInUniqueConstraint;
}
/**
* Set position in unique constraint
*
* @param bool $positionInUniqueConstraint
* @return self Provides a fluent interface
*/
public function setPositionInUniqueConstraint($positionInUniqueConstraint)
{
$this->positionInUniqueConstraint = $positionInUniqueConstraint;
return $this;
}
/**
* Get referencred table schema
*
* @return string
*/
public function getReferencedTableSchema()
{
return $this->referencedTableSchema;
}
/**
* Set referenced table schema
*
* @param string $referencedTableSchema
* @return self Provides a fluent interface
*/
public function setReferencedTableSchema($referencedTableSchema)
{
$this->referencedTableSchema = $referencedTableSchema;
return $this;
}
/**
* Get referenced table name
*
* @return string
*/
public function getReferencedTableName()
{
return $this->referencedTableName;
}
/**
* Set Referenced table name
*
* @param string $referencedTableName
* @return self Provides a fluent interface
*/
public function setReferencedTableName($referencedTableName)
{
$this->referencedTableName = $referencedTableName;
return $this;
}
/**
* Get referenced column name
*
* @return string
*/
public function getReferencedColumnName()
{
return $this->referencedColumnName;
}
/**
* Set referenced column name
*
* @param string $referencedColumnName
* @return self Provides a fluent interface
*/
public function setReferencedColumnName($referencedColumnName)
{
$this->referencedColumnName = $referencedColumnName;
return $this;
}
/**
* set foreign key update rule
*
* @param string $foreignKeyUpdateRule
*/
public function setForeignKeyUpdateRule($foreignKeyUpdateRule)
{
$this->foreignKeyUpdateRule = $foreignKeyUpdateRule;
}
/**
* Get foreign key update rule
*
* @return string
*/
public function getForeignKeyUpdateRule()
{
return $this->foreignKeyUpdateRule;
}
/**
* Set foreign key delete rule
*
* @param string $foreignKeyDeleteRule
*/
public function setForeignKeyDeleteRule($foreignKeyDeleteRule)
{
$this->foreignKeyDeleteRule = $foreignKeyDeleteRule;
}
/**
* get foreign key delete rule
*
* @return string
*/
public function getForeignKeyDeleteRule()
{
return $this->foreignKeyDeleteRule;
}
}

Some files were not shown because too many files have changed in this diff Show More