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:
parent
717282a58a
commit
7e48e041a2
@ -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;
|
||||
|
381
bundled-libs/composer/InstalledVersions.php.orig
Normal file
381
bundled-libs/composer/InstalledVersions.php.orig
Normal 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;
|
||||
}
|
||||
}
|
381
bundled-libs/composer/InstalledVersions_BACKUP_19645.php
Normal file
381
bundled-libs/composer/InstalledVersions_BACKUP_19645.php
Normal 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;
|
||||
}
|
||||
}
|
326
bundled-libs/composer/InstalledVersions_LOCAL_19645.php
Normal file
326
bundled-libs/composer/InstalledVersions_LOCAL_19645.php
Normal 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;
|
||||
}
|
||||
}
|
367
bundled-libs/composer/InstalledVersions_REMOTE_19645.php
Normal file
367
bundled-libs/composer/InstalledVersions_REMOTE_19645.php
Normal 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;
|
||||
}
|
||||
}
|
@ -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',
|
||||
|
@ -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',
|
||||
);
|
@ -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'),
|
||||
);
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
80
bundled-libs/composer/autoload_real.php.orig
Normal file
80
bundled-libs/composer/autoload_real.php.orig
Normal 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;
|
||||
}
|
||||
}
|
@ -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',
|
||||
|
384
bundled-libs/composer/autoload_static.php.orig
Normal file
384
bundled-libs/composer/autoload_static.php.orig
Normal 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);
|
||||
}
|
||||
}
|
@ -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",
|
||||
|
602
bundled-libs/composer/installed.json.orig
Normal file
602
bundled-libs/composer/installed.json.orig
Normal 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": []
|
||||
}
|
@ -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',
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
122
bundled-libs/composer/installed.php.orig
Normal file
122
bundled-libs/composer/installed.php.orig
Normal 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
|
||||
),
|
||||
);
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"extensions": [
|
||||
"pdo-mysql",
|
||||
"pdo-pgsql",
|
||||
"pdo-sqlite",
|
||||
"mysqli",
|
||||
"pgsql",
|
||||
"sqlite3"
|
||||
]
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
CREATE USER 'gha'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'gha'@'%';
|
||||
FLUSH PRIVILEGES;
|
@ -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>
|
||||
|
@ -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
|
@ -1 +0,0 @@
|
||||
Copyright (c) 2020 Laminas Project a Series of LF Projects, LLC. (https://getlaminas.org/)
|
@ -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.
|
@ -1,11 +0,0 @@
|
||||
# laminas-db
|
||||
|
||||
[](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/
|
@ -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"
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
@ -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();
|
||||
}
|
@ -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();
|
||||
}
|
@ -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);
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
@ -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 >= 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 >= 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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
};
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
};
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
};
|
||||
}
|
||||
}
|
@ -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);
|
||||
};
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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, ' '));
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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 >= 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);
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
@ -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'];
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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
|
||||
{
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
@ -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
|
||||
{
|
||||
}
|
@ -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
|
||||
{
|
||||
}
|
@ -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
|
||||
{
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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
|
||||
{
|
||||
}
|
@ -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
|
||||
{
|
||||
}
|
@ -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
|
||||
{
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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 '.';
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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") . "'";
|
||||
}
|
||||
}
|
@ -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 = []);
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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") . '\'';
|
||||
}
|
||||
}
|
@ -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) . '\'';
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
@ -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();
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
@ -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,
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
@ -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
|
||||
{
|
||||
}
|
@ -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
|
||||
{
|
||||
}
|
@ -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
|
||||
{
|
||||
}
|
@ -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
|
||||
{
|
||||
}
|
@ -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
|
||||
{
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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
Loading…
x
Reference in New Issue
Block a user