Compare commits
394 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 31fcc6a338 | |||
| ff1fd8d8fa | |||
| 0d74b79a48 | |||
| ad0a3ce298 | |||
| 0a5d857fd4 | |||
| d7d91cd94b | |||
| 443ffc5039 | |||
| 9a60f9a494 | |||
| 1b162d33a8 | |||
| d2a7784073 | |||
| 07272ec3c6 | |||
| eb38547a24 | |||
| 01aa046fc4 | |||
| 91c8ee2d8d | |||
| fa69a788a8 | |||
| 8d8aa4ce66 | |||
| 34f52d1aae | |||
| 18a6904d5d | |||
| 0d5a29416c | |||
| 1170363a29 | |||
| 6e4d16d149 | |||
| aacf8e7f2f | |||
| 2bad6efd9c | |||
| b547042af4 | |||
| 5dd3385c48 | |||
| e8bb99752f | |||
| 323860150d | |||
| c416ea82d3 | |||
| ef79ef260b | |||
| e0d87c88cf | |||
| 137ca00367 | |||
| 62380a3086 | |||
| 330cab353e | |||
| 325c608139 | |||
| a96fe8040a | |||
| 8852792674 | |||
| 91a14c3dc7 | |||
| 4ecf52d10f | |||
| 7fe104ed40 | |||
| 7f1f5729c8 | |||
| 50ccdce46c | |||
| 20de7bd442 | |||
| e293bc18f3 | |||
| 1fc5076112 | |||
| bb483dcadc | |||
| 8dbf85aacd | |||
| 5ccb3cba67 | |||
| f4d5a76add | |||
| 8b8d8bf2c5 | |||
| 8d1dd2994c | |||
| c53b612421 | |||
| bd6c9e79c9 | |||
| 730f4c080a | |||
| 42f93ee27a | |||
| 5f488e97cf | |||
| e2044472c2 | |||
| ae4e91f095 | |||
| 56f17439a1 | |||
| a8e919961b | |||
| d2fb86fc2f | |||
| 0590b97c67 | |||
| 9090de5605 | |||
| cd96ca66c7 | |||
| 9b758e84db | |||
| e448d1c384 | |||
| 28c199c7aa | |||
| 9f4153dbc4 | |||
| 17786592e7 | |||
| ed24403d36 | |||
| cbca20a535 | |||
| d28b15381c | |||
| 561a86b385 | |||
| c00ed46789 | |||
| 05c3fa71eb | |||
| 4cab1db38d | |||
| 46e8cc96b3 | |||
| fd9edae13c | |||
| 40e44fd455 | |||
| 60f5277435 | |||
| 814c681587 | |||
| 67aa8f801b | |||
| 74713a0337 | |||
| 25cfb97ece | |||
| 20539b92d4 | |||
| 4c246ad426 | |||
| 24c02da747 | |||
| 3d1c264ccd | |||
| 0303eec81e | |||
| ef27f70b3d | |||
| a6162b6e04 | |||
| a6ca0d7fe5 | |||
| cb258fa3a8 | |||
| ab9962a1f8 | |||
| 7900062aa3 | |||
| b2707b81ae | |||
| 4e98879295 | |||
| 5013d583f2 | |||
| 395d018908 | |||
| f996065a89 | |||
| ec70938faf | |||
| e2682dbd79 | |||
| 95b0211f0b | |||
| 38354fcad5 | |||
| 9784fda858 | |||
| 2a5d0e3ad4 | |||
| 90dd334327 | |||
| 7e48e041a2 | |||
| 717282a58a | |||
| 05f58f90d7 | |||
| 26aecdf06e | |||
| 11526604e1 | |||
| 6909411452 | |||
| 6e71da985f | |||
| d1e040b7ec | |||
| 1fcb77427e | |||
| df6d80f328 | |||
| a3253a0d55 | |||
| 5e78cba223 | |||
| 302960b786 | |||
| b886a6a66c | |||
| 48211e27b1 | |||
| 0a4911566c | |||
| 0c84f10b7c | |||
| 2261e112eb | |||
| a32bb4f2ee | |||
| 21a4448d33 | |||
| b36ad0f14f | |||
| 5396ef3ff5 | |||
| bfc7d135a4 | |||
| f03ab03a55 | |||
| d817c67682 | |||
| e07d08e60d | |||
| 690b6def49 | |||
| 7f3d7e4017 | |||
| 471292ac1a | |||
| 75352e8565 | |||
| 391a372a55 | |||
| 9ac2504f4f | |||
| 0ef188187d | |||
| 0f2a6791d0 | |||
| c162094fb3 | |||
| b6e36ec128 | |||
| f7d0e4530c | |||
| 54efde550e | |||
| b546ea3d4c | |||
| 674319b36b | |||
| 931e621549 | |||
| 80be37ca8d | |||
| 11d903efdb | |||
| 4ef3a8f0bb | |||
| 37cd0c3808 | |||
| cb4530f83c | |||
| bd3a9ec832 | |||
| 626aac6335 | |||
| 3e82e948b1 | |||
| e05739dd5c | |||
| e1bda89dc0 | |||
| 26c402ec5c | |||
| db08637624 | |||
| 712b958c21 | |||
| dafaae8db0 | |||
| 3d975cd562 | |||
| 6b4b1bda18 | |||
| bba9792011 | |||
| 65e1007ca1 | |||
| b6f582774a | |||
| 6036d62d82 | |||
| ac6c2d5269 | |||
| e893914c7c | |||
| 17761c6214 | |||
| 2be8e6ba2a | |||
| 5d67e35f24 | |||
| cb5e99013e | |||
| 0ad7691634 | |||
| 40bae4f5b2 | |||
| 0def9e991f | |||
| 0409717586 | |||
| 9f0af1f275 | |||
| 8e24108b88 | |||
| 0cf227f335 | |||
| bf8f1aafa5 | |||
| 6b6f8138f0 | |||
| 695055f50c | |||
| 8b5655ce92 | |||
| 1aec803a23 | |||
| 3bc302fbcf | |||
| a3007dd5f9 | |||
| dd455ae507 | |||
| 5ec1754434 | |||
| 7e98987b5a | |||
| e9f0864c8c | |||
| 24debf1b9e | |||
| 4db384f926 | |||
| c479e1c9d2 | |||
| e1291fb54a | |||
| 2b6a1a6a3b | |||
| 906239faa1 | |||
| 4df3ca647f | |||
| 1032bd9725 | |||
| 7bfa899cc3 | |||
| c1afdc5a78 | |||
| 7064657783 | |||
| 507ede701a | |||
| e60dd8dd2d | |||
| a80a57b780 | |||
| 9cff057209 | |||
| 928f220c5a | |||
| c694fb0f45 | |||
| b2b1de66b6 | |||
| f32be57fb5 | |||
| a3f39396c6 | |||
| 0d7f55e616 | |||
| bb021db228 | |||
| 9b65e717c1 | |||
| 93ba22c8d4 | |||
| 6522f043cf | |||
| 4010d57d28 | |||
| aff7f2ed9c | |||
| e288d7e43e | |||
| 0fc509a50b | |||
| c89d7f92f6 | |||
| 5ca9da9a56 | |||
| de29be7287 | |||
| b718cf7726 | |||
| 261bac42f1 | |||
| 53694e2691 | |||
| ded855f096 | |||
| 52952ffe36 | |||
| 5adf3cda02 | |||
| bb02319553 | |||
| 2bbf459118 | |||
| 51448ddcae | |||
| d690a751d3 | |||
| 57cbaaa58b | |||
| 7bd1f3567e | |||
| 4ee1066b89 | |||
| 1b6840d98e | |||
| 3148e44f87 | |||
| 7ca42f379f | |||
| 382c785725 | |||
| fd8dcd3882 | |||
| e792a8d913 | |||
| 21c3b0d83f | |||
| 0b2d6bf931 | |||
| 90be45004b | |||
| 2ccb43a271 | |||
| fd49846aa1 | |||
| 837c58cf6d | |||
| ce7fa80f4b | |||
| 18ab57b76b | |||
| 1c95c173a2 | |||
| b12c098bd0 | |||
| d179f1b154 | |||
| f576501737 | |||
| fd6daca381 | |||
| 8c702769e4 | |||
| 04a3d34176 | |||
| a3a48fd4f5 | |||
| 8a1ab31a66 | |||
| be422b5e83 | |||
| af036ca58d | |||
| a6f9ec1638 | |||
| 945b73dc34 | |||
| c6800d5fc3 | |||
| 3ac81b91ca | |||
| fa17e0709c | |||
| 8b27a56209 | |||
| b15a453165 | |||
| 05fe0a3526 | |||
| 3680a119c3 | |||
| d255ff0d2d | |||
| bbcab1f324 | |||
| f40cd076c5 | |||
| cf30889d45 | |||
| 599aeef3b6 | |||
| b718637794 | |||
| 9254609ff4 | |||
| da4985f543 | |||
| 2a58548bd3 | |||
| 98944d8b14 | |||
| bf59bca988 | |||
| 1ed4b9e7ec | |||
| ed778d7199 | |||
| b2cebf04ac | |||
| bd70590359 | |||
| 9dd182b24c | |||
| f0e4b54243 | |||
| 137330fd5b | |||
| 756f520d71 | |||
| 60d2937c17 | |||
| 4d770c9cc6 | |||
| c26ece4240 | |||
| 375d96fb36 | |||
| a946c80ac1 | |||
| 9c03f27e6f | |||
| 2b82d111f0 | |||
| 4d06475491 | |||
| 8d0cd12b39 | |||
| 7a59338971 | |||
| 01c87b771a | |||
| 42a6649474 | |||
| c9e03912ed | |||
| 694a677553 | |||
| 92653a1dec | |||
| 8c399f2147 | |||
| aa1f3b533d | |||
| d75e311077 | |||
| 0193f8a314 | |||
| 5c4c11f0b4 | |||
| f9d43d20a3 | |||
| 1dcde41b53 | |||
| b4f0b35a5d | |||
| 6a268e2b5f | |||
| 27703c5482 | |||
| cbbebf01c6 | |||
| 348f5fbc12 | |||
| ea371f6a4e | |||
| 5b35569e73 | |||
| f7c20f0e82 | |||
| 502b837dd6 | |||
| b10bbcc2e1 | |||
| 5765d1a779 | |||
| f4d07960bb | |||
| 9b6a8f6c87 | |||
| 722a4ef4c4 | |||
| 00832cbca8 | |||
| 9867d70fac | |||
| f3341f19b4 | |||
| 27fd525706 | |||
| b614ed5d07 | |||
| e8b8be0342 | |||
| 5241f2d6ab | |||
| fa8e77c130 | |||
| 464c1319ad | |||
| 23eb937793 | |||
| 7ab1cf9091 | |||
| 5ccaa9a855 | |||
| febbb55371 | |||
| a8344876e6 | |||
| 6737384bbf | |||
| f86fd35c13 | |||
| 07a241798d | |||
| ecd3c9fa0b | |||
| dd46e39884 | |||
| 573fefc8e2 | |||
| b944d76ee7 | |||
| 9ae7ec779d | |||
| 2d7c9a0db2 | |||
| 75a6309fe3 | |||
| c32b692b1b | |||
| f85608e3ce | |||
| 77905d991d | |||
| f8f40d27a4 | |||
| 0805014761 | |||
| 3730e77ddf | |||
| 3d0410bacd | |||
| 4327c432a5 | |||
| d2ad092763 | |||
| 9c66269fce | |||
| 770e0eb2fd | |||
| b2aef47e05 | |||
| 8941fe6563 | |||
| cee38e55ab | |||
| 0b58fe42f2 | |||
| f8110dbe86 | |||
| 12bb9c0cc0 | |||
| 6253c03ad9 | |||
| ebb852d400 | |||
| 42d57bb1c2 | |||
| 2f9b8e23b8 | |||
| d9b3333556 | |||
| 78fc6e2bc3 | |||
| f4d47812a5 | |||
| 221bd4a4c7 | |||
| c35ed7be34 | |||
| 648f07f97d | |||
| f10dfd2521 | |||
| 39887190da | |||
| 36330c7cbe | |||
| 69241156bf | |||
| 4e88c875d8 | |||
| 0bd0260fa7 | |||
| 53f63342c6 | |||
| 35cd41d4ef | |||
| 8ff2ac0ae7 | |||
| f3482e1bf3 | |||
| f2e6fb772f | |||
| 9999a5b0e1 | |||
| 6cee25afdc | |||
| 074a63b696 | |||
| 7f14a9c78e | |||
| 132f161d48 | |||
| ae3f768bb7 | |||
| 5abbf1c32a |
@@ -22,3 +22,4 @@ DEADJOE
|
||||
.editorconfig
|
||||
*.git
|
||||
tests/phpunit.xml
|
||||
vagrant/*
|
||||
|
||||
+49
-1
@@ -1,3 +1,51 @@
|
||||
# Serendipity - A reliable, secure & extensible PHP blog
|
||||
|
||||
[Serendipity](https://s9y.org) is a PHP-powered weblog engine which gives the user an easy way to maintain a blog. While the default package is designed for the casual blogger, Serendipity offers an expandable framework with the power for professional applications.
|
||||
[Serendipity](https://s9y.org) is a PHP-powered weblog engine that gives the user an easy way to maintain a blog. While the default package is designed for the casual blogger, Serendipity offers an expandable framework with the power for professional applications.
|
||||
|
||||

|
||||
|
||||
## Installation
|
||||
|
||||
On most hosters, everything needed to run Serendipity should already be installed. If you install it on your custom server, install PHP >= 7.0, MySQL/MariaDB, PostgreSQL or SQLite, and Apache. Imagemagick is also useful. Upload the files from [a release archive](https://github.com/s9y/Serendipity/releases) to your webroot and visit your URL to start the installer.
|
||||
|
||||
For more details, please consult [the manual](https://docs.s9y.org/docs/users/getting-started/fresh-installation.html).
|
||||
|
||||
## Features
|
||||
|
||||
By default, Serendipity includes:
|
||||
|
||||
1. An editor to write blog entries
|
||||
1. Support for trackbacks and pingbacks
|
||||
1. A media library to upload images, videos and other files and add them into entries
|
||||
1. Integrated anti-spam measures
|
||||
1. A collection of themes that can be selected in the backend
|
||||
1. A plugin management interface
|
||||
1. Categories that can be applied to written blog entries
|
||||
1. Groups and user management
|
||||
|
||||
Via plugins, additional functionality can easily be added. Some popular plugins add
|
||||
|
||||
1. Support for static pages, transforming Serendipity in a small CMS
|
||||
1. Additional anti-spam features
|
||||
1. Tags, in addition to categories
|
||||
1. Markup languages like Markdown and Textile
|
||||
|
||||
Plugins can be added in the backend plugin interface without the need to manually upload files.
|
||||
|
||||
## Support
|
||||
|
||||
The website contains helpful [documentation](https://docs.s9y.org/docs/index.html) that might answer your questions.
|
||||
|
||||
Please visit [the forums](https://board.s9y.org/) for additional questions and discussions. If you are more comfortable with Github or the questions are more code related, you can also [open an issue](https://github.com/s9y). Please keep the [Code of Conduct](https://docs.s9y.org/docs/contributing/code-of-conduct.html) in mind when doing so.
|
||||
|
||||
You can also join us in [the Gitter channel](https://gitter.im/s9y/lobby) to get help from other users or developers.
|
||||
|
||||
## Development
|
||||
|
||||
Serendipity is developed by an independent and open [team](https://docs.s9y.org/team.html). Current development focus in on carefully modernizing the software while staying backwards compatible. If you want to contribute changes, you can send in a pull request and we will work with you to bring the changes into the software. Do that a few times and we will offer you to join the team to get direct access to the repository.
|
||||
|
||||
If you want to request features, you can open a thread [in the forum](https://board.s9y.org/) or open an issue on Github instead. Much of the development of Serendipity is user driven, feature requests are welcome.
|
||||
|
||||
Join us in [the Gitter channel](https://gitter.im/s9y/lobby) to discuss with other developers.
|
||||
|
||||
The [license of this project](https://github.com/s9y/Serendipity/blob/master/LICENSE) is the BSD 3-Clause license. It's a permissive license allowing free usage of the code and derived projects, including commercial and closed source usage.
|
||||
|
||||
@@ -303,6 +303,16 @@ class Cache_Lite
|
||||
$this->setOption('cacheDir', sys_get_temp_dir() . DIRECTORY_SEPARATOR);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* PHP4 constructor for backwards compatibility with older code
|
||||
*
|
||||
* @param array $options Options
|
||||
*/
|
||||
function Cache_Lite($options = array(NULL))
|
||||
{
|
||||
self::__construct($options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generic way to set a Cache_Lite option
|
||||
@@ -698,8 +708,10 @@ class Cache_Lite
|
||||
$this->_touchCacheFile();
|
||||
$this->_memoryCachingArray[$this->_file] = $data;
|
||||
if ($this->_memoryCachingCounter >= $this->_memoryCachingLimit) {
|
||||
list($key, ) = each($this->_memoryCachingArray);
|
||||
$key = key($this->_memoryCachingArray);
|
||||
next($this->_memoryCachingArray);
|
||||
unset($this->_memoryCachingArray[$key]);
|
||||
|
||||
} else {
|
||||
$this->_memoryCachingCounter = $this->_memoryCachingCounter + 1;
|
||||
}
|
||||
@@ -744,7 +756,7 @@ class Cache_Lite
|
||||
if ($this->_fileLocking) @flock($fp, LOCK_SH);
|
||||
clearstatcache();
|
||||
$length = @filesize($this->_file);
|
||||
$mqr = get_magic_quotes_runtime();
|
||||
$mqr = (function_exists('get_magic_quotes_runtime') ? @get_magic_quotes_runtime() : 0);
|
||||
if ($mqr) {
|
||||
set_magic_quotes_runtime(0);
|
||||
}
|
||||
@@ -823,7 +835,7 @@ class Cache_Lite
|
||||
if ($this->_readControl) {
|
||||
@fwrite($fp, $this->_hash($data, $this->_readControlType), 32);
|
||||
}
|
||||
$mqr = get_magic_quotes_runtime();
|
||||
$mqr = (function_exists('get_magic_quotes_runtime') ? @get_magic_quotes_runtime() : 0);
|
||||
if ($mqr) {
|
||||
set_magic_quotes_runtime(0);
|
||||
}
|
||||
|
||||
@@ -65,6 +65,16 @@ class Cache_Lite_File extends Cache_Lite
|
||||
return $this->raiseError('Cache_Lite_File : Unable to read masterFile : '.$this->_masterFile, -3);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* PHP4 constructor for backwards compatibility with older code
|
||||
*
|
||||
* @param array $options Options
|
||||
*/
|
||||
function Cache_Lite_File($options = array(NULL))
|
||||
{
|
||||
self::__construct($options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if a cache is available and (if yes) return it
|
||||
|
||||
@@ -84,7 +84,7 @@ class Cache_Lite_Function extends Cache_Lite
|
||||
function __construct($options = array(NULL))
|
||||
{
|
||||
$availableOptions = array('debugCacheLiteFunction', 'defaultGroup', 'dontCacheWhenTheOutputContainsNOCACHE', 'dontCacheWhenTheResultIsFalse', 'dontCacheWhenTheResultIsNull');
|
||||
while (list($name, $value) = each($options)) {
|
||||
foreach ($options as $name => $value) {
|
||||
if (in_array($name, $availableOptions)) {
|
||||
$property = '_'.$name;
|
||||
$this->$property = $value;
|
||||
@@ -94,6 +94,16 @@ class Cache_Lite_Function extends Cache_Lite
|
||||
parent::__construct($options);
|
||||
}
|
||||
|
||||
/**
|
||||
* PHP4 constructor for backwards compatibility with older code
|
||||
*
|
||||
* @param array $options Options
|
||||
*/
|
||||
function Cache_Lite_Function($options = array(NULL))
|
||||
{
|
||||
self::__construct($options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls a cacheable function or method (or not if there is already a cache for it)
|
||||
*
|
||||
|
||||
@@ -31,6 +31,16 @@ class Cache_Lite_Output extends Cache_Lite
|
||||
parent::__construct($options);
|
||||
}
|
||||
|
||||
/**
|
||||
* PHP4 constructor for backwards compatibility with older code
|
||||
*
|
||||
* @param array $options Options
|
||||
*/
|
||||
function Cache_Lite_Output($options = array(NULL))
|
||||
{
|
||||
self::__construct($options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Start the cache
|
||||
*
|
||||
|
||||
@@ -0,0 +1,456 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker: */
|
||||
/**
|
||||
* PEAR_Exception
|
||||
*
|
||||
* PHP version 5
|
||||
*
|
||||
* @category PEAR
|
||||
* @package PEAR_Exception
|
||||
* @author Tomas V. V. Cox <cox@idecnet.com>
|
||||
* @author Hans Lellelid <hans@velum.net>
|
||||
* @author Bertrand Mansion <bmansion@mamasam.com>
|
||||
* @author Greg Beaver <cellog@php.net>
|
||||
* @copyright 1997-2009 The Authors
|
||||
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
||||
* @link http://pear.php.net/package/PEAR_Exception
|
||||
* @since File available since Release 1.0.0
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Base PEAR_Exception Class
|
||||
*
|
||||
* 1) Features:
|
||||
*
|
||||
* - Nestable exceptions (throw new PEAR_Exception($msg, $prev_exception))
|
||||
* - Definable triggers, shot when exceptions occur
|
||||
* - Pretty and informative error messages
|
||||
* - Added more context info available (like class, method or cause)
|
||||
* - cause can be a PEAR_Exception or an array of mixed
|
||||
* PEAR_Exceptions/PEAR_ErrorStack warnings
|
||||
* - callbacks for specific exception classes and their children
|
||||
*
|
||||
* 2) Ideas:
|
||||
*
|
||||
* - Maybe a way to define a 'template' for the output
|
||||
*
|
||||
* 3) Inherited properties from PHP Exception Class:
|
||||
*
|
||||
* protected $message
|
||||
* protected $code
|
||||
* protected $line
|
||||
* protected $file
|
||||
* private $trace
|
||||
*
|
||||
* 4) Inherited methods from PHP Exception Class:
|
||||
*
|
||||
* __clone
|
||||
* __construct
|
||||
* getMessage
|
||||
* getCode
|
||||
* getFile
|
||||
* getLine
|
||||
* getTraceSafe
|
||||
* getTraceSafeAsString
|
||||
* __toString
|
||||
*
|
||||
* 5) Usage example
|
||||
*
|
||||
* <code>
|
||||
* require_once 'PEAR/Exception.php';
|
||||
*
|
||||
* class Test {
|
||||
* function foo() {
|
||||
* throw new PEAR_Exception('Error Message', ERROR_CODE);
|
||||
* }
|
||||
* }
|
||||
*
|
||||
* function myLogger($pear_exception) {
|
||||
* echo $pear_exception->getMessage();
|
||||
* }
|
||||
* // each time a exception is thrown the 'myLogger' will be called
|
||||
* // (its use is completely optional)
|
||||
* PEAR_Exception::addObserver('myLogger');
|
||||
* $test = new Test;
|
||||
* try {
|
||||
* $test->foo();
|
||||
* } catch (PEAR_Exception $e) {
|
||||
* print $e;
|
||||
* }
|
||||
* </code>
|
||||
*
|
||||
* @category PEAR
|
||||
* @package PEAR_Exception
|
||||
* @author Tomas V.V.Cox <cox@idecnet.com>
|
||||
* @author Hans Lellelid <hans@velum.net>
|
||||
* @author Bertrand Mansion <bmansion@mamasam.com>
|
||||
* @author Greg Beaver <cellog@php.net>
|
||||
* @copyright 1997-2009 The Authors
|
||||
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
||||
* @version Release: @package_version@
|
||||
* @link http://pear.php.net/package/PEAR_Exception
|
||||
* @since Class available since Release 1.0.0
|
||||
*/
|
||||
class PEAR_Exception extends Exception
|
||||
{
|
||||
const OBSERVER_PRINT = -2;
|
||||
const OBSERVER_TRIGGER = -4;
|
||||
const OBSERVER_DIE = -8;
|
||||
protected $cause;
|
||||
private static $_observers = array();
|
||||
private static $_uniqueid = 0;
|
||||
private $_trace;
|
||||
|
||||
/**
|
||||
* Supported signatures:
|
||||
* - PEAR_Exception(string $message);
|
||||
* - PEAR_Exception(string $message, int $code);
|
||||
* - PEAR_Exception(string $message, Exception $cause);
|
||||
* - PEAR_Exception(string $message, Exception $cause, int $code);
|
||||
* - PEAR_Exception(string $message, PEAR_Error $cause);
|
||||
* - PEAR_Exception(string $message, PEAR_Error $cause, int $code);
|
||||
* - PEAR_Exception(string $message, array $causes);
|
||||
* - PEAR_Exception(string $message, array $causes, int $code);
|
||||
*
|
||||
* @param string $message exception message
|
||||
* @param int|Exception|PEAR_Error|array|null $p2 exception cause
|
||||
* @param int|null $p3 exception code or null
|
||||
*/
|
||||
public function __construct($message, $p2 = null, $p3 = null)
|
||||
{
|
||||
if (is_int($p2)) {
|
||||
$code = $p2;
|
||||
$this->cause = null;
|
||||
} elseif (is_object($p2) || is_array($p2)) {
|
||||
// using is_object allows both Exception and PEAR_Error
|
||||
if (is_object($p2) && !($p2 instanceof Exception)) {
|
||||
if (!class_exists('PEAR_Error') || !($p2 instanceof PEAR_Error)) {
|
||||
throw new PEAR_Exception(
|
||||
'exception cause must be Exception, ' .
|
||||
'array, or PEAR_Error'
|
||||
);
|
||||
}
|
||||
}
|
||||
$code = $p3;
|
||||
if (is_array($p2) && isset($p2['message'])) {
|
||||
// fix potential problem of passing in a single warning
|
||||
$p2 = array($p2);
|
||||
}
|
||||
$this->cause = $p2;
|
||||
} else {
|
||||
$code = null;
|
||||
$this->cause = null;
|
||||
}
|
||||
parent::__construct($message, $code);
|
||||
$this->signal();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an exception observer
|
||||
*
|
||||
* @param mixed $callback - A valid php callback, see php func is_callable()
|
||||
* - A PEAR_Exception::OBSERVER_* constant
|
||||
* - An array(const PEAR_Exception::OBSERVER_*,
|
||||
* mixed $options)
|
||||
* @param string $label The name of the observer. Use this if you want
|
||||
* to remove it later with removeObserver()
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function addObserver($callback, $label = 'default')
|
||||
{
|
||||
self::$_observers[$label] = $callback;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove an exception observer
|
||||
*
|
||||
* @param string $label Name of the observer
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function removeObserver($label = 'default')
|
||||
{
|
||||
unset(self::$_observers[$label]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a unique ID for an observer
|
||||
*
|
||||
* @return int unique identifier for an observer
|
||||
*/
|
||||
public static function getUniqueId()
|
||||
{
|
||||
return self::$_uniqueid++;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a signal to all observers
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function signal()
|
||||
{
|
||||
foreach (self::$_observers as $func) {
|
||||
if (is_callable($func)) {
|
||||
call_user_func($func, $this);
|
||||
continue;
|
||||
}
|
||||
settype($func, 'array');
|
||||
switch ($func[0]) {
|
||||
case self::OBSERVER_PRINT :
|
||||
$f = (isset($func[1])) ? $func[1] : '%s';
|
||||
printf($f, $this->getMessage());
|
||||
break;
|
||||
case self::OBSERVER_TRIGGER :
|
||||
$f = (isset($func[1])) ? $func[1] : E_USER_NOTICE;
|
||||
trigger_error($this->getMessage(), $f);
|
||||
break;
|
||||
case self::OBSERVER_DIE :
|
||||
$f = (isset($func[1])) ? $func[1] : '%s';
|
||||
die(printf($f, $this->getMessage()));
|
||||
break;
|
||||
default:
|
||||
trigger_error('invalid observer type', E_USER_WARNING);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return specific error information that can be used for more detailed
|
||||
* error messages or translation.
|
||||
*
|
||||
* This method may be overridden in child exception classes in order
|
||||
* to add functionality not present in PEAR_Exception and is a placeholder
|
||||
* to define API
|
||||
*
|
||||
* The returned array must be an associative array of parameter => value like so:
|
||||
* <pre>
|
||||
* array('name' => $name, 'context' => array(...))
|
||||
* </pre>
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getErrorData()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the exception that caused this exception to be thrown
|
||||
*
|
||||
* @return Exception|array The context of the exception
|
||||
*/
|
||||
public function getCause()
|
||||
{
|
||||
return $this->cause;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function must be public to call on caused exceptions
|
||||
*
|
||||
* @param array $causes Array that gets filled.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function getCauseMessage(&$causes)
|
||||
{
|
||||
$trace = $this->getTraceSafe();
|
||||
$cause = array('class' => get_class($this),
|
||||
'message' => $this->message,
|
||||
'file' => 'unknown',
|
||||
'line' => 'unknown');
|
||||
if (isset($trace[0])) {
|
||||
if (isset($trace[0]['file'])) {
|
||||
$cause['file'] = $trace[0]['file'];
|
||||
$cause['line'] = $trace[0]['line'];
|
||||
}
|
||||
}
|
||||
$causes[] = $cause;
|
||||
if ($this->cause instanceof PEAR_Exception) {
|
||||
$this->cause->getCauseMessage($causes);
|
||||
} elseif ($this->cause instanceof Exception) {
|
||||
$causes[] = array('class' => get_class($this->cause),
|
||||
'message' => $this->cause->getMessage(),
|
||||
'file' => $this->cause->getFile(),
|
||||
'line' => $this->cause->getLine());
|
||||
} elseif (class_exists('PEAR_Error') && $this->cause instanceof PEAR_Error) {
|
||||
$causes[] = array('class' => get_class($this->cause),
|
||||
'message' => $this->cause->getMessage(),
|
||||
'file' => 'unknown',
|
||||
'line' => 'unknown');
|
||||
} elseif (is_array($this->cause)) {
|
||||
foreach ($this->cause as $cause) {
|
||||
if ($cause instanceof PEAR_Exception) {
|
||||
$cause->getCauseMessage($causes);
|
||||
} elseif ($cause instanceof Exception) {
|
||||
$causes[] = array('class' => get_class($cause),
|
||||
'message' => $cause->getMessage(),
|
||||
'file' => $cause->getFile(),
|
||||
'line' => $cause->getLine());
|
||||
} elseif (class_exists('PEAR_Error')
|
||||
&& $cause instanceof PEAR_Error
|
||||
) {
|
||||
$causes[] = array('class' => get_class($cause),
|
||||
'message' => $cause->getMessage(),
|
||||
'file' => 'unknown',
|
||||
'line' => 'unknown');
|
||||
} elseif (is_array($cause) && isset($cause['message'])) {
|
||||
// PEAR_ErrorStack warning
|
||||
$causes[] = array(
|
||||
'class' => $cause['package'],
|
||||
'message' => $cause['message'],
|
||||
'file' => isset($cause['context']['file']) ?
|
||||
$cause['context']['file'] :
|
||||
'unknown',
|
||||
'line' => isset($cause['context']['line']) ?
|
||||
$cause['context']['line'] :
|
||||
'unknown',
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Build a backtrace and return it
|
||||
*
|
||||
* @return array Backtrace
|
||||
*/
|
||||
public function getTraceSafe()
|
||||
{
|
||||
if (!isset($this->_trace)) {
|
||||
$this->_trace = $this->getTrace();
|
||||
if (empty($this->_trace)) {
|
||||
$backtrace = debug_backtrace();
|
||||
$this->_trace = array($backtrace[count($backtrace)-1]);
|
||||
}
|
||||
}
|
||||
return $this->_trace;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the first class of the backtrace
|
||||
*
|
||||
* @return string Class name
|
||||
*/
|
||||
public function getErrorClass()
|
||||
{
|
||||
$trace = $this->getTraceSafe();
|
||||
return $trace[0]['class'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the first method of the backtrace
|
||||
*
|
||||
* @return string Method/function name
|
||||
*/
|
||||
public function getErrorMethod()
|
||||
{
|
||||
$trace = $this->getTraceSafe();
|
||||
return $trace[0]['function'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts the exception to a string (HTML or plain text)
|
||||
*
|
||||
* @return string String representation
|
||||
*
|
||||
* @see toHtml()
|
||||
* @see toText()
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
if (isset($_SERVER['REQUEST_URI'])) {
|
||||
return $this->toHtml();
|
||||
}
|
||||
return $this->toText();
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a HTML representation of the exception
|
||||
*
|
||||
* @return string HTML code
|
||||
*/
|
||||
public function toHtml()
|
||||
{
|
||||
$trace = $this->getTraceSafe();
|
||||
$causes = array();
|
||||
$this->getCauseMessage($causes);
|
||||
$html = '<table style="border: 1px" cellspacing="0">' . "\n";
|
||||
foreach ($causes as $i => $cause) {
|
||||
$html .= '<tr><td colspan="3" style="background: #ff9999">'
|
||||
. str_repeat('-', $i) . ' <b>' . $cause['class'] . '</b>: '
|
||||
. htmlspecialchars($cause['message'])
|
||||
. ' in <b>' . $cause['file'] . '</b> '
|
||||
. 'on line <b>' . $cause['line'] . '</b>'
|
||||
. "</td></tr>\n";
|
||||
}
|
||||
$html .= '<tr><td colspan="3" style="background-color: #aaaaaa; text-align: center; font-weight: bold;">Exception trace</td></tr>' . "\n"
|
||||
. '<tr><td style="text-align: center; background: #cccccc; width:20px; font-weight: bold;">#</td>'
|
||||
. '<td style="text-align: center; background: #cccccc; font-weight: bold;">Function</td>'
|
||||
. '<td style="text-align: center; background: #cccccc; font-weight: bold;">Location</td></tr>' . "\n";
|
||||
|
||||
foreach ($trace as $k => $v) {
|
||||
$html .= '<tr><td style="text-align: center;">' . $k . '</td>'
|
||||
. '<td>';
|
||||
if (!empty($v['class'])) {
|
||||
$html .= $v['class'] . $v['type'];
|
||||
}
|
||||
$html .= $v['function'];
|
||||
$args = array();
|
||||
if (!empty($v['args'])) {
|
||||
foreach ($v['args'] as $arg) {
|
||||
if (is_null($arg)) {
|
||||
$args[] = 'null';
|
||||
} else if (is_array($arg)) {
|
||||
$args[] = 'Array';
|
||||
} else if (is_object($arg)) {
|
||||
$args[] = 'Object('.get_class($arg).')';
|
||||
} else if (is_bool($arg)) {
|
||||
$args[] = $arg ? 'true' : 'false';
|
||||
} else if (is_int($arg) || is_double($arg)) {
|
||||
$args[] = $arg;
|
||||
} else {
|
||||
$arg = (string)$arg;
|
||||
$str = htmlspecialchars(substr($arg, 0, 16));
|
||||
if (strlen($arg) > 16) {
|
||||
$str .= '…';
|
||||
}
|
||||
$args[] = "'" . $str . "'";
|
||||
}
|
||||
}
|
||||
}
|
||||
$html .= '(' . implode(', ', $args) . ')'
|
||||
. '</td>'
|
||||
. '<td>' . (isset($v['file']) ? $v['file'] : 'unknown')
|
||||
. ':' . (isset($v['line']) ? $v['line'] : 'unknown')
|
||||
. '</td></tr>' . "\n";
|
||||
}
|
||||
$html .= '<tr><td style="text-align: center;">' . ($k+1) . '</td>'
|
||||
. '<td>{main}</td>'
|
||||
. '<td> </td></tr>' . "\n"
|
||||
. '</table>';
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates text representation of the exception and stack trace
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function toText()
|
||||
{
|
||||
$causes = array();
|
||||
$this->getCauseMessage($causes);
|
||||
$causeMsg = '';
|
||||
foreach ($causes as $i => $cause) {
|
||||
$causeMsg .= str_repeat(' ', $i) . $cause['class'] . ': '
|
||||
. $cause['message'] . ' in ' . $cause['file']
|
||||
. ' on line ' . $cause['line'] . "\n";
|
||||
}
|
||||
return $causeMsg . $this->getTraceAsString();
|
||||
}
|
||||
}
|
||||
?>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,7 +3,7 @@ Smarty: the PHP compiling template engine
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
version 3.0 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
|
||||
@@ -35,13 +35,13 @@ Smarty 3.1.32
|
||||
will be treated now as literal. (This does apply for any number of delimiter repeatations).
|
||||
However {{foo}} is not an literal but will be interpreted as a recursive Smarty tag.
|
||||
If you use
|
||||
$smarty->setLiteral(array('{{','}}'));
|
||||
$smarty->setLiterals(array('{{','}}'));
|
||||
{{foo}} is now a literal as well.
|
||||
NOTE: In the last example nested Smarty tags starting with '{{' or ending with '}}' will not
|
||||
work any longer, but this should be very very raw occouring restriction.
|
||||
B) Example 2
|
||||
Assume your delimiter are '<-' , '->' and '<--' , '-->' shall be literals
|
||||
$smarty->setLiteral(array('<--','-->'));
|
||||
$smarty->setLiterals(array('<--','-->'));
|
||||
|
||||
|
||||
The capture buffers can now be accessed as array
|
||||
|
||||
@@ -1,11 +1,17 @@
|
||||
# Smarty 3 template engine
|
||||
[smarty.net](https://www.smarty.net/)
|
||||
|
||||
[](https://travis-ci.org/smarty-php/smarty)
|
||||
|
||||
## Documentation
|
||||
|
||||
For documentation see
|
||||
[www.smarty.net/docs/en/](https://www.smarty.net/docs/en/)
|
||||
|
||||
## Requirements
|
||||
|
||||
Smarty can be run with PHP 5.2 to PHP 7.4.
|
||||
|
||||
## Distribution repository
|
||||
|
||||
> Smarty 3.1.28 introduces run time template inheritance
|
||||
|
||||
@@ -30,13 +30,17 @@
|
||||
"php": ">=5.2"
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"libs/bootstrap.php"
|
||||
"classmap": [
|
||||
"libs/"
|
||||
]
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.1.x-dev"
|
||||
}
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^7.5 || ^6.5 || ^5.7 || ^4.8",
|
||||
"smarty/smarty-lexer": "^3.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,318 @@
|
||||
<?php
|
||||
/**
|
||||
* Smarty Internal Plugin Configfilelexer
|
||||
*
|
||||
* This is the lexer to break the config file source into tokens
|
||||
* @package Smarty
|
||||
* @subpackage Config
|
||||
* @author Uwe Tews
|
||||
*/
|
||||
/**
|
||||
* Smarty_Internal_Configfilelexer
|
||||
*
|
||||
* This is the config file lexer.
|
||||
* It is generated from the smarty_internal_configfilelexer.plex file
|
||||
*
|
||||
* @package Smarty
|
||||
* @subpackage Compiler
|
||||
* @author Uwe Tews
|
||||
*/
|
||||
class Smarty_Internal_Configfilelexer
|
||||
{
|
||||
/**
|
||||
* Source
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $data;
|
||||
/**
|
||||
* Source length
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $dataLength = null;
|
||||
/**
|
||||
* byte counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $counter;
|
||||
/**
|
||||
* token number
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $token;
|
||||
/**
|
||||
* token value
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $value;
|
||||
/**
|
||||
* current line
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $line;
|
||||
/**
|
||||
* state number
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $state = 1;
|
||||
/**
|
||||
* Smarty object
|
||||
*
|
||||
* @var Smarty
|
||||
*/
|
||||
public $smarty = null;
|
||||
/**
|
||||
* compiler object
|
||||
*
|
||||
* @var Smarty_Internal_Config_File_Compiler
|
||||
*/
|
||||
private $compiler = null;
|
||||
/**
|
||||
* copy of config_booleanize
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
private $configBooleanize = false;
|
||||
/**
|
||||
* trace file
|
||||
*
|
||||
* @var resource
|
||||
*/
|
||||
public $yyTraceFILE;
|
||||
/**
|
||||
* trace prompt
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $yyTracePrompt;
|
||||
/**
|
||||
* state names
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $state_name = array(1 => 'START', 2 => 'VALUE', 3 => 'NAKED_STRING_VALUE', 4 => 'COMMENT', 5 => 'SECTION', 6 => 'TRIPPLE');
|
||||
|
||||
/**
|
||||
* storage for assembled token patterns
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $yy_global_pattern1 = null;
|
||||
private $yy_global_pattern2 = null;
|
||||
private $yy_global_pattern3 = null;
|
||||
private $yy_global_pattern4 = null;
|
||||
private $yy_global_pattern5 = null;
|
||||
private $yy_global_pattern6 = null;
|
||||
|
||||
/**
|
||||
* token names
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $smarty_token_names = array( // Text for parser error messages
|
||||
);
|
||||
|
||||
/**
|
||||
* constructor
|
||||
*
|
||||
* @param string $data template source
|
||||
* @param Smarty_Internal_Config_File_Compiler $compiler
|
||||
*/
|
||||
public function __construct($data, Smarty_Internal_Config_File_Compiler $compiler)
|
||||
{
|
||||
$this->data = $data . "\n"; //now all lines are \n-terminated
|
||||
$this->dataLength = strlen($data);
|
||||
$this->counter = 0;
|
||||
if (preg_match('/^\xEF\xBB\xBF/', $this->data, $match)) {
|
||||
$this->counter += strlen($match[0]);
|
||||
}
|
||||
$this->line = 1;
|
||||
$this->compiler = $compiler;
|
||||
$this->smarty = $compiler->smarty;
|
||||
$this->configBooleanize = $this->smarty->config_booleanize;
|
||||
}
|
||||
|
||||
public function replace ($input) {
|
||||
return $input;
|
||||
}
|
||||
|
||||
public function PrintTrace()
|
||||
{
|
||||
$this->yyTraceFILE = fopen('php://output', 'w');
|
||||
$this->yyTracePrompt = '<br>';
|
||||
}
|
||||
|
||||
|
||||
/*!lex2php
|
||||
%input $this->data
|
||||
%counter $this->counter
|
||||
%token $this->token
|
||||
%value $this->value
|
||||
%line $this->line
|
||||
commentstart = /#|;/
|
||||
openB = /\[/
|
||||
closeB = /\]/
|
||||
section = /.*?(?=[\.=\[\]\r\n])/
|
||||
equal = /=/
|
||||
whitespace = /[ \t\r]+/
|
||||
dot = /\./
|
||||
id = /[0-9]*[a-zA-Z_]\w*/
|
||||
newline = /\n/
|
||||
single_quoted_string = /'[^'\\]*(?:\\.[^'\\]*)*'(?=[ \t\r]*[\n#;])/
|
||||
double_quoted_string = /"[^"\\]*(?:\\.[^"\\]*)*"(?=[ \t\r]*[\n#;])/
|
||||
tripple_quotes = /"""/
|
||||
tripple_quotes_end = /"""(?=[ \t\r]*[\n#;])/
|
||||
text = /[\S\s]/
|
||||
float = /\d+\.\d+(?=[ \t\r]*[\n#;])/
|
||||
int = /\d+(?=[ \t\r]*[\n#;])/
|
||||
maybe_bool = /[a-zA-Z]+(?=[ \t\r]*[\n#;])/
|
||||
naked_string = /[^\n]+?(?=[ \t\r]*\n)/
|
||||
*/
|
||||
|
||||
/*!lex2php
|
||||
%statename START
|
||||
|
||||
commentstart {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_COMMENTSTART;
|
||||
$this->yypushstate(self::COMMENT);
|
||||
}
|
||||
openB {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_OPENB;
|
||||
$this->yypushstate(self::SECTION);
|
||||
}
|
||||
closeB {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_CLOSEB;
|
||||
}
|
||||
equal {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_EQUAL;
|
||||
$this->yypushstate(self::VALUE);
|
||||
}
|
||||
whitespace {
|
||||
return false;
|
||||
}
|
||||
newline {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_NEWLINE;
|
||||
}
|
||||
id {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_ID;
|
||||
}
|
||||
text {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_OTHER;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
/*!lex2php
|
||||
%statename VALUE
|
||||
|
||||
whitespace {
|
||||
return false;
|
||||
}
|
||||
float {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_FLOAT;
|
||||
$this->yypopstate();
|
||||
}
|
||||
int {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_INT;
|
||||
$this->yypopstate();
|
||||
}
|
||||
tripple_quotes {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_QUOTES;
|
||||
$this->yypushstate(self::TRIPPLE);
|
||||
}
|
||||
single_quoted_string {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_SINGLE_QUOTED_STRING;
|
||||
$this->yypopstate();
|
||||
}
|
||||
double_quoted_string {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_DOUBLE_QUOTED_STRING;
|
||||
$this->yypopstate();
|
||||
}
|
||||
maybe_bool {
|
||||
if (!$this->configBooleanize || !in_array(strtolower($this->value), array('true', 'false', 'on', 'off', 'yes', 'no')) ) {
|
||||
$this->yypopstate();
|
||||
$this->yypushstate(self::NAKED_STRING_VALUE);
|
||||
return true; //reprocess in new state
|
||||
} else {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_BOOL;
|
||||
$this->yypopstate();
|
||||
}
|
||||
}
|
||||
naked_string {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING;
|
||||
$this->yypopstate();
|
||||
}
|
||||
newline {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING;
|
||||
$this->value = '';
|
||||
$this->yypopstate();
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
/*!lex2php
|
||||
%statename NAKED_STRING_VALUE
|
||||
|
||||
naked_string {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING;
|
||||
$this->yypopstate();
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
/*!lex2php
|
||||
%statename COMMENT
|
||||
|
||||
whitespace {
|
||||
return false;
|
||||
}
|
||||
naked_string {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING;
|
||||
}
|
||||
newline {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_NEWLINE;
|
||||
$this->yypopstate();
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
/*!lex2php
|
||||
%statename SECTION
|
||||
|
||||
dot {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_DOT;
|
||||
}
|
||||
section {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_SECTION;
|
||||
$this->yypopstate();
|
||||
}
|
||||
|
||||
*/
|
||||
/*!lex2php
|
||||
%statename TRIPPLE
|
||||
|
||||
tripple_quotes_end {
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_QUOTES_END;
|
||||
$this->yypopstate();
|
||||
$this->yypushstate(self::START);
|
||||
}
|
||||
text {
|
||||
$to = strlen($this->data);
|
||||
preg_match("/\"\"\"[ \t\r]*[\n#;]/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter);
|
||||
if (isset($match[0][1])) {
|
||||
$to = $match[0][1];
|
||||
} else {
|
||||
$this->compiler->trigger_config_file_error ('missing or misspelled literal closing tag');
|
||||
}
|
||||
$this->value = substr($this->data,$this->counter,$to-$this->counter);
|
||||
$this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_TEXT;
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
@@ -0,0 +1,346 @@
|
||||
/**
|
||||
* Smarty Internal Plugin Configfileparser
|
||||
*
|
||||
* This is the config file parser
|
||||
*
|
||||
*
|
||||
* @package Smarty
|
||||
* @subpackage Config
|
||||
* @author Uwe Tews
|
||||
*/
|
||||
%name TPC_
|
||||
%declare_class {
|
||||
/**
|
||||
* Smarty Internal Plugin Configfileparse
|
||||
*
|
||||
* This is the config file parser.
|
||||
* It is generated from the smarty_internal_configfileparser.y file
|
||||
* @package Smarty
|
||||
* @subpackage Compiler
|
||||
* @author Uwe Tews
|
||||
*/
|
||||
class Smarty_Internal_Configfileparser
|
||||
}
|
||||
%include_class
|
||||
{
|
||||
/**
|
||||
* result status
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
public $successful = true;
|
||||
/**
|
||||
* return value
|
||||
*
|
||||
* @var mixed
|
||||
*/
|
||||
public $retvalue = 0;
|
||||
/**
|
||||
* @var
|
||||
*/
|
||||
public $yymajor;
|
||||
/**
|
||||
* lexer object
|
||||
*
|
||||
* @var Smarty_Internal_Configfilelexer
|
||||
*/
|
||||
private $lex;
|
||||
/**
|
||||
* internal error flag
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
private $internalError = false;
|
||||
/**
|
||||
* compiler object
|
||||
*
|
||||
* @var Smarty_Internal_Config_File_Compiler
|
||||
*/
|
||||
public $compiler = null;
|
||||
/**
|
||||
* smarty object
|
||||
*
|
||||
* @var Smarty
|
||||
*/
|
||||
public $smarty = null;
|
||||
/**
|
||||
* copy of config_overwrite property
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
private $configOverwrite = false;
|
||||
/**
|
||||
* copy of config_read_hidden property
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
private $configReadHidden = false;
|
||||
/**
|
||||
* helper map
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $escapes_single = array('\\' => '\\',
|
||||
'\'' => '\'');
|
||||
|
||||
/**
|
||||
* constructor
|
||||
*
|
||||
* @param Smarty_Internal_Configfilelexer $lex
|
||||
* @param Smarty_Internal_Config_File_Compiler $compiler
|
||||
*/
|
||||
public function __construct(Smarty_Internal_Configfilelexer $lex, Smarty_Internal_Config_File_Compiler $compiler)
|
||||
{
|
||||
$this->lex = $lex;
|
||||
$this->smarty = $compiler->smarty;
|
||||
$this->compiler = $compiler;
|
||||
$this->configOverwrite = $this->smarty->config_overwrite;
|
||||
$this->configReadHidden = $this->smarty->config_read_hidden;
|
||||
}
|
||||
|
||||
/**
|
||||
* parse optional boolean keywords
|
||||
*
|
||||
* @param string $str
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function parse_bool($str)
|
||||
{
|
||||
$str = strtolower($str);
|
||||
if (in_array($str, array('on', 'yes', 'true'))) {
|
||||
$res = true;
|
||||
} else {
|
||||
$res = false;
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* parse single quoted string
|
||||
* remove outer quotes
|
||||
* unescape inner quotes
|
||||
*
|
||||
* @param string $qstr
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private static function parse_single_quoted_string($qstr)
|
||||
{
|
||||
$escaped_string = substr($qstr, 1, strlen($qstr) - 2); //remove outer quotes
|
||||
|
||||
$ss = preg_split('/(\\\\.)/', $escaped_string, - 1, PREG_SPLIT_DELIM_CAPTURE);
|
||||
|
||||
$str = '';
|
||||
foreach ($ss as $s) {
|
||||
if (strlen($s) === 2 && $s[0] === '\\') {
|
||||
if (isset(self::$escapes_single[$s[1]])) {
|
||||
$s = self::$escapes_single[$s[1]];
|
||||
}
|
||||
}
|
||||
$str .= $s;
|
||||
}
|
||||
return $str;
|
||||
}
|
||||
|
||||
/**
|
||||
* parse double quoted string
|
||||
*
|
||||
* @param string $qstr
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private static function parse_double_quoted_string($qstr)
|
||||
{
|
||||
$inner_str = substr($qstr, 1, strlen($qstr) - 2);
|
||||
return stripcslashes($inner_str);
|
||||
}
|
||||
|
||||
/**
|
||||
* parse triple quoted string
|
||||
*
|
||||
* @param string $qstr
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private static function parse_tripple_double_quoted_string($qstr)
|
||||
{
|
||||
return stripcslashes($qstr);
|
||||
}
|
||||
|
||||
/**
|
||||
* set a config variable in target array
|
||||
*
|
||||
* @param array $var
|
||||
* @param array $target_array
|
||||
*/
|
||||
private function set_var(array $var, array &$target_array)
|
||||
{
|
||||
$key = $var['key'];
|
||||
$value = $var['value'];
|
||||
|
||||
if ($this->configOverwrite || !isset($target_array['vars'][$key])) {
|
||||
$target_array['vars'][$key] = $value;
|
||||
} else {
|
||||
settype($target_array['vars'][$key], 'array');
|
||||
$target_array['vars'][$key][] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* add config variable to global vars
|
||||
*
|
||||
* @param array $vars
|
||||
*/
|
||||
private function add_global_vars(array $vars)
|
||||
{
|
||||
if (!isset($this->compiler->config_data['vars'])) {
|
||||
$this->compiler->config_data['vars'] = array();
|
||||
}
|
||||
foreach ($vars as $var) {
|
||||
$this->set_var($var, $this->compiler->config_data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* add config variable to section
|
||||
*
|
||||
* @param string $section_name
|
||||
* @param array $vars
|
||||
*/
|
||||
private function add_section_vars($section_name, array $vars)
|
||||
{
|
||||
if (!isset($this->compiler->config_data['sections'][$section_name]['vars'])) {
|
||||
$this->compiler->config_data['sections'][$section_name]['vars'] = array();
|
||||
}
|
||||
foreach ($vars as $var) {
|
||||
$this->set_var($var, $this->compiler->config_data['sections'][$section_name]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
%token_prefix TPC_
|
||||
|
||||
%parse_accept
|
||||
{
|
||||
$this->successful = !$this->internalError;
|
||||
$this->internalError = false;
|
||||
$this->retvalue = $this->_retvalue;
|
||||
}
|
||||
|
||||
%syntax_error
|
||||
{
|
||||
$this->internalError = true;
|
||||
$this->yymajor = $yymajor;
|
||||
$this->compiler->trigger_config_file_error();
|
||||
}
|
||||
|
||||
%stack_overflow
|
||||
{
|
||||
$this->internalError = true;
|
||||
$this->compiler->trigger_config_file_error('Stack overflow in configfile parser');
|
||||
}
|
||||
|
||||
// Complete config file
|
||||
start(res) ::= global_vars sections. {
|
||||
res = null;
|
||||
}
|
||||
|
||||
// Global vars
|
||||
global_vars(res) ::= var_list(vl). {
|
||||
$this->add_global_vars(vl);
|
||||
res = null;
|
||||
}
|
||||
|
||||
// Sections
|
||||
sections(res) ::= sections section. {
|
||||
res = null;
|
||||
}
|
||||
|
||||
sections(res) ::= . {
|
||||
res = null;
|
||||
}
|
||||
|
||||
section(res) ::= OPENB SECTION(i) CLOSEB newline var_list(vars). {
|
||||
$this->add_section_vars(i, vars);
|
||||
res = null;
|
||||
}
|
||||
|
||||
section(res) ::= OPENB DOT SECTION(i) CLOSEB newline var_list(vars). {
|
||||
if ($this->configReadHidden) {
|
||||
$this->add_section_vars(i, vars);
|
||||
}
|
||||
res = null;
|
||||
}
|
||||
|
||||
// Var list
|
||||
var_list(res) ::= var_list(vl) newline. {
|
||||
res = vl;
|
||||
}
|
||||
|
||||
var_list(res) ::= var_list(vl) var(v). {
|
||||
res = array_merge(vl, array(v));
|
||||
}
|
||||
|
||||
var_list(res) ::= . {
|
||||
res = array();
|
||||
}
|
||||
|
||||
|
||||
// Var
|
||||
var(res) ::= ID(id) EQUAL value(v). {
|
||||
res = array('key' => id, 'value' => v);
|
||||
}
|
||||
|
||||
|
||||
value(res) ::= FLOAT(i). {
|
||||
res = (float) i;
|
||||
}
|
||||
|
||||
value(res) ::= INT(i). {
|
||||
res = (int) i;
|
||||
}
|
||||
|
||||
value(res) ::= BOOL(i). {
|
||||
res = $this->parse_bool(i);
|
||||
}
|
||||
|
||||
value(res) ::= SINGLE_QUOTED_STRING(i). {
|
||||
res = self::parse_single_quoted_string(i);
|
||||
}
|
||||
|
||||
value(res) ::= DOUBLE_QUOTED_STRING(i). {
|
||||
res = self::parse_double_quoted_string(i);
|
||||
}
|
||||
|
||||
value(res) ::= TRIPPLE_QUOTES(i) TRIPPLE_TEXT(c) TRIPPLE_QUOTES_END(ii). {
|
||||
res = self::parse_tripple_double_quoted_string(c);
|
||||
}
|
||||
|
||||
value(res) ::= TRIPPLE_QUOTES(i) TRIPPLE_QUOTES_END(ii). {
|
||||
res = '';
|
||||
}
|
||||
|
||||
value(res) ::= NAKED_STRING(i). {
|
||||
res = i;
|
||||
}
|
||||
|
||||
// NOTE: this is not a valid rule
|
||||
// It is added hier to produce a usefull error message on a missing '=';
|
||||
value(res) ::= OTHER(i). {
|
||||
res = i;
|
||||
}
|
||||
|
||||
|
||||
// Newline and comments
|
||||
newline(res) ::= NEWLINE. {
|
||||
res = null;
|
||||
}
|
||||
|
||||
newline(res) ::= COMMENTSTART NEWLINE. {
|
||||
res = null;
|
||||
}
|
||||
|
||||
newline(res) ::= COMMENTSTART NAKED_STRING NEWLINE. {
|
||||
res = null;
|
||||
}
|
||||
@@ -0,0 +1,696 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of Smarty.
|
||||
*
|
||||
* (c) 2015 Uwe Tews
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Smarty_Internal_Templatelexer
|
||||
* This is the template file lexer.
|
||||
* It is generated from the smarty_internal_templatelexer.plex file
|
||||
*
|
||||
*
|
||||
* @author Uwe Tews <uwe.tews@googlemail.com>
|
||||
*/
|
||||
class Smarty_Internal_Templatelexer
|
||||
{
|
||||
/**
|
||||
* Source
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $data;
|
||||
|
||||
/**
|
||||
* Source length
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $dataLength = null;
|
||||
|
||||
/**
|
||||
* byte counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $counter;
|
||||
|
||||
/**
|
||||
* token number
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $token;
|
||||
|
||||
/**
|
||||
* token value
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $value;
|
||||
|
||||
/**
|
||||
* current line
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $line;
|
||||
|
||||
/**
|
||||
* tag start line
|
||||
*
|
||||
* @var
|
||||
*/
|
||||
public $taglineno;
|
||||
|
||||
/**
|
||||
* php code type
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $phpType = '';
|
||||
|
||||
/**
|
||||
* state number
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $state = 1;
|
||||
|
||||
/**
|
||||
* Smarty object
|
||||
*
|
||||
* @var Smarty
|
||||
*/
|
||||
public $smarty = null;
|
||||
|
||||
/**
|
||||
* compiler object
|
||||
*
|
||||
* @var Smarty_Internal_TemplateCompilerBase
|
||||
*/
|
||||
public $compiler = null;
|
||||
|
||||
/**
|
||||
* trace file
|
||||
*
|
||||
* @var resource
|
||||
*/
|
||||
public $yyTraceFILE;
|
||||
|
||||
/**
|
||||
* trace prompt
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $yyTracePrompt;
|
||||
|
||||
/**
|
||||
* XML flag true while processing xml
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
public $is_xml = false;
|
||||
|
||||
/**
|
||||
* state names
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $state_name = array(1 => 'TEXT', 2 => 'TAG', 3 => 'TAGBODY', 4 => 'LITERAL', 5 => 'DOUBLEQUOTEDSTRING',);
|
||||
|
||||
/**
|
||||
* token names
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $smarty_token_names = array( // Text for parser error messages
|
||||
'NOT' => '(!,not)',
|
||||
'OPENP' => '(',
|
||||
'CLOSEP' => ')',
|
||||
'OPENB' => '[',
|
||||
'CLOSEB' => ']',
|
||||
'PTR' => '->',
|
||||
'APTR' => '=>',
|
||||
'EQUAL' => '=',
|
||||
'NUMBER' => 'number',
|
||||
'UNIMATH' => '+" , "-',
|
||||
'MATH' => '*" , "/" , "%',
|
||||
'INCDEC' => '++" , "--',
|
||||
'SPACE' => ' ',
|
||||
'DOLLAR' => '$',
|
||||
'SEMICOLON' => ';',
|
||||
'COLON' => ':',
|
||||
'DOUBLECOLON' => '::',
|
||||
'AT' => '@',
|
||||
'HATCH' => '#',
|
||||
'QUOTE' => '"',
|
||||
'BACKTICK' => '`',
|
||||
'VERT' => '"|" modifier',
|
||||
'DOT' => '.',
|
||||
'COMMA' => '","',
|
||||
'QMARK' => '"?"',
|
||||
'ID' => 'id, name',
|
||||
'TEXT' => 'text',
|
||||
'LDELSLASH' => '{/..} closing tag',
|
||||
'LDEL' => '{...} Smarty tag',
|
||||
'COMMENT' => 'comment',
|
||||
'AS' => 'as',
|
||||
'TO' => 'to',
|
||||
'PHP' => '"<?php", "<%", "{php}" tag',
|
||||
'LOGOP' => '"<", "==" ... logical operator',
|
||||
'TLOGOP' => '"lt", "eq" ... logical operator; "is div by" ... if condition',
|
||||
'SCOND' => '"is even" ... if condition',
|
||||
);
|
||||
|
||||
/**
|
||||
* literal tag nesting level
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
private $literal_cnt = 0;
|
||||
|
||||
/**
|
||||
* preg token pattern for state TEXT
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $yy_global_pattern1 = null;
|
||||
|
||||
/**
|
||||
* preg token pattern for state TAG
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $yy_global_pattern2 = null;
|
||||
|
||||
/**
|
||||
* preg token pattern for state TAGBODY
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $yy_global_pattern3 = null;
|
||||
|
||||
/**
|
||||
* preg token pattern for state LITERAL
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $yy_global_pattern4 = null;
|
||||
|
||||
/**
|
||||
* preg token pattern for state DOUBLEQUOTEDSTRING
|
||||
*
|
||||
* @var null
|
||||
*/
|
||||
private $yy_global_pattern5 = null;
|
||||
|
||||
/**
|
||||
* preg token pattern for text
|
||||
*
|
||||
* @var null
|
||||
*/
|
||||
private $yy_global_text = null;
|
||||
|
||||
/**
|
||||
* preg token pattern for literal
|
||||
*
|
||||
* @var null
|
||||
*/
|
||||
private $yy_global_literal = null;
|
||||
|
||||
/**
|
||||
* constructor
|
||||
*
|
||||
* @param string $source template source
|
||||
* @param Smarty_Internal_TemplateCompilerBase $compiler
|
||||
*/
|
||||
public function __construct($source, Smarty_Internal_TemplateCompilerBase $compiler)
|
||||
{
|
||||
$this->data = $source;
|
||||
$this->dataLength = strlen($this->data);
|
||||
$this->counter = 0;
|
||||
if (preg_match('/^\xEF\xBB\xBF/i', $this->data, $match)) {
|
||||
$this->counter += strlen($match[0]);
|
||||
}
|
||||
$this->line = 1;
|
||||
$this->smarty = $compiler->template->smarty;
|
||||
$this->compiler = $compiler;
|
||||
$this->compiler->initDelimiterPreg();
|
||||
$this->smarty_token_names['LDEL'] = $this->smarty->getLeftDelimiter();
|
||||
$this->smarty_token_names['RDEL'] = $this->smarty->getRightDelimiter();
|
||||
}
|
||||
|
||||
/**
|
||||
* open lexer/parser trace file
|
||||
*
|
||||
*/
|
||||
public function PrintTrace()
|
||||
{
|
||||
$this->yyTraceFILE = fopen('php://output', 'w');
|
||||
$this->yyTracePrompt = '<br>';
|
||||
}
|
||||
|
||||
/**
|
||||
* replace placeholders with runtime preg code
|
||||
*
|
||||
* @param string $preg
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function replace($preg)
|
||||
{
|
||||
return $this->compiler->replaceDelimiter($preg);
|
||||
}
|
||||
|
||||
/**
|
||||
* check if current value is an autoliteral left delimiter
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isAutoLiteral()
|
||||
{
|
||||
return $this->smarty->getAutoLiteral() && isset($this->value[ $this->compiler->getLdelLength() ]) ?
|
||||
strpos(" \n\t\r", $this->value[ $this->compiler->getLdelLength() ]) !== false : false;
|
||||
}
|
||||
|
||||
/*!lex2php
|
||||
%input $this->data
|
||||
%counter $this->counter
|
||||
%token $this->token
|
||||
%value $this->value
|
||||
%line $this->line
|
||||
userliteral = ~(SMARTYldel)SMARTYautoliteral\s+SMARTYliteral~
|
||||
char = ~[\S\s]~
|
||||
textdoublequoted = ~([^"\\]*?)((?:\\.[^"\\]*?)*?)(?=((SMARTYldel)SMARTYal|\$|`\$|"SMARTYliteral))~
|
||||
namespace = ~([0-9]*[a-zA-Z_]\w*)?(\\[0-9]*[a-zA-Z_]\w*)+~
|
||||
emptyjava = ~[{][}]~
|
||||
phptag = ~(SMARTYldel)SMARTYalphp([ ].*?)?SMARTYrdel|(SMARTYldel)SMARTYal[/]phpSMARTYrdel~
|
||||
phpstart = ~[<][?]((php\s+|=)|\s+)|[<][%]|[<][?]xml\s+|[<]script\s+language\s*=\s*["']?\s*php\s*["']?\s*[>]|[?][>]|[%][>]~
|
||||
slash = ~[/]~
|
||||
ldel = ~(SMARTYldel)SMARTYal~
|
||||
rdel = ~\s*SMARTYrdel~
|
||||
nocacherdel = ~(\s+nocache)?\s*SMARTYrdel~
|
||||
smartyblockchildparent = ~[\$]smarty\.block\.(child|parent)~
|
||||
integer = ~\d+~
|
||||
hex = ~0[xX][0-9a-fA-F]+~
|
||||
math = ~\s*([*]{1,2}|[%/^&]|[<>]{2})\s*~
|
||||
comment = ~(SMARTYldel)SMARTYal[*]~
|
||||
incdec = ~([+]|[-]){2}~
|
||||
unimath = ~\s*([+]|[-])\s*~
|
||||
openP = ~\s*[(]\s*~
|
||||
closeP = ~\s*[)]~
|
||||
openB = ~\[\s*~
|
||||
closeB = ~\s*\]~
|
||||
dollar = ~[$]~
|
||||
dot = ~[.]~
|
||||
comma = ~\s*[,]\s*~
|
||||
doublecolon = ~[:]{2}~
|
||||
colon = ~\s*[:]\s*~
|
||||
at = ~[@]~
|
||||
hatch = ~[#]~
|
||||
semicolon = ~\s*[;]\s*~
|
||||
equal = ~\s*[=]\s*~
|
||||
space = ~\s+~
|
||||
ptr = ~\s*[-][>]\s*~
|
||||
aptr = ~\s*[=][>]\s*~
|
||||
singlequotestring = ~'[^'\\]*(?:\\.[^'\\]*)*'~
|
||||
backtick = ~[`]~
|
||||
vert = ~[|][@]?~
|
||||
qmark = ~\s*[?]\s*~
|
||||
constant = ~[_]+[A-Z0-9][0-9A-Z_]*|[A-Z][0-9A-Z_]*(?![0-9A-Z_]*[a-z])~
|
||||
attr = ~\s+[0-9]*[a-zA-Z_][a-zA-Z0-9_\-:]*\s*[=]\s*~
|
||||
id = ~[0-9]*[a-zA-Z_]\w*~
|
||||
literal = ~literal~
|
||||
strip = ~strip~
|
||||
lop = ~\s*([!=][=]{1,2}|[<][=>]?|[>][=]?|[&|]{2})\s*~
|
||||
slop = ~\s+(eq|ne|neq|gt|ge|gte|lt|le|lte|mod|and|or|xor)\s+~
|
||||
tlop = ~\s+is\s+(not\s+)?(odd|even|div)\s+by\s+~
|
||||
scond = ~\s+is\s+(not\s+)?(odd|even)~
|
||||
isin = ~\s+is\s+in\s+~
|
||||
as = ~\s+as\s+~
|
||||
to = ~\s+to\s+~
|
||||
step = ~\s+step\s+~
|
||||
if = ~(if|elseif|else if|while)\s+~
|
||||
for = ~for\s+~
|
||||
makenocache = ~make_nocache\s+~
|
||||
array = ~array~
|
||||
foreach = ~foreach(?![^\s])~
|
||||
setfilter = ~setfilter\s+~
|
||||
instanceof = ~\s+instanceof\s+~
|
||||
not = ~[!]\s*|not\s+~
|
||||
typecast = ~[(](int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)[)]\s*~
|
||||
double_quote = ~["]~
|
||||
*/
|
||||
/*!lex2php
|
||||
%statename TEXT
|
||||
emptyjava {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||
}
|
||||
comment {
|
||||
$to = $this->dataLength;
|
||||
preg_match("/[*]{$this->compiler->getRdelPreg()}[\n]?/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter);
|
||||
if (isset($match[0][1])) {
|
||||
$to = $match[0][1] + strlen($match[0][0]);
|
||||
} else {
|
||||
$this->compiler->trigger_template_error ("missing or misspelled comment closing tag '{$this->smarty->getRightDelimiter()}'");
|
||||
}
|
||||
$this->value = substr($this->data,$this->counter,$to-$this->counter);
|
||||
return false;
|
||||
}
|
||||
phptag {
|
||||
$this->compiler->getTagCompiler('private_php')->parsePhp($this);
|
||||
}
|
||||
userliteral {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||
}
|
||||
ldel literal rdel {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LITERALSTART;
|
||||
$this->yypushstate(self::LITERAL);
|
||||
}
|
||||
ldel slash literal rdel {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LITERALEND;
|
||||
$this->yypushstate(self::LITERAL);
|
||||
}
|
||||
ldel {
|
||||
$this->yypushstate(self::TAG);
|
||||
return true;
|
||||
}
|
||||
phpstart {
|
||||
$this->compiler->getTagCompiler('private_php')->parsePhp($this);
|
||||
}
|
||||
char {
|
||||
if (!isset($this->yy_global_text)) {
|
||||
$this->yy_global_text = $this->replace('/(SMARTYldel)SMARTYal|[<][?]((php\s+|=)|\s+)|[<][%]|[<][?]xml\s+|[<]script\s+language\s*=\s*["\']?\s*php\s*["\']?\s*[>]|[?][>]|[%][>]SMARTYliteral/isS');
|
||||
}
|
||||
$to = $this->dataLength;
|
||||
preg_match($this->yy_global_text, $this->data,$match,PREG_OFFSET_CAPTURE,$this->counter);
|
||||
if (isset($match[0][1])) {
|
||||
$to = $match[0][1];
|
||||
}
|
||||
$this->value = substr($this->data,$this->counter,$to-$this->counter);
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||
}
|
||||
*/
|
||||
/*!lex2php
|
||||
%statename TAG
|
||||
ldel if {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LDELIF;
|
||||
$this->yybegin(self::TAGBODY);
|
||||
$this->taglineno = $this->line;
|
||||
}
|
||||
ldel for {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LDELFOR;
|
||||
$this->yybegin(self::TAGBODY);
|
||||
$this->taglineno = $this->line;
|
||||
}
|
||||
ldel foreach {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH;
|
||||
$this->yybegin(self::TAGBODY);
|
||||
$this->taglineno = $this->line;
|
||||
}
|
||||
ldel setfilter {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LDELSETFILTER;
|
||||
$this->yybegin(self::TAGBODY);
|
||||
$this->taglineno = $this->line;
|
||||
}
|
||||
ldel makenocache {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LDELMAKENOCACHE;
|
||||
$this->yybegin(self::TAGBODY);
|
||||
$this->taglineno = $this->line;
|
||||
}
|
||||
ldel id nocacherdel {
|
||||
$this->yypopstate();
|
||||
$this->token = Smarty_Internal_Templateparser::TP_SIMPLETAG;
|
||||
$this->taglineno = $this->line;
|
||||
}
|
||||
ldel smartyblockchildparent rdel {
|
||||
$this->yypopstate();
|
||||
$this->token = Smarty_Internal_Templateparser::TP_SMARTYBLOCKCHILDPARENT;
|
||||
$this->taglineno = $this->line;
|
||||
}
|
||||
ldel slash id rdel {
|
||||
$this->yypopstate();
|
||||
$this->token = Smarty_Internal_Templateparser::TP_CLOSETAG;
|
||||
$this->taglineno = $this->line;
|
||||
}
|
||||
ldel dollar id nocacherdel {
|
||||
if ($this->_yy_stack[count($this->_yy_stack)-1] === self::TEXT) {
|
||||
$this->yypopstate();
|
||||
$this->token = Smarty_Internal_Templateparser::TP_SIMPELOUTPUT;
|
||||
$this->taglineno = $this->line;
|
||||
} else {
|
||||
$this->value = $this->smarty->getLeftDelimiter();
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LDEL;
|
||||
$this->yybegin(self::TAGBODY);
|
||||
$this->taglineno = $this->line;
|
||||
}
|
||||
}
|
||||
ldel slash {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
|
||||
$this->yybegin(self::TAGBODY);
|
||||
$this->taglineno = $this->line;
|
||||
}
|
||||
ldel {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LDEL;
|
||||
$this->yybegin(self::TAGBODY);
|
||||
$this->taglineno = $this->line;
|
||||
}
|
||||
*/
|
||||
/*!lex2php
|
||||
%statename TAGBODY
|
||||
rdel {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_RDEL;
|
||||
$this->yypopstate();
|
||||
}
|
||||
ldel {
|
||||
$this->yypushstate(self::TAG);
|
||||
return true;
|
||||
}
|
||||
double_quote {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_QUOTE;
|
||||
$this->yypushstate(self::DOUBLEQUOTEDSTRING);
|
||||
$this->compiler->enterDoubleQuote();
|
||||
}
|
||||
singlequotestring {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_SINGLEQUOTESTRING;
|
||||
}
|
||||
dollar id {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_DOLLARID;
|
||||
}
|
||||
dollar {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_DOLLAR;
|
||||
}
|
||||
isin {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_ISIN;
|
||||
}
|
||||
as {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_AS;
|
||||
}
|
||||
to {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TO;
|
||||
}
|
||||
step {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_STEP;
|
||||
}
|
||||
instanceof {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_INSTANCEOF;
|
||||
}
|
||||
lop {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LOGOP;
|
||||
}
|
||||
slop {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_SLOGOP;
|
||||
}
|
||||
tlop {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TLOGOP;
|
||||
}
|
||||
scond {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_SINGLECOND;
|
||||
}
|
||||
not{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_NOT;
|
||||
}
|
||||
typecast {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TYPECAST;
|
||||
}
|
||||
openP {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_OPENP;
|
||||
}
|
||||
closeP {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_CLOSEP;
|
||||
}
|
||||
openB {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_OPENB;
|
||||
}
|
||||
closeB {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_CLOSEB;
|
||||
}
|
||||
ptr {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_PTR;
|
||||
}
|
||||
aptr {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_APTR;
|
||||
}
|
||||
equal {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_EQUAL;
|
||||
}
|
||||
incdec {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_INCDEC;
|
||||
}
|
||||
unimath {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_UNIMATH;
|
||||
}
|
||||
math {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_MATH;
|
||||
}
|
||||
at {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_AT;
|
||||
}
|
||||
array openP {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_ARRAYOPEN;
|
||||
}
|
||||
hatch {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_HATCH;
|
||||
}
|
||||
attr {
|
||||
// resolve conflicts with shorttag and right_delimiter starting with '='
|
||||
if (substr($this->data, $this->counter + strlen($this->value) - 1, $this->compiler->getRdelLength()) === $this->smarty->getRightDelimiter()) {
|
||||
preg_match('/\s+/',$this->value,$match);
|
||||
$this->value = $match[0];
|
||||
$this->token = Smarty_Internal_Templateparser::TP_SPACE;
|
||||
} else {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_ATTR;
|
||||
}
|
||||
}
|
||||
namespace {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_NAMESPACE;
|
||||
}
|
||||
id {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_ID;
|
||||
}
|
||||
integer {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_INTEGER;
|
||||
}
|
||||
backtick {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_BACKTICK;
|
||||
$this->yypopstate();
|
||||
}
|
||||
vert {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_VERT;
|
||||
}
|
||||
dot {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_DOT;
|
||||
}
|
||||
comma {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_COMMA;
|
||||
}
|
||||
semicolon {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_SEMICOLON;
|
||||
}
|
||||
doublecolon {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_DOUBLECOLON;
|
||||
}
|
||||
colon {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_COLON;
|
||||
}
|
||||
qmark {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_QMARK;
|
||||
}
|
||||
hex {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_HEX;
|
||||
}
|
||||
space {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_SPACE;
|
||||
}
|
||||
char {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||
}
|
||||
*/
|
||||
|
||||
/*!lex2php
|
||||
%statename LITERAL
|
||||
ldel literal rdel {
|
||||
$this->literal_cnt++;
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LITERAL;
|
||||
}
|
||||
ldel slash literal rdel {
|
||||
if ($this->literal_cnt) {
|
||||
$this->literal_cnt--;
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LITERAL;
|
||||
} else {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LITERALEND;
|
||||
$this->yypopstate();
|
||||
}
|
||||
}
|
||||
char {
|
||||
if (!isset($this->yy_global_literal)) {
|
||||
$this->yy_global_literal = $this->replace('/(SMARTYldel)SMARTYal[\/]?literalSMARTYrdel/isS');
|
||||
}
|
||||
$to = $this->dataLength;
|
||||
preg_match($this->yy_global_literal, $this->data,$match,PREG_OFFSET_CAPTURE,$this->counter);
|
||||
if (isset($match[0][1])) {
|
||||
$to = $match[0][1];
|
||||
} else {
|
||||
$this->compiler->trigger_template_error ("missing or misspelled literal closing tag");
|
||||
}
|
||||
$this->value = substr($this->data,$this->counter,$to-$this->counter);
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LITERAL;
|
||||
}
|
||||
*/
|
||||
/*!lex2php
|
||||
%statename DOUBLEQUOTEDSTRING
|
||||
userliteral {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||
}
|
||||
ldel literal rdel {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||
}
|
||||
ldel slash literal rdel {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||
}
|
||||
ldel slash {
|
||||
$this->yypushstate(self::TAG);
|
||||
return true;
|
||||
}
|
||||
ldel id {
|
||||
$this->yypushstate(self::TAG);
|
||||
return true;
|
||||
}
|
||||
ldel {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LDEL;
|
||||
$this->taglineno = $this->line;
|
||||
$this->yypushstate(self::TAGBODY);
|
||||
}
|
||||
double_quote {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_QUOTE;
|
||||
$this->yypopstate();
|
||||
}
|
||||
backtick dollar {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_BACKTICK;
|
||||
$this->value = substr($this->value,0,-1);
|
||||
$this->yypushstate(self::TAGBODY);
|
||||
$this->taglineno = $this->line;
|
||||
}
|
||||
dollar id {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_DOLLARID;
|
||||
}
|
||||
dollar {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||
}
|
||||
textdoublequoted {
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||
}
|
||||
char {
|
||||
$to = $this->dataLength;
|
||||
$this->value = substr($this->data,$this->counter,$to-$this->counter);
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -90,7 +90,7 @@ class Smarty_Autoloader
|
||||
*/
|
||||
public static function autoload($class)
|
||||
{
|
||||
if ($class[ 0 ] !== 'S' && strpos($class, 'Smarty') !== 0) {
|
||||
if ($class[ 0 ] !== 'S' || strpos($class, 'Smarty') !== 0) {
|
||||
return;
|
||||
}
|
||||
$_class = strtolower($class);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
@@ -27,7 +27,6 @@
|
||||
* @author Uwe Tews <uwe dot tews at gmail dot com>
|
||||
* @author Rodney Rehm
|
||||
* @package Smarty
|
||||
* @version 3.1.33
|
||||
*/
|
||||
/**
|
||||
* set SMARTY_DIR to absolute path to Smarty library files.
|
||||
@@ -112,7 +111,7 @@ class Smarty extends Smarty_Internal_TemplateBase
|
||||
/**
|
||||
* smarty version
|
||||
*/
|
||||
const SMARTY_VERSION = '3.1.33';
|
||||
const SMARTY_VERSION = '3.1.39';
|
||||
/**
|
||||
* define variable scopes
|
||||
*/
|
||||
@@ -800,7 +799,7 @@ class Smarty extends Smarty_Internal_TemplateBase
|
||||
* @param mixed $index index of directory to get, null to get all
|
||||
* @param bool $isConfig true for config_dir
|
||||
*
|
||||
* @return array list of template directories, or directory of $index
|
||||
* @return array|string list of template directories, or directory of $index
|
||||
*/
|
||||
public function getTemplateDir($index = null, $isConfig = false)
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
|
||||
@@ -41,9 +41,9 @@ function smarty_modifier_date_format($string, $format = null, $default_date = ''
|
||||
}
|
||||
$is_loaded = true;
|
||||
}
|
||||
if ($string !== '' && $string !== '0000-00-00' && $string !== '0000-00-00 00:00:00') {
|
||||
if (!empty($string) && $string !== '0000-00-00' && $string !== '0000-00-00 00:00:00') {
|
||||
$timestamp = smarty_make_timestamp($string);
|
||||
} elseif ($default_date !== '') {
|
||||
} elseif (!empty($default_date)) {
|
||||
$timestamp = smarty_make_timestamp($default_date);
|
||||
} else {
|
||||
return;
|
||||
|
||||
@@ -83,7 +83,7 @@ class Smarty_Internal_Compile_Assign extends Smarty_Internal_CompileBase
|
||||
if (isset($parameter[ 'smarty_internal_index' ])) {
|
||||
$output =
|
||||
"<?php \$_tmp_array = isset(\$_smarty_tpl->tpl_vars[{$_var}]) ? \$_smarty_tpl->tpl_vars[{$_var}]->value : array();\n";
|
||||
$output .= "if (!is_array(\$_tmp_array) || \$_tmp_array instanceof ArrayAccess) {\n";
|
||||
$output .= "if (!(is_array(\$_tmp_array) || \$_tmp_array instanceof ArrayAccess)) {\n";
|
||||
$output .= "settype(\$_tmp_array, 'array');\n";
|
||||
$output .= "}\n";
|
||||
$output .= "\$_tmp_array{$parameter['smarty_internal_index']} = {$_attr['value']};\n";
|
||||
|
||||
@@ -219,8 +219,9 @@ class Smarty_Internal_Compile_Foreach extends Smarty_Internal_Compile_Private_Fo
|
||||
if (isset($itemAttr[ 'index' ])) {
|
||||
$output .= "{$itemVar}->index = -1;\n";
|
||||
}
|
||||
$output .= "if (\$_from !== null) {\n";
|
||||
$output .= "foreach (\$_from as {$keyTerm}{$itemVar}->value) {\n";
|
||||
$output .= "{$itemVar}->do_else = true;\n";
|
||||
$output .= "if (\$_from !== null) foreach (\$_from as {$keyTerm}{$itemVar}->value) {\n";
|
||||
$output .= "{$itemVar}->do_else = false;\n";
|
||||
if (isset($attributes[ 'key' ]) && isset($itemAttr[ 'key' ])) {
|
||||
$output .= "\$_smarty_tpl->tpl_vars['{$key}']->value = {$itemVar}->key;\n";
|
||||
}
|
||||
@@ -296,7 +297,7 @@ class Smarty_Internal_Compile_Foreachelse extends Smarty_Internal_CompileBase
|
||||
if ($restore === 2) {
|
||||
$output .= "{$itemVar} = {$local}saved;\n";
|
||||
}
|
||||
$output .= "}\n} else {\n?>";
|
||||
$output .= "}\nif ({$itemVar}->do_else) {\n?>";
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
@@ -332,9 +333,6 @@ class Smarty_Internal_Compile_Foreachclose extends Smarty_Internal_CompileBase
|
||||
if ($restore === 2) {
|
||||
$output .= "{$itemVar} = {$local}saved;\n";
|
||||
}
|
||||
if ($restore > 0) {
|
||||
$output .= "}\n";
|
||||
}
|
||||
$output .= "}\n";
|
||||
/* @var Smarty_Internal_Compile_Foreach $foreachCompiler */
|
||||
$foreachCompiler = $compiler->getTagCompiler('foreach');
|
||||
|
||||
@@ -58,6 +58,11 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase
|
||||
}
|
||||
unset($_attr[ 'nocache' ]);
|
||||
$_name = trim($_attr[ 'name' ], '\'"');
|
||||
|
||||
if (!preg_match('/^[a-zA-Z0-9_\x80-\xff]+$/', $_name)) {
|
||||
$compiler->trigger_template_error("Function name contains invalid characters: {$_name}", null, true);
|
||||
}
|
||||
|
||||
$compiler->parent_compiler->tpl_function[ $_name ] = array();
|
||||
$save = array(
|
||||
$_attr, $compiler->parser->current_buffer, $compiler->template->compiled->has_nocache_code,
|
||||
|
||||
@@ -151,6 +151,7 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
|
||||
$_output .= "echo {$_function}({$_params},\$_smarty_tpl);?>";
|
||||
}
|
||||
}
|
||||
$compiler->template->compiled->has_nocache_code = true;
|
||||
return $_output;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ class Smarty_Internal_Compile_Private_Php extends Smarty_Internal_CompileBase
|
||||
new Smarty_Internal_ParseTree_Tag(
|
||||
$compiler->parser,
|
||||
$compiler->processNocacheCode(
|
||||
"<?php echo '{$output}';?>",
|
||||
"<?php echo '{$output}';?>\n",
|
||||
true
|
||||
)
|
||||
)
|
||||
@@ -77,7 +77,7 @@ class Smarty_Internal_Compile_Private_Php extends Smarty_Internal_CompileBase
|
||||
new Smarty_Internal_ParseTree_Tag(
|
||||
$compiler->parser,
|
||||
$compiler->processNocacheCode(
|
||||
"<?php echo '{$output}';?>",
|
||||
"<?php echo '{$output}';?>\n",
|
||||
true
|
||||
)
|
||||
)
|
||||
|
||||
+6
-2
@@ -81,6 +81,10 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C
|
||||
case 'template':
|
||||
return 'basename($_smarty_tpl->source->filepath)';
|
||||
case 'template_object':
|
||||
if (isset($compiler->smarty->security_policy)) {
|
||||
$compiler->trigger_template_error("(secure mode) template_object not permitted");
|
||||
break;
|
||||
}
|
||||
return '$_smarty_tpl';
|
||||
case 'current_dir':
|
||||
return 'dirname($_smarty_tpl->source->filepath)';
|
||||
@@ -94,9 +98,9 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C
|
||||
break;
|
||||
}
|
||||
if (strpos($_index[ 1 ], '$') === false && strpos($_index[ 1 ], '\'') === false) {
|
||||
return "@constant('{$_index[1]}')";
|
||||
return "(defined('{$_index[1]}') ? constant('{$_index[1]}') : null)";
|
||||
} else {
|
||||
return "@constant({$_index[1]})";
|
||||
return "(defined({$_index[1]}) ? constant({$_index[1]}) : null)";
|
||||
}
|
||||
// no break
|
||||
case 'config':
|
||||
|
||||
@@ -115,7 +115,7 @@ class Smarty_Internal_Config_File_Compiler
|
||||
$this->smarty->_debug->start_compile($this->template);
|
||||
}
|
||||
// init the lexer/parser to compile the config file
|
||||
/* @var Smarty_Internal_ConfigFileLexer $this ->lex */
|
||||
/* @var Smarty_Internal_ConfigFileLexer $this->lex */
|
||||
$this->lex = new $this->lexer_class(
|
||||
str_replace(
|
||||
array(
|
||||
@@ -127,7 +127,7 @@ class Smarty_Internal_Config_File_Compiler
|
||||
) . "\n",
|
||||
$this
|
||||
);
|
||||
/* @var Smarty_Internal_ConfigFileParser $this ->parser */
|
||||
/* @var Smarty_Internal_ConfigFileParser $this->parser */
|
||||
$this->parser = new $this->parser_class($this->lex, $this);
|
||||
if (function_exists('mb_internal_encoding')
|
||||
&& function_exists('ini_get')
|
||||
|
||||
@@ -69,8 +69,10 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data
|
||||
public function end_template(Smarty_Internal_Template $template)
|
||||
{
|
||||
$key = $this->get_key($template);
|
||||
$this->template_data[ $this->index ][ $key ][ 'total_time' ] +=
|
||||
microtime(true) - $this->template_data[ $this->index ][ $key ][ 'start_template_time' ];
|
||||
if (isset($this->template_data[ $this->index ][ $key ][ 'start_template_time' ])) {
|
||||
$this->template_data[ $this->index ][ $key ][ 'total_time' ] +=
|
||||
microtime(true) - $this->template_data[ $this->index ][ $key ][ 'start_template_time' ];
|
||||
}
|
||||
//$this->template_data[$this->index][$key]['properties'] = $template->properties;
|
||||
}
|
||||
|
||||
@@ -142,8 +144,10 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data
|
||||
public function end_render(Smarty_Internal_Template $template)
|
||||
{
|
||||
$key = $this->get_key($template);
|
||||
$this->template_data[ $this->index ][ $key ][ 'render_time' ] +=
|
||||
microtime(true) - $this->template_data[ $this->index ][ $key ][ 'start_time' ];
|
||||
if (isset($this->template_data[ $this->index ][ $key ][ 'start_time' ])) {
|
||||
$this->template_data[ $this->index ][ $key ][ 'render_time' ] +=
|
||||
microtime(true) - $this->template_data[ $this->index ][ $key ][ 'start_time' ];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -65,7 +65,7 @@ class Smarty_Internal_ErrorHandler
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function mutingErrorHandler($errno, $errstr, $errfile, $errline, $errcontext)
|
||||
public static function mutingErrorHandler($errno, $errstr, $errfile, $errline, $errcontext = array())
|
||||
{
|
||||
$_is_muted_directory = false;
|
||||
// add the SMARTY_DIR to the list of muted directories
|
||||
|
||||
@@ -48,6 +48,8 @@ class Smarty_Internal_Method_RegisterPlugin
|
||||
throw new SmartyException("Plugin tag '{$name}' already registered");
|
||||
} elseif (!is_callable($callback)) {
|
||||
throw new SmartyException("Plugin '{$name}' not callable");
|
||||
} elseif ($cacheable && $cache_attr) {
|
||||
throw new SmartyException("Cannot set caching attributes for plugin '{$name}' when it is cacheable.");
|
||||
} else {
|
||||
$smarty->registered_plugins[ $type ][ $name ] = array($callback, (bool)$cacheable, (array)$cache_attr);
|
||||
}
|
||||
|
||||
@@ -85,45 +85,85 @@ class Smarty_Internal_ParseTree_Template extends Smarty_Internal_ParseTree
|
||||
public function to_smarty_php(Smarty_Internal_Templateparser $parser)
|
||||
{
|
||||
$code = '';
|
||||
for ($key = 0, $cnt = count($this->subtrees); $key < $cnt; $key++) {
|
||||
if ($this->subtrees[ $key ] instanceof Smarty_Internal_ParseTree_Text) {
|
||||
$subtree = $this->subtrees[ $key ]->to_smarty_php($parser);
|
||||
while ($key + 1 < $cnt && ($this->subtrees[ $key + 1 ] instanceof Smarty_Internal_ParseTree_Text ||
|
||||
$this->subtrees[ $key + 1 ]->data === '')) {
|
||||
$key++;
|
||||
if ($this->subtrees[ $key ]->data === '') {
|
||||
continue;
|
||||
}
|
||||
$subtree .= $this->subtrees[ $key ]->to_smarty_php($parser);
|
||||
}
|
||||
if ($subtree === '') {
|
||||
continue;
|
||||
}
|
||||
$code .= preg_replace(
|
||||
'/((<%)|(%>)|(<\?php)|(<\?)|(\?>)|(<\/?script))/',
|
||||
"<?php echo '\$1'; ?>\n",
|
||||
$subtree
|
||||
);
|
||||
continue;
|
||||
}
|
||||
if ($this->subtrees[ $key ] instanceof Smarty_Internal_ParseTree_Tag) {
|
||||
$subtree = $this->subtrees[ $key ]->to_smarty_php($parser);
|
||||
while ($key + 1 < $cnt && ($this->subtrees[ $key + 1 ] instanceof Smarty_Internal_ParseTree_Tag ||
|
||||
$this->subtrees[ $key + 1 ]->data === '')) {
|
||||
$key++;
|
||||
if ($this->subtrees[ $key ]->data === '') {
|
||||
continue;
|
||||
}
|
||||
$subtree = $parser->compiler->appendCode($subtree, $this->subtrees[ $key ]->to_smarty_php($parser));
|
||||
}
|
||||
if ($subtree === '') {
|
||||
continue;
|
||||
}
|
||||
$code .= $subtree;
|
||||
continue;
|
||||
}
|
||||
$code .= $this->subtrees[ $key ]->to_smarty_php($parser);
|
||||
|
||||
foreach ($this->getChunkedSubtrees() as $chunk) {
|
||||
$text = '';
|
||||
switch ($chunk['mode']) {
|
||||
case 'textstripped':
|
||||
foreach ($chunk['subtrees'] as $subtree) {
|
||||
$text .= $subtree->to_smarty_php($parser);
|
||||
}
|
||||
$code .= preg_replace(
|
||||
'/((<%)|(%>)|(<\?php)|(<\?)|(\?>)|(<\/?script))/',
|
||||
"<?php echo '\$1'; ?>\n",
|
||||
$parser->compiler->processText($text)
|
||||
);
|
||||
break;
|
||||
case 'text':
|
||||
foreach ($chunk['subtrees'] as $subtree) {
|
||||
$text .= $subtree->to_smarty_php($parser);
|
||||
}
|
||||
$code .= preg_replace(
|
||||
'/((<%)|(%>)|(<\?php)|(<\?)|(\?>)|(<\/?script))/',
|
||||
"<?php echo '\$1'; ?>\n",
|
||||
$text
|
||||
);
|
||||
break;
|
||||
case 'tag':
|
||||
foreach ($chunk['subtrees'] as $subtree) {
|
||||
$text = $parser->compiler->appendCode($text, $subtree->to_smarty_php($parser));
|
||||
}
|
||||
$code .= $text;
|
||||
break;
|
||||
default:
|
||||
foreach ($chunk['subtrees'] as $subtree) {
|
||||
$text = $subtree->to_smarty_php($parser);
|
||||
}
|
||||
$code .= $text;
|
||||
|
||||
}
|
||||
}
|
||||
return $code;
|
||||
}
|
||||
|
||||
private function getChunkedSubtrees() {
|
||||
$chunks = array();
|
||||
$currentMode = null;
|
||||
$currentChunk = array();
|
||||
for ($key = 0, $cnt = count($this->subtrees); $key < $cnt; $key++) {
|
||||
|
||||
if ($this->subtrees[ $key ]->data === '' && in_array($currentMode, array('textstripped', 'text', 'tag'))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($this->subtrees[ $key ] instanceof Smarty_Internal_ParseTree_Text
|
||||
&& $this->subtrees[ $key ]->isToBeStripped()) {
|
||||
$newMode = 'textstripped';
|
||||
} elseif ($this->subtrees[ $key ] instanceof Smarty_Internal_ParseTree_Text) {
|
||||
$newMode = 'text';
|
||||
} elseif ($this->subtrees[ $key ] instanceof Smarty_Internal_ParseTree_Tag) {
|
||||
$newMode = 'tag';
|
||||
} else {
|
||||
$newMode = 'other';
|
||||
}
|
||||
|
||||
if ($newMode == $currentMode) {
|
||||
$currentChunk[] = $this->subtrees[ $key ];
|
||||
} else {
|
||||
$chunks[] = array(
|
||||
'mode' => $currentMode,
|
||||
'subtrees' => $currentChunk
|
||||
);
|
||||
$currentMode = $newMode;
|
||||
$currentChunk = array($this->subtrees[ $key ]);
|
||||
}
|
||||
}
|
||||
if ($currentMode && $currentChunk) {
|
||||
$chunks[] = array(
|
||||
'mode' => $currentMode,
|
||||
'subtrees' => $currentChunk
|
||||
);
|
||||
}
|
||||
return $chunks;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,14 +16,31 @@
|
||||
*/
|
||||
class Smarty_Internal_ParseTree_Text extends Smarty_Internal_ParseTree
|
||||
{
|
||||
/**
|
||||
* Create template text buffer
|
||||
*
|
||||
* @param string $data text
|
||||
*/
|
||||
public function __construct($data)
|
||||
|
||||
/**
|
||||
* Wether this section should be stripped on output to smarty php
|
||||
* @var bool
|
||||
*/
|
||||
private $toBeStripped = false;
|
||||
|
||||
/**
|
||||
* Create template text buffer
|
||||
*
|
||||
* @param string $data text
|
||||
* @param bool $toBeStripped wether this section should be stripped on output to smarty php
|
||||
*/
|
||||
public function __construct($data, $toBeStripped = false)
|
||||
{
|
||||
$this->data = $data;
|
||||
$this->toBeStripped = $toBeStripped;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wether this section should be stripped on output to smarty php
|
||||
* @return bool
|
||||
*/
|
||||
public function isToBeStripped() {
|
||||
return $this->toBeStripped;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -150,7 +150,7 @@ class Smarty_Internal_Runtime_Inheritance
|
||||
return;
|
||||
}
|
||||
// make sure we got child block of child template of current block
|
||||
while ($block->child && $block->tplIndex <= $block->child->tplIndex) {
|
||||
while ($block->child && $block->child->child && $block->tplIndex <= $block->child->tplIndex) {
|
||||
$block->child = $block->child->child;
|
||||
}
|
||||
$this->process($tpl, $block);
|
||||
|
||||
@@ -265,7 +265,7 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data
|
||||
*
|
||||
* @param string $type plugin type
|
||||
* @param string $name name of template tag
|
||||
* @param callback $callback PHP callback to register
|
||||
* @param callable $callback PHP callback to register
|
||||
* @param bool $cacheable if true (default) this function is cache able
|
||||
* @param mixed $cache_attr caching attributes if any
|
||||
*
|
||||
@@ -301,7 +301,7 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data
|
||||
* @link http://www.smarty.net/docs/en/api.register.filter.tpl
|
||||
*
|
||||
* @param string $type filter type
|
||||
* @param callback $callback
|
||||
* @param callable $callback
|
||||
* @param string|null $name optional filter name
|
||||
*
|
||||
* @return \Smarty|\Smarty_Internal_Template
|
||||
|
||||
@@ -621,22 +621,18 @@ abstract class Smarty_Internal_TemplateCompilerBase
|
||||
|| strcasecmp($name, 'array') === 0 || is_callable($name)
|
||||
) {
|
||||
$func_name = strtolower($name);
|
||||
$par = implode(',', $parameter);
|
||||
$parHasFuction = strpos($par, '(') !== false;
|
||||
|
||||
if ($func_name === 'isset') {
|
||||
if (count($parameter) === 0) {
|
||||
$this->trigger_template_error('Illegal number of parameter in "isset()"');
|
||||
}
|
||||
if ($parHasFuction) {
|
||||
$pa = array();
|
||||
foreach ($parameter as $p) {
|
||||
$pa[] = (strpos($p, '(') === false) ? ('isset(' . $p . ')') : ('(' . $p . ' !== null )');
|
||||
}
|
||||
return '(' . implode(' && ', $pa) . ')';
|
||||
} else {
|
||||
$isset_par = str_replace("')->value", "',null,true,false)->value", $par);
|
||||
}
|
||||
return $name . '(' . $isset_par . ')';
|
||||
|
||||
$pa = array();
|
||||
foreach ($parameter as $p) {
|
||||
$pa[] = $this->syntaxMatchesVariable($p) ? 'isset(' . $p . ')' : '(' . $p . ' !== null )';
|
||||
}
|
||||
return '(' . implode(' && ', $pa) . ')';
|
||||
|
||||
} elseif (in_array(
|
||||
$func_name,
|
||||
array(
|
||||
@@ -653,7 +649,7 @@ abstract class Smarty_Internal_TemplateCompilerBase
|
||||
$this->trigger_template_error("Illegal number of parameter in '{$func_name()}'");
|
||||
}
|
||||
if ($func_name === 'empty') {
|
||||
if ($parHasFuction && version_compare(PHP_VERSION, '5.5.0', '<')) {
|
||||
if (!$this->syntaxMatchesVariable($parameter[0]) && version_compare(PHP_VERSION, '5.5.0', '<')) {
|
||||
return '(' . $parameter[ 0 ] . ' === false )';
|
||||
} else {
|
||||
return $func_name . '(' .
|
||||
@@ -671,74 +667,82 @@ abstract class Smarty_Internal_TemplateCompilerBase
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether the passed string represents a valid (PHP) variable.
|
||||
* This is important, because `isset()` only works on variables and `empty()` can only be passed
|
||||
* a variable prior to php5.5
|
||||
* @param $string
|
||||
* @return bool
|
||||
*/
|
||||
private function syntaxMatchesVariable($string) {
|
||||
static $regex_pattern = '/^\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*((->)[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*|\[.*]*\])*$/';
|
||||
return 1 === preg_match($regex_pattern, trim($string));
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called from parser to process a text content section
|
||||
* This method is called from parser to process a text content section if strip is enabled
|
||||
* - remove text from inheritance child templates as they may generate output
|
||||
* - strip text if strip is enabled
|
||||
*
|
||||
* @param string $text
|
||||
*
|
||||
* @return null|\Smarty_Internal_ParseTree_Text
|
||||
* @return string
|
||||
*/
|
||||
public function processText($text)
|
||||
{
|
||||
if ((string)$text != '') {
|
||||
$store = array();
|
||||
$_store = 0;
|
||||
if ($this->parser->strip) {
|
||||
if (strpos($text, '<') !== false) {
|
||||
// capture html elements not to be messed with
|
||||
$_offset = 0;
|
||||
if (preg_match_all(
|
||||
'#(<script[^>]*>.*?</script[^>]*>)|(<textarea[^>]*>.*?</textarea[^>]*>)|(<pre[^>]*>.*?</pre[^>]*>)#is',
|
||||
$text,
|
||||
$matches,
|
||||
PREG_OFFSET_CAPTURE | PREG_SET_ORDER
|
||||
)
|
||||
) {
|
||||
foreach ($matches as $match) {
|
||||
$store[] = $match[ 0 ][ 0 ];
|
||||
$_length = strlen($match[ 0 ][ 0 ]);
|
||||
$replace = '@!@SMARTY:' . $_store . ':SMARTY@!@';
|
||||
$text = substr_replace($text, $replace, $match[ 0 ][ 1 ] - $_offset, $_length);
|
||||
$_offset += $_length - strlen($replace);
|
||||
$_store++;
|
||||
}
|
||||
}
|
||||
$expressions = array(// replace multiple spaces between tags by a single space
|
||||
'#(:SMARTY@!@|>)[\040\011]+(?=@!@SMARTY:|<)#s' => '\1 \2',
|
||||
// remove newline between tags
|
||||
'#(:SMARTY@!@|>)[\040\011]*[\n]\s*(?=@!@SMARTY:|<)#s' => '\1\2',
|
||||
// remove multiple spaces between attributes (but not in attribute values!)
|
||||
'#(([a-z0-9]\s*=\s*("[^"]*?")|(\'[^\']*?\'))|<[a-z0-9_]+)\s+([a-z/>])#is' => '\1 \5',
|
||||
'#>[\040\011]+$#Ss' => '> ',
|
||||
'#>[\040\011]*[\n]\s*$#Ss' => '>',
|
||||
$this->stripRegEx => '',
|
||||
);
|
||||
$text = preg_replace(array_keys($expressions), array_values($expressions), $text);
|
||||
$_offset = 0;
|
||||
if (preg_match_all(
|
||||
'#@!@SMARTY:([0-9]+):SMARTY@!@#is',
|
||||
$text,
|
||||
$matches,
|
||||
PREG_OFFSET_CAPTURE | PREG_SET_ORDER
|
||||
)
|
||||
) {
|
||||
foreach ($matches as $match) {
|
||||
$_length = strlen($match[ 0 ][ 0 ]);
|
||||
$replace = $store[ $match[ 1 ][ 0 ] ];
|
||||
$text = substr_replace($text, $replace, $match[ 0 ][ 1 ] + $_offset, $_length);
|
||||
$_offset += strlen($replace) - $_length;
|
||||
$_store++;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$text = preg_replace($this->stripRegEx, '', $text);
|
||||
}
|
||||
}
|
||||
return new Smarty_Internal_ParseTree_Text($text);
|
||||
|
||||
if (strpos($text, '<') === false) {
|
||||
return preg_replace($this->stripRegEx, '', $text);
|
||||
}
|
||||
return null;
|
||||
|
||||
$store = array();
|
||||
$_store = 0;
|
||||
|
||||
// capture html elements not to be messed with
|
||||
$_offset = 0;
|
||||
if (preg_match_all(
|
||||
'#(<script[^>]*>.*?</script[^>]*>)|(<textarea[^>]*>.*?</textarea[^>]*>)|(<pre[^>]*>.*?</pre[^>]*>)#is',
|
||||
$text,
|
||||
$matches,
|
||||
PREG_OFFSET_CAPTURE | PREG_SET_ORDER
|
||||
)
|
||||
) {
|
||||
foreach ($matches as $match) {
|
||||
$store[] = $match[ 0 ][ 0 ];
|
||||
$_length = strlen($match[ 0 ][ 0 ]);
|
||||
$replace = '@!@SMARTY:' . $_store . ':SMARTY@!@';
|
||||
$text = substr_replace($text, $replace, $match[ 0 ][ 1 ] - $_offset, $_length);
|
||||
$_offset += $_length - strlen($replace);
|
||||
$_store++;
|
||||
}
|
||||
}
|
||||
$expressions = array(// replace multiple spaces between tags by a single space
|
||||
'#(:SMARTY@!@|>)[\040\011]+(?=@!@SMARTY:|<)#s' => '\1 \2',
|
||||
// remove newline between tags
|
||||
'#(:SMARTY@!@|>)[\040\011]*[\n]\s*(?=@!@SMARTY:|<)#s' => '\1\2',
|
||||
// remove multiple spaces between attributes (but not in attribute values!)
|
||||
'#(([a-z0-9]\s*=\s*("[^"]*?")|(\'[^\']*?\'))|<[a-z0-9_]+)\s+([a-z/>])#is' => '\1 \5',
|
||||
'#>[\040\011]+$#Ss' => '> ',
|
||||
'#>[\040\011]*[\n]\s*$#Ss' => '>',
|
||||
$this->stripRegEx => '',
|
||||
);
|
||||
$text = preg_replace(array_keys($expressions), array_values($expressions), $text);
|
||||
$_offset = 0;
|
||||
if (preg_match_all(
|
||||
'#@!@SMARTY:([0-9]+):SMARTY@!@#is',
|
||||
$text,
|
||||
$matches,
|
||||
PREG_OFFSET_CAPTURE | PREG_SET_ORDER
|
||||
)
|
||||
) {
|
||||
foreach ($matches as $match) {
|
||||
$_length = strlen($match[ 0 ][ 0 ]);
|
||||
$replace = $store[ $match[ 1 ][ 0 ] ];
|
||||
$text = substr_replace($text, $replace, $match[ 0 ][ 1 ] + $_offset, $_length);
|
||||
$_offset += strlen($replace) - $_length;
|
||||
$_store++;
|
||||
}
|
||||
}
|
||||
return $text;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -215,9 +215,23 @@ class Smarty_Internal_Templatelexer
|
||||
*/
|
||||
private $yy_global_pattern5 = null;
|
||||
|
||||
private $_yy_state = 1;
|
||||
/**
|
||||
* preg token pattern for text
|
||||
*
|
||||
* @var null
|
||||
*/
|
||||
private $yy_global_text = null;
|
||||
|
||||
private $_yy_stack = array();
|
||||
/**
|
||||
* preg token pattern for literal
|
||||
*
|
||||
* @var null
|
||||
*/
|
||||
private $yy_global_literal = null;
|
||||
|
||||
private $_yy_state = 1;
|
||||
|
||||
private $_yy_stack = array();
|
||||
|
||||
/**
|
||||
* constructor
|
||||
@@ -319,7 +333,7 @@ class Smarty_Internal_Templatelexer
|
||||
{
|
||||
if (!isset($this->yy_global_pattern1)) {
|
||||
$this->yy_global_pattern1 =
|
||||
$this->replace("/\G([{][}])|\G((SMARTYldel)SMARTYal[*])|\G((SMARTYldel)SMARTYalphp([ ].*?)?SMARTYrdel|(SMARTYldel)SMARTYal[\/]phpSMARTYrdel)|\G((SMARTYldel)SMARTYautoliteral\\s+SMARTYliteral)|\G((SMARTYldel)SMARTYalliteral\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/]literal\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal)|\G([<][?]((php\\s+|=)|\\s+)|[<][%]|[<][?]xml\\s+|[<]script\\s+language\\s*=\\s*[\"']?\\s*php\\s*[\"']?\\s*[>]|[?][>]|[%][>])|\G((.*?)(?=((SMARTYldel)SMARTYal|[<][?]((php\\s+|=)|\\s+)|[<][%]|[<][?]xml\\s+|[<]script\\s+language\\s*=\\s*[\"']?\\s*php\\s*[\"']?\\s*[>]|[?][>]|[%][>]SMARTYliteral))|[\s\S]+)/isS");
|
||||
$this->replace("/\G([{][}])|\G((SMARTYldel)SMARTYal[*])|\G((SMARTYldel)SMARTYalphp([ ].*?)?SMARTYrdel|(SMARTYldel)SMARTYal[\/]phpSMARTYrdel)|\G((SMARTYldel)SMARTYautoliteral\\s+SMARTYliteral)|\G((SMARTYldel)SMARTYalliteral\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/]literal\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal)|\G([<][?]((php\\s+|=)|\\s+)|[<][%]|[<][?]xml\\s+|[<]script\\s+language\\s*=\\s*[\"']?\\s*php\\s*[\"']?\\s*[>]|[?][>]|[%][>])|\G([\S\s])/isS");
|
||||
}
|
||||
if (!isset($this->dataLength)) {
|
||||
$this->dataLength = strlen($this->data);
|
||||
@@ -336,11 +350,8 @@ class Smarty_Internal_Templatelexer
|
||||
}
|
||||
if (empty($yymatches)) {
|
||||
throw new Exception('Error: lexing failed because a rule matched' .
|
||||
' an empty string. Input "' . substr(
|
||||
$this->data,
|
||||
$this->counter,
|
||||
5
|
||||
) . '... state TEXT');
|
||||
' an empty string. Input "' . substr($this->data,
|
||||
$this->counter, 5) . '... state TEXT');
|
||||
}
|
||||
next($yymatches); // skip global match
|
||||
$this->token = key($yymatches); // token number
|
||||
@@ -365,7 +376,7 @@ class Smarty_Internal_Templatelexer
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
throw new Exception('Unexpected input at line' . $this->line .
|
||||
throw new Exception('Unexpected input at line ' . $this->line .
|
||||
': ' . $this->data[ $this->counter ]);
|
||||
}
|
||||
break;
|
||||
@@ -379,6 +390,7 @@ class Smarty_Internal_Templatelexer
|
||||
|
||||
public function yy_r1_2()
|
||||
{
|
||||
$to = $this->dataLength;
|
||||
preg_match("/[*]{$this->compiler->getRdelPreg()}[\n]?/", $this->data, $match, PREG_OFFSET_CAPTURE,
|
||||
$this->counter);
|
||||
if (isset($match[ 0 ][ 1 ])) {
|
||||
@@ -425,6 +437,16 @@ class Smarty_Internal_Templatelexer
|
||||
|
||||
public function yy_r1_19()
|
||||
{
|
||||
if (!isset($this->yy_global_text)) {
|
||||
$this->yy_global_text =
|
||||
$this->replace('/(SMARTYldel)SMARTYal|[<][?]((php\s+|=)|\s+)|[<][%]|[<][?]xml\s+|[<]script\s+language\s*=\s*["\']?\s*php\s*["\']?\s*[>]|[?][>]|[%][>]SMARTYliteral/isS');
|
||||
}
|
||||
$to = $this->dataLength;
|
||||
preg_match($this->yy_global_text, $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter);
|
||||
if (isset($match[ 0 ][ 1 ])) {
|
||||
$to = $match[ 0 ][ 1 ];
|
||||
}
|
||||
$this->value = substr($this->data, $this->counter, $to - $this->counter);
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||
}
|
||||
|
||||
@@ -449,11 +471,8 @@ class Smarty_Internal_Templatelexer
|
||||
}
|
||||
if (empty($yymatches)) {
|
||||
throw new Exception('Error: lexing failed because a rule matched' .
|
||||
' an empty string. Input "' . substr(
|
||||
$this->data,
|
||||
$this->counter,
|
||||
5
|
||||
) . '... state TAG');
|
||||
' an empty string. Input "' . substr($this->data,
|
||||
$this->counter, 5) . '... state TAG');
|
||||
}
|
||||
next($yymatches); // skip global match
|
||||
$this->token = key($yymatches); // token number
|
||||
@@ -478,7 +497,7 @@ class Smarty_Internal_Templatelexer
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
throw new Exception('Unexpected input at line' . $this->line .
|
||||
throw new Exception('Unexpected input at line ' . $this->line .
|
||||
': ' . $this->data[ $this->counter ]);
|
||||
}
|
||||
break;
|
||||
@@ -573,7 +592,7 @@ class Smarty_Internal_Templatelexer
|
||||
{
|
||||
if (!isset($this->yy_global_pattern3)) {
|
||||
$this->yy_global_pattern3 =
|
||||
$this->replace("/\G(\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal)|\G([\"])|\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|\G([$][0-9]*[a-zA-Z_]\\w*)|\G([$])|\G(\\s+is\\s+in\\s+)|\G(\\s+as\\s+)|\G(\\s+to\\s+)|\G(\\s+step\\s+)|\G(\\s+instanceof\\s+)|\G(\\s*([!=][=]{1,2}|[<][=>]?|[>][=]?|[&|]{2})\\s*)|\G(\\s+(eq|ne|neq|gt|ge|gte|lt|le|lte|mod|and|or|xor)\\s+)|\G(\\s+is\\s+(not\\s+)?(odd|even|div)\\s+by\\s+)|\G(\\s+is\\s+(not\\s+)?(odd|even))|\G([!]\\s*|not\\s+)|\G([(](int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)[)]\\s*)|\G(\\s*[(]\\s*)|\G(\\s*[)])|\G(\\[\\s*)|\G(\\s*\\])|\G(\\s*[-][>]\\s*)|\G(\\s*[=][>]\\s*)|\G(\\s*[=]\\s*)|\G(([+]|[-]){2})|\G(\\s*([+]|[-])\\s*)|\G(\\s*([*]{1,2}|[%\/^&]|[<>]{2})\\s*)|\G([@])|\G([#])|\G(\\s+[0-9]*[a-zA-Z_][a-zA-Z0-9_\-:]*\\s*[=]\\s*)|\G(([0-9]*[a-zA-Z_]\\w*)?(\\\\[0-9]*[a-zA-Z_]\\w*)+)|\G([0-9]*[a-zA-Z_]\\w*)|\G(\\d+)|\G([`])|\G([|][@]?)|\G([.])|\G(\\s*[,]\\s*)|\G(\\s*[;]\\s*)|\G([:]{2})|\G(\\s*[:]\\s*)|\G(\\s*[?]\\s*)|\G(0[xX][0-9a-fA-F]+)|\G(\\s+)|\G([\S\s])/isS");
|
||||
$this->replace("/\G(\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal)|\G([\"])|\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|\G([$][0-9]*[a-zA-Z_]\\w*)|\G([$])|\G(\\s+is\\s+in\\s+)|\G(\\s+as\\s+)|\G(\\s+to\\s+)|\G(\\s+step\\s+)|\G(\\s+instanceof\\s+)|\G(\\s*([!=][=]{1,2}|[<][=>]?|[>][=]?|[&|]{2})\\s*)|\G(\\s+(eq|ne|neq|gt|ge|gte|lt|le|lte|mod|and|or|xor)\\s+)|\G(\\s+is\\s+(not\\s+)?(odd|even|div)\\s+by\\s+)|\G(\\s+is\\s+(not\\s+)?(odd|even))|\G([!]\\s*|not\\s+)|\G([(](int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)[)]\\s*)|\G(\\s*[(]\\s*)|\G(\\s*[)])|\G(\\[\\s*)|\G(\\s*\\])|\G(\\s*[-][>]\\s*)|\G(\\s*[=][>]\\s*)|\G(\\s*[=]\\s*)|\G(([+]|[-]){2})|\G(\\s*([+]|[-])\\s*)|\G(\\s*([*]{1,2}|[%\/^&]|[<>]{2})\\s*)|\G([@])|\G(array\\s*[(]\\s*)|\G([#])|\G(\\s+[0-9]*[a-zA-Z_][a-zA-Z0-9_\-:]*\\s*[=]\\s*)|\G(([0-9]*[a-zA-Z_]\\w*)?(\\\\[0-9]*[a-zA-Z_]\\w*)+)|\G([0-9]*[a-zA-Z_]\\w*)|\G(\\d+)|\G([`])|\G([|][@]?)|\G([.])|\G(\\s*[,]\\s*)|\G(\\s*[;]\\s*)|\G([:]{2})|\G(\\s*[:]\\s*)|\G(\\s*[?]\\s*)|\G(0[xX][0-9a-fA-F]+)|\G(\\s+)|\G([\S\s])/isS");
|
||||
}
|
||||
if (!isset($this->dataLength)) {
|
||||
$this->dataLength = strlen($this->data);
|
||||
@@ -590,11 +609,8 @@ class Smarty_Internal_Templatelexer
|
||||
}
|
||||
if (empty($yymatches)) {
|
||||
throw new Exception('Error: lexing failed because a rule matched' .
|
||||
' an empty string. Input "' . substr(
|
||||
$this->data,
|
||||
$this->counter,
|
||||
5
|
||||
) . '... state TAGBODY');
|
||||
' an empty string. Input "' . substr($this->data,
|
||||
$this->counter, 5) . '... state TAGBODY');
|
||||
}
|
||||
next($yymatches); // skip global match
|
||||
$this->token = key($yymatches); // token number
|
||||
@@ -619,7 +635,7 @@ class Smarty_Internal_Templatelexer
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
throw new Exception('Unexpected input at line' . $this->line .
|
||||
throw new Exception('Unexpected input at line ' . $this->line .
|
||||
': ' . $this->data[ $this->counter ]);
|
||||
}
|
||||
break;
|
||||
@@ -772,10 +788,15 @@ class Smarty_Internal_Templatelexer
|
||||
|
||||
public function yy_r3_42()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_HATCH;
|
||||
$this->token = Smarty_Internal_Templateparser::TP_ARRAYOPEN;
|
||||
}
|
||||
|
||||
public function yy_r3_43()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_HATCH;
|
||||
}
|
||||
|
||||
public function yy_r3_44()
|
||||
{
|
||||
// resolve conflicts with shorttag and right_delimiter starting with '='
|
||||
if (substr($this->data, $this->counter + strlen($this->value) - 1, $this->compiler->getRdelLength()) ===
|
||||
@@ -788,73 +809,73 @@ class Smarty_Internal_Templatelexer
|
||||
}
|
||||
}
|
||||
|
||||
public function yy_r3_44()
|
||||
public function yy_r3_45()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_NAMESPACE;
|
||||
}
|
||||
|
||||
public function yy_r3_47()
|
||||
public function yy_r3_48()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_ID;
|
||||
}
|
||||
|
||||
public function yy_r3_48()
|
||||
public function yy_r3_49()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_INTEGER;
|
||||
}
|
||||
|
||||
public function yy_r3_49()
|
||||
public function yy_r3_50()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_BACKTICK;
|
||||
$this->yypopstate();
|
||||
}
|
||||
|
||||
public function yy_r3_50()
|
||||
public function yy_r3_51()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_VERT;
|
||||
}
|
||||
|
||||
public function yy_r3_51()
|
||||
public function yy_r3_52()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_DOT;
|
||||
}
|
||||
|
||||
public function yy_r3_52()
|
||||
public function yy_r3_53()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_COMMA;
|
||||
}
|
||||
|
||||
public function yy_r3_53()
|
||||
public function yy_r3_54()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_SEMICOLON;
|
||||
}
|
||||
|
||||
public function yy_r3_54()
|
||||
public function yy_r3_55()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_DOUBLECOLON;
|
||||
}
|
||||
|
||||
public function yy_r3_55()
|
||||
public function yy_r3_56()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_COLON;
|
||||
}
|
||||
|
||||
public function yy_r3_56()
|
||||
public function yy_r3_57()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_QMARK;
|
||||
}
|
||||
|
||||
public function yy_r3_57()
|
||||
public function yy_r3_58()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_HEX;
|
||||
}
|
||||
|
||||
public function yy_r3_58()
|
||||
public function yy_r3_59()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_SPACE;
|
||||
} // end function
|
||||
|
||||
public function yy_r3_59()
|
||||
public function yy_r3_60()
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||
}
|
||||
@@ -863,7 +884,7 @@ class Smarty_Internal_Templatelexer
|
||||
{
|
||||
if (!isset($this->yy_global_pattern4)) {
|
||||
$this->yy_global_pattern4 =
|
||||
$this->replace("/\G((SMARTYldel)SMARTYalliteral\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/]literal\\s*SMARTYrdel)|\G((.*?)(?=(SMARTYldel)SMARTYal[\/]?literalSMARTYrdel))/isS");
|
||||
$this->replace("/\G((SMARTYldel)SMARTYalliteral\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/]literal\\s*SMARTYrdel)|\G([\S\s])/isS");
|
||||
}
|
||||
if (!isset($this->dataLength)) {
|
||||
$this->dataLength = strlen($this->data);
|
||||
@@ -880,11 +901,8 @@ class Smarty_Internal_Templatelexer
|
||||
}
|
||||
if (empty($yymatches)) {
|
||||
throw new Exception('Error: lexing failed because a rule matched' .
|
||||
' an empty string. Input "' . substr(
|
||||
$this->data,
|
||||
$this->counter,
|
||||
5
|
||||
) . '... state LITERAL');
|
||||
' an empty string. Input "' . substr($this->data,
|
||||
$this->counter, 5) . '... state LITERAL');
|
||||
}
|
||||
next($yymatches); // skip global match
|
||||
$this->token = key($yymatches); // token number
|
||||
@@ -909,7 +927,7 @@ class Smarty_Internal_Templatelexer
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
throw new Exception('Unexpected input at line' . $this->line .
|
||||
throw new Exception('Unexpected input at line ' . $this->line .
|
||||
': ' . $this->data[ $this->counter ]);
|
||||
}
|
||||
break;
|
||||
@@ -935,6 +953,17 @@ class Smarty_Internal_Templatelexer
|
||||
|
||||
public function yy_r4_5()
|
||||
{
|
||||
if (!isset($this->yy_global_literal)) {
|
||||
$this->yy_global_literal = $this->replace('/(SMARTYldel)SMARTYal[\/]?literalSMARTYrdel/isS');
|
||||
}
|
||||
$to = $this->dataLength;
|
||||
preg_match($this->yy_global_literal, $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter);
|
||||
if (isset($match[ 0 ][ 1 ])) {
|
||||
$to = $match[ 0 ][ 1 ];
|
||||
} else {
|
||||
$this->compiler->trigger_template_error("missing or misspelled literal closing tag");
|
||||
}
|
||||
$this->value = substr($this->data, $this->counter, $to - $this->counter);
|
||||
$this->token = Smarty_Internal_Templateparser::TP_LITERAL;
|
||||
} // end function
|
||||
|
||||
@@ -942,7 +971,7 @@ class Smarty_Internal_Templatelexer
|
||||
{
|
||||
if (!isset($this->yy_global_pattern5)) {
|
||||
$this->yy_global_pattern5 =
|
||||
$this->replace("/\G((SMARTYldel)SMARTYautoliteral\\s+SMARTYliteral)|\G((SMARTYldel)SMARTYalliteral\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/]literal\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/])|\G((SMARTYldel)SMARTYal[0-9]*[a-zA-Z_]\\w*)|\G((SMARTYldel)SMARTYal)|\G([\"])|\G([`][$])|\G([$][0-9]*[a-zA-Z_]\\w*)|\G([$])|\G(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=((SMARTYldel)SMARTYal|\\$|`\\$|\"SMARTYliteral)))/isS");
|
||||
$this->replace("/\G((SMARTYldel)SMARTYautoliteral\\s+SMARTYliteral)|\G((SMARTYldel)SMARTYalliteral\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/]literal\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/])|\G((SMARTYldel)SMARTYal[0-9]*[a-zA-Z_]\\w*)|\G((SMARTYldel)SMARTYal)|\G([\"])|\G([`][$])|\G([$][0-9]*[a-zA-Z_]\\w*)|\G([$])|\G(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=((SMARTYldel)SMARTYal|\\$|`\\$|\"SMARTYliteral)))|\G([\S\s])/isS");
|
||||
}
|
||||
if (!isset($this->dataLength)) {
|
||||
$this->dataLength = strlen($this->data);
|
||||
@@ -959,11 +988,8 @@ class Smarty_Internal_Templatelexer
|
||||
}
|
||||
if (empty($yymatches)) {
|
||||
throw new Exception('Error: lexing failed because a rule matched' .
|
||||
' an empty string. Input "' . substr(
|
||||
$this->data,
|
||||
$this->counter,
|
||||
5
|
||||
) . '... state DOUBLEQUOTEDSTRING');
|
||||
' an empty string. Input "' . substr($this->data,
|
||||
$this->counter, 5) . '... state DOUBLEQUOTEDSTRING');
|
||||
}
|
||||
next($yymatches); // skip global match
|
||||
$this->token = key($yymatches); // token number
|
||||
@@ -988,7 +1014,7 @@ class Smarty_Internal_Templatelexer
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
throw new Exception('Unexpected input at line' . $this->line .
|
||||
throw new Exception('Unexpected input at line ' . $this->line .
|
||||
': ' . $this->data[ $this->counter ]);
|
||||
}
|
||||
break;
|
||||
@@ -1057,4 +1083,13 @@ class Smarty_Internal_Templatelexer
|
||||
{
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||
}
|
||||
|
||||
public function yy_r5_22()
|
||||
{
|
||||
$to = $this->dataLength;
|
||||
$this->value = substr($this->data, $this->counter, $to - $this->counter);
|
||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -37,11 +37,13 @@ namespace Composer\Autoload;
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
* @author Jordi Boggiano <j.boggiano@seld.be>
|
||||
* @see http://www.php-fig.org/psr/psr-0/
|
||||
* @see http://www.php-fig.org/psr/psr-4/
|
||||
* @see https://www.php-fig.org/psr/psr-0/
|
||||
* @see https://www.php-fig.org/psr/psr-4/
|
||||
*/
|
||||
class ClassLoader
|
||||
{
|
||||
private $vendorDir;
|
||||
|
||||
// PSR-4
|
||||
private $prefixLengthsPsr4 = array();
|
||||
private $prefixDirsPsr4 = array();
|
||||
@@ -57,10 +59,17 @@ class ClassLoader
|
||||
private $missingClasses = array();
|
||||
private $apcuPrefix;
|
||||
|
||||
private static $registeredLoaders = array();
|
||||
|
||||
public function __construct($vendorDir = null)
|
||||
{
|
||||
$this->vendorDir = $vendorDir;
|
||||
}
|
||||
|
||||
public function getPrefixes()
|
||||
{
|
||||
if (!empty($this->prefixesPsr0)) {
|
||||
return call_user_func_array('array_merge', $this->prefixesPsr0);
|
||||
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
|
||||
}
|
||||
|
||||
return array();
|
||||
@@ -300,6 +309,17 @@ class ClassLoader
|
||||
public function register($prepend = false)
|
||||
{
|
||||
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
||||
|
||||
if (null === $this->vendorDir) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($prepend) {
|
||||
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
|
||||
} else {
|
||||
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||
self::$registeredLoaders[$this->vendorDir] = $this;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -308,6 +328,10 @@ class ClassLoader
|
||||
public function unregister()
|
||||
{
|
||||
spl_autoload_unregister(array($this, 'loadClass'));
|
||||
|
||||
if (null !== $this->vendorDir) {
|
||||
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -367,6 +391,16 @@ class ClassLoader
|
||||
return $file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the currently registered loaders indexed by their corresponding vendor directories.
|
||||
*
|
||||
* @return self[]
|
||||
*/
|
||||
public static function getRegisteredLoaders()
|
||||
{
|
||||
return self::$registeredLoaders;
|
||||
}
|
||||
|
||||
private function findFileWithExtension($class, $ext)
|
||||
{
|
||||
// PSR-4 lookup
|
||||
|
||||
@@ -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' => '1e645f52d45985949359c49ab147bcd45d6554f8',
|
||||
'name' => '__root__',
|
||||
),
|
||||
'versions' =>
|
||||
array (
|
||||
'__root__' =>
|
||||
array (
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '1e645f52d45985949359c49ab147bcd45d6554f8',
|
||||
),
|
||||
'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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ $vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
||||
'Katzgrau\\KLogger\\Logger' => $vendorDir . '/katzgrau/klogger/src/Logger.php',
|
||||
'Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/Psr/Log/AbstractLogger.php',
|
||||
'Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/Psr/Log/InvalidArgumentException.php',
|
||||
@@ -15,260 +16,10 @@ return array(
|
||||
'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerInterface.php',
|
||||
'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerTrait.php',
|
||||
'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php',
|
||||
'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
||||
'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
||||
'Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php',
|
||||
'Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php',
|
||||
'Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php',
|
||||
'Zend\\Db\\Adapter\\Adapter' => $vendorDir . '/zendframework/zend-db/src/Adapter/Adapter.php',
|
||||
'Zend\\Db\\Adapter\\AdapterAbstractServiceFactory' => $vendorDir . '/zendframework/zend-db/src/Adapter/AdapterAbstractServiceFactory.php',
|
||||
'Zend\\Db\\Adapter\\AdapterAwareInterface' => $vendorDir . '/zendframework/zend-db/src/Adapter/AdapterAwareInterface.php',
|
||||
'Zend\\Db\\Adapter\\AdapterAwareTrait' => $vendorDir . '/zendframework/zend-db/src/Adapter/AdapterAwareTrait.php',
|
||||
'Zend\\Db\\Adapter\\AdapterInterface' => $vendorDir . '/zendframework/zend-db/src/Adapter/AdapterInterface.php',
|
||||
'Zend\\Db\\Adapter\\AdapterServiceFactory' => $vendorDir . '/zendframework/zend-db/src/Adapter/AdapterServiceFactory.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\AbstractConnection' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/AbstractConnection.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\ConnectionInterface' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/ConnectionInterface.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\DriverInterface' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/DriverInterface.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Feature\\AbstractFeature' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Feature/AbstractFeature.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Feature\\DriverFeatureInterface' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Feature/DriverFeatureInterface.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\IbmDb2\\Connection' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/IbmDb2/Connection.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\IbmDb2\\IbmDb2' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/IbmDb2/IbmDb2.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\IbmDb2\\Result' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/IbmDb2/Result.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\IbmDb2\\Statement' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/IbmDb2/Statement.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Mysqli\\Connection' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Mysqli/Connection.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Mysqli\\Mysqli' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Mysqli/Mysqli.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Mysqli\\Result' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Mysqli/Result.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Mysqli\\Statement' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Mysqli/Statement.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Oci8\\Connection' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Oci8/Connection.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Oci8\\Feature\\RowCounter' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Oci8/Feature/RowCounter.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Oci8\\Oci8' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Oci8/Oci8.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Oci8\\Result' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Oci8/Result.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Oci8\\Statement' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Oci8/Statement.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pdo\\Connection' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Pdo/Connection.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pdo\\Feature\\OracleRowCounter' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Pdo/Feature/OracleRowCounter.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pdo\\Feature\\SqliteRowCounter' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Pdo/Feature/SqliteRowCounter.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pdo\\Pdo' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Pdo/Pdo.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pdo\\Result' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Pdo/Result.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pdo\\Statement' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pgsql\\Connection' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Pgsql/Connection.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pgsql\\Pgsql' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Pgsql/Pgsql.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pgsql\\Result' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Pgsql/Result.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pgsql\\Statement' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Pgsql/Statement.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\ResultInterface' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/ResultInterface.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Sqlsrv\\Connection' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Sqlsrv/Connection.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Sqlsrv\\Exception\\ErrorException' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Sqlsrv/Exception/ErrorException.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Sqlsrv\\Exception\\ExceptionInterface' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Sqlsrv/Exception/ExceptionInterface.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Sqlsrv\\Result' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Sqlsrv/Result.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Sqlsrv\\Sqlsrv' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Sqlsrv/Sqlsrv.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Sqlsrv\\Statement' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/Sqlsrv/Statement.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\StatementInterface' => $vendorDir . '/zendframework/zend-db/src/Adapter/Driver/StatementInterface.php',
|
||||
'Zend\\Db\\Adapter\\Exception\\ErrorException' => $vendorDir . '/zendframework/zend-db/src/Adapter/Exception/ErrorException.php',
|
||||
'Zend\\Db\\Adapter\\Exception\\ExceptionInterface' => $vendorDir . '/zendframework/zend-db/src/Adapter/Exception/ExceptionInterface.php',
|
||||
'Zend\\Db\\Adapter\\Exception\\InvalidArgumentException' => $vendorDir . '/zendframework/zend-db/src/Adapter/Exception/InvalidArgumentException.php',
|
||||
'Zend\\Db\\Adapter\\Exception\\InvalidConnectionParametersException' => $vendorDir . '/zendframework/zend-db/src/Adapter/Exception/InvalidConnectionParametersException.php',
|
||||
'Zend\\Db\\Adapter\\Exception\\InvalidQueryException' => $vendorDir . '/zendframework/zend-db/src/Adapter/Exception/InvalidQueryException.php',
|
||||
'Zend\\Db\\Adapter\\Exception\\RuntimeException' => $vendorDir . '/zendframework/zend-db/src/Adapter/Exception/RuntimeException.php',
|
||||
'Zend\\Db\\Adapter\\Exception\\UnexpectedValueException' => $vendorDir . '/zendframework/zend-db/src/Adapter/Exception/UnexpectedValueException.php',
|
||||
'Zend\\Db\\Adapter\\ParameterContainer' => $vendorDir . '/zendframework/zend-db/src/Adapter/ParameterContainer.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\AbstractPlatform' => $vendorDir . '/zendframework/zend-db/src/Adapter/Platform/AbstractPlatform.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\IbmDb2' => $vendorDir . '/zendframework/zend-db/src/Adapter/Platform/IbmDb2.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\Mysql' => $vendorDir . '/zendframework/zend-db/src/Adapter/Platform/Mysql.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\Oracle' => $vendorDir . '/zendframework/zend-db/src/Adapter/Platform/Oracle.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\PlatformInterface' => $vendorDir . '/zendframework/zend-db/src/Adapter/Platform/PlatformInterface.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\Postgresql' => $vendorDir . '/zendframework/zend-db/src/Adapter/Platform/Postgresql.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\Sql92' => $vendorDir . '/zendframework/zend-db/src/Adapter/Platform/Sql92.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\SqlServer' => $vendorDir . '/zendframework/zend-db/src/Adapter/Platform/SqlServer.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\Sqlite' => $vendorDir . '/zendframework/zend-db/src/Adapter/Platform/Sqlite.php',
|
||||
'Zend\\Db\\Adapter\\Profiler\\Profiler' => $vendorDir . '/zendframework/zend-db/src/Adapter/Profiler/Profiler.php',
|
||||
'Zend\\Db\\Adapter\\Profiler\\ProfilerAwareInterface' => $vendorDir . '/zendframework/zend-db/src/Adapter/Profiler/ProfilerAwareInterface.php',
|
||||
'Zend\\Db\\Adapter\\Profiler\\ProfilerInterface' => $vendorDir . '/zendframework/zend-db/src/Adapter/Profiler/ProfilerInterface.php',
|
||||
'Zend\\Db\\Adapter\\StatementContainer' => $vendorDir . '/zendframework/zend-db/src/Adapter/StatementContainer.php',
|
||||
'Zend\\Db\\Adapter\\StatementContainerInterface' => $vendorDir . '/zendframework/zend-db/src/Adapter/StatementContainerInterface.php',
|
||||
'Zend\\Db\\ConfigProvider' => $vendorDir . '/zendframework/zend-db/src/ConfigProvider.php',
|
||||
'Zend\\Db\\Exception\\ErrorException' => $vendorDir . '/zendframework/zend-db/src/Exception/ErrorException.php',
|
||||
'Zend\\Db\\Exception\\ExceptionInterface' => $vendorDir . '/zendframework/zend-db/src/Exception/ExceptionInterface.php',
|
||||
'Zend\\Db\\Exception\\InvalidArgumentException' => $vendorDir . '/zendframework/zend-db/src/Exception/InvalidArgumentException.php',
|
||||
'Zend\\Db\\Exception\\RuntimeException' => $vendorDir . '/zendframework/zend-db/src/Exception/RuntimeException.php',
|
||||
'Zend\\Db\\Exception\\UnexpectedValueException' => $vendorDir . '/zendframework/zend-db/src/Exception/UnexpectedValueException.php',
|
||||
'Zend\\Db\\Metadata\\Metadata' => $vendorDir . '/zendframework/zend-db/src/Metadata/Metadata.php',
|
||||
'Zend\\Db\\Metadata\\MetadataInterface' => $vendorDir . '/zendframework/zend-db/src/Metadata/MetadataInterface.php',
|
||||
'Zend\\Db\\Metadata\\Object\\AbstractTableObject' => $vendorDir . '/zendframework/zend-db/src/Metadata/Object/AbstractTableObject.php',
|
||||
'Zend\\Db\\Metadata\\Object\\ColumnObject' => $vendorDir . '/zendframework/zend-db/src/Metadata/Object/ColumnObject.php',
|
||||
'Zend\\Db\\Metadata\\Object\\ConstraintKeyObject' => $vendorDir . '/zendframework/zend-db/src/Metadata/Object/ConstraintKeyObject.php',
|
||||
'Zend\\Db\\Metadata\\Object\\ConstraintObject' => $vendorDir . '/zendframework/zend-db/src/Metadata/Object/ConstraintObject.php',
|
||||
'Zend\\Db\\Metadata\\Object\\TableObject' => $vendorDir . '/zendframework/zend-db/src/Metadata/Object/TableObject.php',
|
||||
'Zend\\Db\\Metadata\\Object\\TriggerObject' => $vendorDir . '/zendframework/zend-db/src/Metadata/Object/TriggerObject.php',
|
||||
'Zend\\Db\\Metadata\\Object\\ViewObject' => $vendorDir . '/zendframework/zend-db/src/Metadata/Object/ViewObject.php',
|
||||
'Zend\\Db\\Metadata\\Source\\AbstractSource' => $vendorDir . '/zendframework/zend-db/src/Metadata/Source/AbstractSource.php',
|
||||
'Zend\\Db\\Metadata\\Source\\Factory' => $vendorDir . '/zendframework/zend-db/src/Metadata/Source/Factory.php',
|
||||
'Zend\\Db\\Metadata\\Source\\MysqlMetadata' => $vendorDir . '/zendframework/zend-db/src/Metadata/Source/MysqlMetadata.php',
|
||||
'Zend\\Db\\Metadata\\Source\\OracleMetadata' => $vendorDir . '/zendframework/zend-db/src/Metadata/Source/OracleMetadata.php',
|
||||
'Zend\\Db\\Metadata\\Source\\PostgresqlMetadata' => $vendorDir . '/zendframework/zend-db/src/Metadata/Source/PostgresqlMetadata.php',
|
||||
'Zend\\Db\\Metadata\\Source\\SqlServerMetadata' => $vendorDir . '/zendframework/zend-db/src/Metadata/Source/SqlServerMetadata.php',
|
||||
'Zend\\Db\\Metadata\\Source\\SqliteMetadata' => $vendorDir . '/zendframework/zend-db/src/Metadata/Source/SqliteMetadata.php',
|
||||
'Zend\\Db\\Module' => $vendorDir . '/zendframework/zend-db/src/Module.php',
|
||||
'Zend\\Db\\ResultSet\\AbstractResultSet' => $vendorDir . '/zendframework/zend-db/src/ResultSet/AbstractResultSet.php',
|
||||
'Zend\\Db\\ResultSet\\Exception\\ExceptionInterface' => $vendorDir . '/zendframework/zend-db/src/ResultSet/Exception/ExceptionInterface.php',
|
||||
'Zend\\Db\\ResultSet\\Exception\\InvalidArgumentException' => $vendorDir . '/zendframework/zend-db/src/ResultSet/Exception/InvalidArgumentException.php',
|
||||
'Zend\\Db\\ResultSet\\Exception\\RuntimeException' => $vendorDir . '/zendframework/zend-db/src/ResultSet/Exception/RuntimeException.php',
|
||||
'Zend\\Db\\ResultSet\\HydratingResultSet' => $vendorDir . '/zendframework/zend-db/src/ResultSet/HydratingResultSet.php',
|
||||
'Zend\\Db\\ResultSet\\ResultSet' => $vendorDir . '/zendframework/zend-db/src/ResultSet/ResultSet.php',
|
||||
'Zend\\Db\\ResultSet\\ResultSetInterface' => $vendorDir . '/zendframework/zend-db/src/ResultSet/ResultSetInterface.php',
|
||||
'Zend\\Db\\RowGateway\\AbstractRowGateway' => $vendorDir . '/zendframework/zend-db/src/RowGateway/AbstractRowGateway.php',
|
||||
'Zend\\Db\\RowGateway\\Exception\\ExceptionInterface' => $vendorDir . '/zendframework/zend-db/src/RowGateway/Exception/ExceptionInterface.php',
|
||||
'Zend\\Db\\RowGateway\\Exception\\InvalidArgumentException' => $vendorDir . '/zendframework/zend-db/src/RowGateway/Exception/InvalidArgumentException.php',
|
||||
'Zend\\Db\\RowGateway\\Exception\\RuntimeException' => $vendorDir . '/zendframework/zend-db/src/RowGateway/Exception/RuntimeException.php',
|
||||
'Zend\\Db\\RowGateway\\Feature\\AbstractFeature' => $vendorDir . '/zendframework/zend-db/src/RowGateway/Feature/AbstractFeature.php',
|
||||
'Zend\\Db\\RowGateway\\Feature\\FeatureSet' => $vendorDir . '/zendframework/zend-db/src/RowGateway/Feature/FeatureSet.php',
|
||||
'Zend\\Db\\RowGateway\\RowGateway' => $vendorDir . '/zendframework/zend-db/src/RowGateway/RowGateway.php',
|
||||
'Zend\\Db\\RowGateway\\RowGatewayInterface' => $vendorDir . '/zendframework/zend-db/src/RowGateway/RowGatewayInterface.php',
|
||||
'Zend\\Db\\Sql\\AbstractExpression' => $vendorDir . '/zendframework/zend-db/src/Sql/AbstractExpression.php',
|
||||
'Zend\\Db\\Sql\\AbstractPreparableSql' => $vendorDir . '/zendframework/zend-db/src/Sql/AbstractPreparableSql.php',
|
||||
'Zend\\Db\\Sql\\AbstractSql' => $vendorDir . '/zendframework/zend-db/src/Sql/AbstractSql.php',
|
||||
'Zend\\Db\\Sql\\Combine' => $vendorDir . '/zendframework/zend-db/src/Sql/Combine.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\AlterTable' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/AlterTable.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\AbstractLengthColumn' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/AbstractLengthColumn.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\AbstractPrecisionColumn' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/AbstractPrecisionColumn.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\AbstractTimestampColumn' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/AbstractTimestampColumn.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\BigInteger' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/BigInteger.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Binary' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Binary.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Blob' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Blob.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Boolean' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Boolean.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Char' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Char.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Column' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Column.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\ColumnInterface' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/ColumnInterface.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Date' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Date.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Datetime' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Datetime.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Decimal' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Decimal.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Float' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Float.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Floating' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Floating.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Integer' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Integer.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Text' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Text.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Time' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Time.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Timestamp' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Timestamp.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Varbinary' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Varbinary.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Varchar' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Column/Varchar.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Constraint\\AbstractConstraint' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Constraint/AbstractConstraint.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Constraint\\Check' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Constraint/Check.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Constraint\\ConstraintInterface' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Constraint/ConstraintInterface.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Constraint\\ForeignKey' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Constraint/ForeignKey.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Constraint\\PrimaryKey' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Constraint/PrimaryKey.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Constraint\\UniqueKey' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Constraint/UniqueKey.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\CreateTable' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/CreateTable.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\DropTable' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/DropTable.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Index\\AbstractIndex' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Index/AbstractIndex.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Index\\Index' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/Index/Index.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\SqlInterface' => $vendorDir . '/zendframework/zend-db/src/Sql/Ddl/SqlInterface.php',
|
||||
'Zend\\Db\\Sql\\Delete' => $vendorDir . '/zendframework/zend-db/src/Sql/Delete.php',
|
||||
'Zend\\Db\\Sql\\Exception\\ExceptionInterface' => $vendorDir . '/zendframework/zend-db/src/Sql/Exception/ExceptionInterface.php',
|
||||
'Zend\\Db\\Sql\\Exception\\InvalidArgumentException' => $vendorDir . '/zendframework/zend-db/src/Sql/Exception/InvalidArgumentException.php',
|
||||
'Zend\\Db\\Sql\\Exception\\RuntimeException' => $vendorDir . '/zendframework/zend-db/src/Sql/Exception/RuntimeException.php',
|
||||
'Zend\\Db\\Sql\\Expression' => $vendorDir . '/zendframework/zend-db/src/Sql/Expression.php',
|
||||
'Zend\\Db\\Sql\\ExpressionInterface' => $vendorDir . '/zendframework/zend-db/src/Sql/ExpressionInterface.php',
|
||||
'Zend\\Db\\Sql\\Having' => $vendorDir . '/zendframework/zend-db/src/Sql/Having.php',
|
||||
'Zend\\Db\\Sql\\Insert' => $vendorDir . '/zendframework/zend-db/src/Sql/Insert.php',
|
||||
'Zend\\Db\\Sql\\Join' => $vendorDir . '/zendframework/zend-db/src/Sql/Join.php',
|
||||
'Zend\\Db\\Sql\\Literal' => $vendorDir . '/zendframework/zend-db/src/Sql/Literal.php',
|
||||
'Zend\\Db\\Sql\\Platform\\AbstractPlatform' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/AbstractPlatform.php',
|
||||
'Zend\\Db\\Sql\\Platform\\IbmDb2\\IbmDb2' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/IbmDb2/IbmDb2.php',
|
||||
'Zend\\Db\\Sql\\Platform\\IbmDb2\\SelectDecorator' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/IbmDb2/SelectDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Mysql\\Ddl\\AlterTableDecorator' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/Mysql/Ddl/AlterTableDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Mysql\\Ddl\\CreateTableDecorator' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/Mysql/Ddl/CreateTableDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Mysql\\Mysql' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/Mysql/Mysql.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Mysql\\SelectDecorator' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/Mysql/SelectDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Oracle\\Oracle' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/Oracle/Oracle.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Oracle\\SelectDecorator' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/Oracle/SelectDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Platform' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/Platform.php',
|
||||
'Zend\\Db\\Sql\\Platform\\PlatformDecoratorInterface' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/PlatformDecoratorInterface.php',
|
||||
'Zend\\Db\\Sql\\Platform\\SqlServer\\Ddl\\CreateTableDecorator' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/SqlServer/Ddl/CreateTableDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\SqlServer\\SelectDecorator' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/SqlServer/SelectDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\SqlServer\\SqlServer' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/SqlServer/SqlServer.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Sqlite\\SelectDecorator' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/Sqlite/SelectDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Sqlite\\Sqlite' => $vendorDir . '/zendframework/zend-db/src/Sql/Platform/Sqlite/Sqlite.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\Between' => $vendorDir . '/zendframework/zend-db/src/Sql/Predicate/Between.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\Expression' => $vendorDir . '/zendframework/zend-db/src/Sql/Predicate/Expression.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\In' => $vendorDir . '/zendframework/zend-db/src/Sql/Predicate/In.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\IsNotNull' => $vendorDir . '/zendframework/zend-db/src/Sql/Predicate/IsNotNull.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\IsNull' => $vendorDir . '/zendframework/zend-db/src/Sql/Predicate/IsNull.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\Like' => $vendorDir . '/zendframework/zend-db/src/Sql/Predicate/Like.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\Literal' => $vendorDir . '/zendframework/zend-db/src/Sql/Predicate/Literal.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\NotBetween' => $vendorDir . '/zendframework/zend-db/src/Sql/Predicate/NotBetween.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\NotIn' => $vendorDir . '/zendframework/zend-db/src/Sql/Predicate/NotIn.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\NotLike' => $vendorDir . '/zendframework/zend-db/src/Sql/Predicate/NotLike.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\Operator' => $vendorDir . '/zendframework/zend-db/src/Sql/Predicate/Operator.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\Predicate' => $vendorDir . '/zendframework/zend-db/src/Sql/Predicate/Predicate.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\PredicateInterface' => $vendorDir . '/zendframework/zend-db/src/Sql/Predicate/PredicateInterface.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\PredicateSet' => $vendorDir . '/zendframework/zend-db/src/Sql/Predicate/PredicateSet.php',
|
||||
'Zend\\Db\\Sql\\PreparableSqlInterface' => $vendorDir . '/zendframework/zend-db/src/Sql/PreparableSqlInterface.php',
|
||||
'Zend\\Db\\Sql\\Select' => $vendorDir . '/zendframework/zend-db/src/Sql/Select.php',
|
||||
'Zend\\Db\\Sql\\Sql' => $vendorDir . '/zendframework/zend-db/src/Sql/Sql.php',
|
||||
'Zend\\Db\\Sql\\SqlInterface' => $vendorDir . '/zendframework/zend-db/src/Sql/SqlInterface.php',
|
||||
'Zend\\Db\\Sql\\TableIdentifier' => $vendorDir . '/zendframework/zend-db/src/Sql/TableIdentifier.php',
|
||||
'Zend\\Db\\Sql\\Update' => $vendorDir . '/zendframework/zend-db/src/Sql/Update.php',
|
||||
'Zend\\Db\\Sql\\Where' => $vendorDir . '/zendframework/zend-db/src/Sql/Where.php',
|
||||
'Zend\\Db\\TableGateway\\AbstractTableGateway' => $vendorDir . '/zendframework/zend-db/src/TableGateway/AbstractTableGateway.php',
|
||||
'Zend\\Db\\TableGateway\\Exception\\ExceptionInterface' => $vendorDir . '/zendframework/zend-db/src/TableGateway/Exception/ExceptionInterface.php',
|
||||
'Zend\\Db\\TableGateway\\Exception\\InvalidArgumentException' => $vendorDir . '/zendframework/zend-db/src/TableGateway/Exception/InvalidArgumentException.php',
|
||||
'Zend\\Db\\TableGateway\\Exception\\RuntimeException' => $vendorDir . '/zendframework/zend-db/src/TableGateway/Exception/RuntimeException.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\AbstractFeature' => $vendorDir . '/zendframework/zend-db/src/TableGateway/Feature/AbstractFeature.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\EventFeature' => $vendorDir . '/zendframework/zend-db/src/TableGateway/Feature/EventFeature.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\EventFeatureEventsInterface' => $vendorDir . '/zendframework/zend-db/src/TableGateway/Feature/EventFeatureEventsInterface.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\EventFeature\\TableGatewayEvent' => $vendorDir . '/zendframework/zend-db/src/TableGateway/Feature/EventFeature/TableGatewayEvent.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\FeatureSet' => $vendorDir . '/zendframework/zend-db/src/TableGateway/Feature/FeatureSet.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\GlobalAdapterFeature' => $vendorDir . '/zendframework/zend-db/src/TableGateway/Feature/GlobalAdapterFeature.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\MasterSlaveFeature' => $vendorDir . '/zendframework/zend-db/src/TableGateway/Feature/MasterSlaveFeature.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\MetadataFeature' => $vendorDir . '/zendframework/zend-db/src/TableGateway/Feature/MetadataFeature.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\RowGatewayFeature' => $vendorDir . '/zendframework/zend-db/src/TableGateway/Feature/RowGatewayFeature.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\SequenceFeature' => $vendorDir . '/zendframework/zend-db/src/TableGateway/Feature/SequenceFeature.php',
|
||||
'Zend\\Db\\TableGateway\\TableGateway' => $vendorDir . '/zendframework/zend-db/src/TableGateway/TableGateway.php',
|
||||
'Zend\\Db\\TableGateway\\TableGatewayInterface' => $vendorDir . '/zendframework/zend-db/src/TableGateway/TableGatewayInterface.php',
|
||||
'Zend\\Stdlib\\AbstractOptions' => $vendorDir . '/zendframework/zend-stdlib/src/AbstractOptions.php',
|
||||
'Zend\\Stdlib\\ArrayObject' => $vendorDir . '/zendframework/zend-stdlib/src/ArrayObject.php',
|
||||
'Zend\\Stdlib\\ArraySerializableInterface' => $vendorDir . '/zendframework/zend-stdlib/src/ArraySerializableInterface.php',
|
||||
'Zend\\Stdlib\\ArrayStack' => $vendorDir . '/zendframework/zend-stdlib/src/ArrayStack.php',
|
||||
'Zend\\Stdlib\\ArrayUtils' => $vendorDir . '/zendframework/zend-stdlib/src/ArrayUtils.php',
|
||||
'Zend\\Stdlib\\ArrayUtils\\MergeRemoveKey' => $vendorDir . '/zendframework/zend-stdlib/src/ArrayUtils/MergeRemoveKey.php',
|
||||
'Zend\\Stdlib\\ArrayUtils\\MergeReplaceKey' => $vendorDir . '/zendframework/zend-stdlib/src/ArrayUtils/MergeReplaceKey.php',
|
||||
'Zend\\Stdlib\\ArrayUtils\\MergeReplaceKeyInterface' => $vendorDir . '/zendframework/zend-stdlib/src/ArrayUtils/MergeReplaceKeyInterface.php',
|
||||
'Zend\\Stdlib\\ConsoleHelper' => $vendorDir . '/zendframework/zend-stdlib/src/ConsoleHelper.php',
|
||||
'Zend\\Stdlib\\DispatchableInterface' => $vendorDir . '/zendframework/zend-stdlib/src/DispatchableInterface.php',
|
||||
'Zend\\Stdlib\\ErrorHandler' => $vendorDir . '/zendframework/zend-stdlib/src/ErrorHandler.php',
|
||||
'Zend\\Stdlib\\Exception\\BadMethodCallException' => $vendorDir . '/zendframework/zend-stdlib/src/Exception/BadMethodCallException.php',
|
||||
'Zend\\Stdlib\\Exception\\DomainException' => $vendorDir . '/zendframework/zend-stdlib/src/Exception/DomainException.php',
|
||||
'Zend\\Stdlib\\Exception\\ExceptionInterface' => $vendorDir . '/zendframework/zend-stdlib/src/Exception/ExceptionInterface.php',
|
||||
'Zend\\Stdlib\\Exception\\ExtensionNotLoadedException' => $vendorDir . '/zendframework/zend-stdlib/src/Exception/ExtensionNotLoadedException.php',
|
||||
'Zend\\Stdlib\\Exception\\InvalidArgumentException' => $vendorDir . '/zendframework/zend-stdlib/src/Exception/InvalidArgumentException.php',
|
||||
'Zend\\Stdlib\\Exception\\LogicException' => $vendorDir . '/zendframework/zend-stdlib/src/Exception/LogicException.php',
|
||||
'Zend\\Stdlib\\Exception\\RuntimeException' => $vendorDir . '/zendframework/zend-stdlib/src/Exception/RuntimeException.php',
|
||||
'Zend\\Stdlib\\FastPriorityQueue' => $vendorDir . '/zendframework/zend-stdlib/src/FastPriorityQueue.php',
|
||||
'Zend\\Stdlib\\Glob' => $vendorDir . '/zendframework/zend-stdlib/src/Glob.php',
|
||||
'Zend\\Stdlib\\Guard\\AllGuardsTrait' => $vendorDir . '/zendframework/zend-stdlib/src/Guard/AllGuardsTrait.php',
|
||||
'Zend\\Stdlib\\Guard\\ArrayOrTraversableGuardTrait' => $vendorDir . '/zendframework/zend-stdlib/src/Guard/ArrayOrTraversableGuardTrait.php',
|
||||
'Zend\\Stdlib\\Guard\\EmptyGuardTrait' => $vendorDir . '/zendframework/zend-stdlib/src/Guard/EmptyGuardTrait.php',
|
||||
'Zend\\Stdlib\\Guard\\NullGuardTrait' => $vendorDir . '/zendframework/zend-stdlib/src/Guard/NullGuardTrait.php',
|
||||
'Zend\\Stdlib\\InitializableInterface' => $vendorDir . '/zendframework/zend-stdlib/src/InitializableInterface.php',
|
||||
'Zend\\Stdlib\\JsonSerializable' => $vendorDir . '/zendframework/zend-stdlib/src/JsonSerializable.php',
|
||||
'Zend\\Stdlib\\Message' => $vendorDir . '/zendframework/zend-stdlib/src/Message.php',
|
||||
'Zend\\Stdlib\\MessageInterface' => $vendorDir . '/zendframework/zend-stdlib/src/MessageInterface.php',
|
||||
'Zend\\Stdlib\\ParameterObjectInterface' => $vendorDir . '/zendframework/zend-stdlib/src/ParameterObjectInterface.php',
|
||||
'Zend\\Stdlib\\Parameters' => $vendorDir . '/zendframework/zend-stdlib/src/Parameters.php',
|
||||
'Zend\\Stdlib\\ParametersInterface' => $vendorDir . '/zendframework/zend-stdlib/src/ParametersInterface.php',
|
||||
'Zend\\Stdlib\\PriorityList' => $vendorDir . '/zendframework/zend-stdlib/src/PriorityList.php',
|
||||
'Zend\\Stdlib\\PriorityQueue' => $vendorDir . '/zendframework/zend-stdlib/src/PriorityQueue.php',
|
||||
'Zend\\Stdlib\\Request' => $vendorDir . '/zendframework/zend-stdlib/src/Request.php',
|
||||
'Zend\\Stdlib\\RequestInterface' => $vendorDir . '/zendframework/zend-stdlib/src/RequestInterface.php',
|
||||
'Zend\\Stdlib\\Response' => $vendorDir . '/zendframework/zend-stdlib/src/Response.php',
|
||||
'Zend\\Stdlib\\ResponseInterface' => $vendorDir . '/zendframework/zend-stdlib/src/ResponseInterface.php',
|
||||
'Zend\\Stdlib\\SplPriorityQueue' => $vendorDir . '/zendframework/zend-stdlib/src/SplPriorityQueue.php',
|
||||
'Zend\\Stdlib\\SplQueue' => $vendorDir . '/zendframework/zend-stdlib/src/SplQueue.php',
|
||||
'Zend\\Stdlib\\SplStack' => $vendorDir . '/zendframework/zend-stdlib/src/SplStack.php',
|
||||
'Zend\\Stdlib\\StringUtils' => $vendorDir . '/zendframework/zend-stdlib/src/StringUtils.php',
|
||||
'Zend\\Stdlib\\StringWrapper\\AbstractStringWrapper' => $vendorDir . '/zendframework/zend-stdlib/src/StringWrapper/AbstractStringWrapper.php',
|
||||
'Zend\\Stdlib\\StringWrapper\\Iconv' => $vendorDir . '/zendframework/zend-stdlib/src/StringWrapper/Iconv.php',
|
||||
'Zend\\Stdlib\\StringWrapper\\Intl' => $vendorDir . '/zendframework/zend-stdlib/src/StringWrapper/Intl.php',
|
||||
'Zend\\Stdlib\\StringWrapper\\MbString' => $vendorDir . '/zendframework/zend-stdlib/src/StringWrapper/MbString.php',
|
||||
'Zend\\Stdlib\\StringWrapper\\Native' => $vendorDir . '/zendframework/zend-stdlib/src/StringWrapper/Native.php',
|
||||
'Zend\\Stdlib\\StringWrapper\\StringWrapperInterface' => $vendorDir . '/zendframework/zend-stdlib/src/StringWrapper/StringWrapperInterface.php',
|
||||
'voku\\cache\\AdapterApc' => $vendorDir . '/voku/simple-cache/src/voku/cache/AdapterApc.php',
|
||||
'voku\\cache\\AdapterApcu' => $vendorDir . '/voku/simple-cache/src/voku/cache/AdapterApcu.php',
|
||||
'voku\\cache\\AdapterArray' => $vendorDir . '/voku/simple-cache/src/voku/cache/AdapterArray.php',
|
||||
@@ -284,9 +35,15 @@ return array(
|
||||
'voku\\cache\\CacheAdapterAutoManager' => $vendorDir . '/voku/simple-cache/src/voku/cache/CacheAdapterAutoManager.php',
|
||||
'voku\\cache\\CacheChain' => $vendorDir . '/voku/simple-cache/src/voku/cache/CacheChain.php',
|
||||
'voku\\cache\\CachePsr16' => $vendorDir . '/voku/simple-cache/src/voku/cache/CachePsr16.php',
|
||||
'voku\\cache\\Exception\\ChmodException' => $vendorDir . '/voku/simple-cache/src/voku/cache/Exception/ChmodException.php',
|
||||
'voku\\cache\\Exception\\FileErrorExceptionInterface' => $vendorDir . '/voku/simple-cache/src/voku/cache/Exception/FileErrorExceptionInterface.php',
|
||||
'voku\\cache\\Exception\\InvalidArgumentException' => $vendorDir . '/voku/simple-cache/src/voku/cache/Exception/InvalidArgumentException.php',
|
||||
'voku\\cache\\Exception\\RenameException' => $vendorDir . '/voku/simple-cache/src/voku/cache/Exception/RenameException.php',
|
||||
'voku\\cache\\Exception\\RuntimeException' => $vendorDir . '/voku/simple-cache/src/voku/cache/Exception/RuntimeException.php',
|
||||
'voku\\cache\\Exception\\WriteContentException' => $vendorDir . '/voku/simple-cache/src/voku/cache/Exception/WriteContentException.php',
|
||||
'voku\\cache\\SerializerDefault' => $vendorDir . '/voku/simple-cache/src/voku/cache/SerializerDefault.php',
|
||||
'voku\\cache\\SerializerIgbinary' => $vendorDir . '/voku/simple-cache/src/voku/cache/SerializerIgbinary.php',
|
||||
'voku\\cache\\SerializerMsgpack' => $vendorDir . '/voku/simple-cache/src/voku/cache/SerializerMsgpack.php',
|
||||
'voku\\cache\\SerializerNo' => $vendorDir . '/voku/simple-cache/src/voku/cache/SerializerNo.php',
|
||||
'voku\\cache\\iAdapter' => $vendorDir . '/voku/simple-cache/src/voku/cache/iAdapter.php',
|
||||
'voku\\cache\\iCache' => $vendorDir . '/voku/simple-cache/src/voku/cache/iCache.php',
|
||||
|
||||
@@ -7,8 +7,6 @@ $baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'voku\\cache\\' => array($vendorDir . '/voku/simple-cache/src/voku/cache'),
|
||||
'Zend\\Stdlib\\' => array($vendorDir . '/zendframework/zend-stdlib/src'),
|
||||
'Zend\\Db\\' => array($vendorDir . '/zendframework/zend-db/src'),
|
||||
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
|
||||
'Katzgrau\\KLogger\\' => array($vendorDir . '/katzgrau/klogger/src'),
|
||||
);
|
||||
|
||||
@@ -13,19 +13,24 @@ class ComposerAutoloaderInitcbda25b16bb8365467298ce193f0f30c
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @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();
|
||||
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_once __DIR__ . '/autoload_static.php';
|
||||
require __DIR__ . '/autoload_static.php';
|
||||
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInitcbda25b16bb8365467298ce193f0f30c::getInitializer($loader));
|
||||
} else {
|
||||
@@ -45,7 +50,7 @@ class ComposerAutoloaderInitcbda25b16bb8365467298ce193f0f30c
|
||||
}
|
||||
}
|
||||
|
||||
$loader->setApcuPrefix('WIBdJgt9/OFG9RxODXgrL');
|
||||
$loader->setApcuPrefix('stPjNJ6R//PsoDT+nlxLT');
|
||||
$loader->register(true);
|
||||
|
||||
return $loader;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -11,11 +11,6 @@ class ComposerStaticInitcbda25b16bb8365467298ce193f0f30c
|
||||
array (
|
||||
'voku\\cache\\' => 11,
|
||||
),
|
||||
'Z' =>
|
||||
array (
|
||||
'Zend\\Stdlib\\' => 12,
|
||||
'Zend\\Db\\' => 8,
|
||||
),
|
||||
'P' =>
|
||||
array (
|
||||
'Psr\\SimpleCache\\' => 16,
|
||||
@@ -31,14 +26,6 @@ class ComposerStaticInitcbda25b16bb8365467298ce193f0f30c
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/voku/simple-cache/src/voku/cache',
|
||||
),
|
||||
'Zend\\Stdlib\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/zendframework/zend-stdlib/src',
|
||||
),
|
||||
'Zend\\Db\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/zendframework/zend-db/src',
|
||||
),
|
||||
'Psr\\SimpleCache\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/psr/simple-cache/src',
|
||||
@@ -60,6 +47,7 @@ class ComposerStaticInitcbda25b16bb8365467298ce193f0f30c
|
||||
);
|
||||
|
||||
public static $classMap = array (
|
||||
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
||||
'Katzgrau\\KLogger\\Logger' => __DIR__ . '/..' . '/katzgrau/klogger/src/Logger.php',
|
||||
'Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/AbstractLogger.php',
|
||||
'Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/Psr/Log/InvalidArgumentException.php',
|
||||
@@ -69,260 +57,10 @@ class ComposerStaticInitcbda25b16bb8365467298ce193f0f30c
|
||||
'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\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.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',
|
||||
'Zend\\Db\\Adapter\\Adapter' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Adapter.php',
|
||||
'Zend\\Db\\Adapter\\AdapterAbstractServiceFactory' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/AdapterAbstractServiceFactory.php',
|
||||
'Zend\\Db\\Adapter\\AdapterAwareInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/AdapterAwareInterface.php',
|
||||
'Zend\\Db\\Adapter\\AdapterAwareTrait' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/AdapterAwareTrait.php',
|
||||
'Zend\\Db\\Adapter\\AdapterInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/AdapterInterface.php',
|
||||
'Zend\\Db\\Adapter\\AdapterServiceFactory' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/AdapterServiceFactory.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\AbstractConnection' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/AbstractConnection.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\ConnectionInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/ConnectionInterface.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\DriverInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/DriverInterface.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Feature\\AbstractFeature' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Feature/AbstractFeature.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Feature\\DriverFeatureInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Feature/DriverFeatureInterface.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\IbmDb2\\Connection' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/IbmDb2/Connection.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\IbmDb2\\IbmDb2' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/IbmDb2/IbmDb2.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\IbmDb2\\Result' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/IbmDb2/Result.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\IbmDb2\\Statement' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/IbmDb2/Statement.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Mysqli\\Connection' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Mysqli/Connection.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Mysqli\\Mysqli' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Mysqli/Mysqli.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Mysqli\\Result' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Mysqli/Result.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Mysqli\\Statement' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Mysqli/Statement.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Oci8\\Connection' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Oci8/Connection.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Oci8\\Feature\\RowCounter' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Oci8/Feature/RowCounter.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Oci8\\Oci8' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Oci8/Oci8.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Oci8\\Result' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Oci8/Result.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Oci8\\Statement' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Oci8/Statement.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pdo\\Connection' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Pdo/Connection.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pdo\\Feature\\OracleRowCounter' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Pdo/Feature/OracleRowCounter.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pdo\\Feature\\SqliteRowCounter' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Pdo/Feature/SqliteRowCounter.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pdo\\Pdo' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Pdo/Pdo.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pdo\\Result' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Pdo/Result.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pdo\\Statement' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pgsql\\Connection' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Pgsql/Connection.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pgsql\\Pgsql' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Pgsql/Pgsql.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pgsql\\Result' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Pgsql/Result.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Pgsql\\Statement' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Pgsql/Statement.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\ResultInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/ResultInterface.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Sqlsrv\\Connection' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Sqlsrv/Connection.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Sqlsrv\\Exception\\ErrorException' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Sqlsrv/Exception/ErrorException.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Sqlsrv\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Sqlsrv/Exception/ExceptionInterface.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Sqlsrv\\Result' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Sqlsrv/Result.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Sqlsrv\\Sqlsrv' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Sqlsrv/Sqlsrv.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\Sqlsrv\\Statement' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/Sqlsrv/Statement.php',
|
||||
'Zend\\Db\\Adapter\\Driver\\StatementInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Driver/StatementInterface.php',
|
||||
'Zend\\Db\\Adapter\\Exception\\ErrorException' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Exception/ErrorException.php',
|
||||
'Zend\\Db\\Adapter\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Exception/ExceptionInterface.php',
|
||||
'Zend\\Db\\Adapter\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Exception/InvalidArgumentException.php',
|
||||
'Zend\\Db\\Adapter\\Exception\\InvalidConnectionParametersException' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Exception/InvalidConnectionParametersException.php',
|
||||
'Zend\\Db\\Adapter\\Exception\\InvalidQueryException' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Exception/InvalidQueryException.php',
|
||||
'Zend\\Db\\Adapter\\Exception\\RuntimeException' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Exception/RuntimeException.php',
|
||||
'Zend\\Db\\Adapter\\Exception\\UnexpectedValueException' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Exception/UnexpectedValueException.php',
|
||||
'Zend\\Db\\Adapter\\ParameterContainer' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/ParameterContainer.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\AbstractPlatform' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Platform/AbstractPlatform.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\IbmDb2' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Platform/IbmDb2.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\Mysql' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Platform/Mysql.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\Oracle' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Platform/Oracle.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\PlatformInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Platform/PlatformInterface.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\Postgresql' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Platform/Postgresql.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\Sql92' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Platform/Sql92.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\SqlServer' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Platform/SqlServer.php',
|
||||
'Zend\\Db\\Adapter\\Platform\\Sqlite' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Platform/Sqlite.php',
|
||||
'Zend\\Db\\Adapter\\Profiler\\Profiler' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Profiler/Profiler.php',
|
||||
'Zend\\Db\\Adapter\\Profiler\\ProfilerAwareInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Profiler/ProfilerAwareInterface.php',
|
||||
'Zend\\Db\\Adapter\\Profiler\\ProfilerInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/Profiler/ProfilerInterface.php',
|
||||
'Zend\\Db\\Adapter\\StatementContainer' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/StatementContainer.php',
|
||||
'Zend\\Db\\Adapter\\StatementContainerInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Adapter/StatementContainerInterface.php',
|
||||
'Zend\\Db\\ConfigProvider' => __DIR__ . '/..' . '/zendframework/zend-db/src/ConfigProvider.php',
|
||||
'Zend\\Db\\Exception\\ErrorException' => __DIR__ . '/..' . '/zendframework/zend-db/src/Exception/ErrorException.php',
|
||||
'Zend\\Db\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Exception/ExceptionInterface.php',
|
||||
'Zend\\Db\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/zendframework/zend-db/src/Exception/InvalidArgumentException.php',
|
||||
'Zend\\Db\\Exception\\RuntimeException' => __DIR__ . '/..' . '/zendframework/zend-db/src/Exception/RuntimeException.php',
|
||||
'Zend\\Db\\Exception\\UnexpectedValueException' => __DIR__ . '/..' . '/zendframework/zend-db/src/Exception/UnexpectedValueException.php',
|
||||
'Zend\\Db\\Metadata\\Metadata' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/Metadata.php',
|
||||
'Zend\\Db\\Metadata\\MetadataInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/MetadataInterface.php',
|
||||
'Zend\\Db\\Metadata\\Object\\AbstractTableObject' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/Object/AbstractTableObject.php',
|
||||
'Zend\\Db\\Metadata\\Object\\ColumnObject' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/Object/ColumnObject.php',
|
||||
'Zend\\Db\\Metadata\\Object\\ConstraintKeyObject' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/Object/ConstraintKeyObject.php',
|
||||
'Zend\\Db\\Metadata\\Object\\ConstraintObject' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/Object/ConstraintObject.php',
|
||||
'Zend\\Db\\Metadata\\Object\\TableObject' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/Object/TableObject.php',
|
||||
'Zend\\Db\\Metadata\\Object\\TriggerObject' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/Object/TriggerObject.php',
|
||||
'Zend\\Db\\Metadata\\Object\\ViewObject' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/Object/ViewObject.php',
|
||||
'Zend\\Db\\Metadata\\Source\\AbstractSource' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/Source/AbstractSource.php',
|
||||
'Zend\\Db\\Metadata\\Source\\Factory' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/Source/Factory.php',
|
||||
'Zend\\Db\\Metadata\\Source\\MysqlMetadata' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/Source/MysqlMetadata.php',
|
||||
'Zend\\Db\\Metadata\\Source\\OracleMetadata' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/Source/OracleMetadata.php',
|
||||
'Zend\\Db\\Metadata\\Source\\PostgresqlMetadata' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/Source/PostgresqlMetadata.php',
|
||||
'Zend\\Db\\Metadata\\Source\\SqlServerMetadata' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/Source/SqlServerMetadata.php',
|
||||
'Zend\\Db\\Metadata\\Source\\SqliteMetadata' => __DIR__ . '/..' . '/zendframework/zend-db/src/Metadata/Source/SqliteMetadata.php',
|
||||
'Zend\\Db\\Module' => __DIR__ . '/..' . '/zendframework/zend-db/src/Module.php',
|
||||
'Zend\\Db\\ResultSet\\AbstractResultSet' => __DIR__ . '/..' . '/zendframework/zend-db/src/ResultSet/AbstractResultSet.php',
|
||||
'Zend\\Db\\ResultSet\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/ResultSet/Exception/ExceptionInterface.php',
|
||||
'Zend\\Db\\ResultSet\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/zendframework/zend-db/src/ResultSet/Exception/InvalidArgumentException.php',
|
||||
'Zend\\Db\\ResultSet\\Exception\\RuntimeException' => __DIR__ . '/..' . '/zendframework/zend-db/src/ResultSet/Exception/RuntimeException.php',
|
||||
'Zend\\Db\\ResultSet\\HydratingResultSet' => __DIR__ . '/..' . '/zendframework/zend-db/src/ResultSet/HydratingResultSet.php',
|
||||
'Zend\\Db\\ResultSet\\ResultSet' => __DIR__ . '/..' . '/zendframework/zend-db/src/ResultSet/ResultSet.php',
|
||||
'Zend\\Db\\ResultSet\\ResultSetInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/ResultSet/ResultSetInterface.php',
|
||||
'Zend\\Db\\RowGateway\\AbstractRowGateway' => __DIR__ . '/..' . '/zendframework/zend-db/src/RowGateway/AbstractRowGateway.php',
|
||||
'Zend\\Db\\RowGateway\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/RowGateway/Exception/ExceptionInterface.php',
|
||||
'Zend\\Db\\RowGateway\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/zendframework/zend-db/src/RowGateway/Exception/InvalidArgumentException.php',
|
||||
'Zend\\Db\\RowGateway\\Exception\\RuntimeException' => __DIR__ . '/..' . '/zendframework/zend-db/src/RowGateway/Exception/RuntimeException.php',
|
||||
'Zend\\Db\\RowGateway\\Feature\\AbstractFeature' => __DIR__ . '/..' . '/zendframework/zend-db/src/RowGateway/Feature/AbstractFeature.php',
|
||||
'Zend\\Db\\RowGateway\\Feature\\FeatureSet' => __DIR__ . '/..' . '/zendframework/zend-db/src/RowGateway/Feature/FeatureSet.php',
|
||||
'Zend\\Db\\RowGateway\\RowGateway' => __DIR__ . '/..' . '/zendframework/zend-db/src/RowGateway/RowGateway.php',
|
||||
'Zend\\Db\\RowGateway\\RowGatewayInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/RowGateway/RowGatewayInterface.php',
|
||||
'Zend\\Db\\Sql\\AbstractExpression' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/AbstractExpression.php',
|
||||
'Zend\\Db\\Sql\\AbstractPreparableSql' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/AbstractPreparableSql.php',
|
||||
'Zend\\Db\\Sql\\AbstractSql' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/AbstractSql.php',
|
||||
'Zend\\Db\\Sql\\Combine' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Combine.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\AlterTable' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/AlterTable.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\AbstractLengthColumn' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/AbstractLengthColumn.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\AbstractPrecisionColumn' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/AbstractPrecisionColumn.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\AbstractTimestampColumn' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/AbstractTimestampColumn.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\BigInteger' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/BigInteger.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Binary' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Binary.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Blob' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Blob.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Boolean' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Boolean.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Char' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Char.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Column' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Column.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\ColumnInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/ColumnInterface.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Date' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Date.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Datetime' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Datetime.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Decimal' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Decimal.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Float' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Float.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Floating' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Floating.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Integer' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Integer.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Text' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Text.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Time' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Time.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Timestamp' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Timestamp.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Varbinary' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Varbinary.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Column\\Varchar' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Column/Varchar.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Constraint\\AbstractConstraint' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Constraint/AbstractConstraint.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Constraint\\Check' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Constraint/Check.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Constraint\\ConstraintInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Constraint/ConstraintInterface.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Constraint\\ForeignKey' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Constraint/ForeignKey.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Constraint\\PrimaryKey' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Constraint/PrimaryKey.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Constraint\\UniqueKey' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Constraint/UniqueKey.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\CreateTable' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/CreateTable.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\DropTable' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/DropTable.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Index\\AbstractIndex' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Index/AbstractIndex.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\Index\\Index' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/Index/Index.php',
|
||||
'Zend\\Db\\Sql\\Ddl\\SqlInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Ddl/SqlInterface.php',
|
||||
'Zend\\Db\\Sql\\Delete' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Delete.php',
|
||||
'Zend\\Db\\Sql\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Exception/ExceptionInterface.php',
|
||||
'Zend\\Db\\Sql\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Exception/InvalidArgumentException.php',
|
||||
'Zend\\Db\\Sql\\Exception\\RuntimeException' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Exception/RuntimeException.php',
|
||||
'Zend\\Db\\Sql\\Expression' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Expression.php',
|
||||
'Zend\\Db\\Sql\\ExpressionInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/ExpressionInterface.php',
|
||||
'Zend\\Db\\Sql\\Having' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Having.php',
|
||||
'Zend\\Db\\Sql\\Insert' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Insert.php',
|
||||
'Zend\\Db\\Sql\\Join' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Join.php',
|
||||
'Zend\\Db\\Sql\\Literal' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Literal.php',
|
||||
'Zend\\Db\\Sql\\Platform\\AbstractPlatform' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/AbstractPlatform.php',
|
||||
'Zend\\Db\\Sql\\Platform\\IbmDb2\\IbmDb2' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/IbmDb2/IbmDb2.php',
|
||||
'Zend\\Db\\Sql\\Platform\\IbmDb2\\SelectDecorator' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/IbmDb2/SelectDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Mysql\\Ddl\\AlterTableDecorator' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/Mysql/Ddl/AlterTableDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Mysql\\Ddl\\CreateTableDecorator' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/Mysql/Ddl/CreateTableDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Mysql\\Mysql' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/Mysql/Mysql.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Mysql\\SelectDecorator' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/Mysql/SelectDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Oracle\\Oracle' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/Oracle/Oracle.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Oracle\\SelectDecorator' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/Oracle/SelectDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Platform' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/Platform.php',
|
||||
'Zend\\Db\\Sql\\Platform\\PlatformDecoratorInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/PlatformDecoratorInterface.php',
|
||||
'Zend\\Db\\Sql\\Platform\\SqlServer\\Ddl\\CreateTableDecorator' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/SqlServer/Ddl/CreateTableDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\SqlServer\\SelectDecorator' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/SqlServer/SelectDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\SqlServer\\SqlServer' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/SqlServer/SqlServer.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Sqlite\\SelectDecorator' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/Sqlite/SelectDecorator.php',
|
||||
'Zend\\Db\\Sql\\Platform\\Sqlite\\Sqlite' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Platform/Sqlite/Sqlite.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\Between' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Predicate/Between.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\Expression' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Predicate/Expression.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\In' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Predicate/In.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\IsNotNull' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Predicate/IsNotNull.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\IsNull' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Predicate/IsNull.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\Like' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Predicate/Like.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\Literal' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Predicate/Literal.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\NotBetween' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Predicate/NotBetween.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\NotIn' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Predicate/NotIn.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\NotLike' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Predicate/NotLike.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\Operator' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Predicate/Operator.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\Predicate' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Predicate/Predicate.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\PredicateInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Predicate/PredicateInterface.php',
|
||||
'Zend\\Db\\Sql\\Predicate\\PredicateSet' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Predicate/PredicateSet.php',
|
||||
'Zend\\Db\\Sql\\PreparableSqlInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/PreparableSqlInterface.php',
|
||||
'Zend\\Db\\Sql\\Select' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Select.php',
|
||||
'Zend\\Db\\Sql\\Sql' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Sql.php',
|
||||
'Zend\\Db\\Sql\\SqlInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/SqlInterface.php',
|
||||
'Zend\\Db\\Sql\\TableIdentifier' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/TableIdentifier.php',
|
||||
'Zend\\Db\\Sql\\Update' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Update.php',
|
||||
'Zend\\Db\\Sql\\Where' => __DIR__ . '/..' . '/zendframework/zend-db/src/Sql/Where.php',
|
||||
'Zend\\Db\\TableGateway\\AbstractTableGateway' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/AbstractTableGateway.php',
|
||||
'Zend\\Db\\TableGateway\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/Exception/ExceptionInterface.php',
|
||||
'Zend\\Db\\TableGateway\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/Exception/InvalidArgumentException.php',
|
||||
'Zend\\Db\\TableGateway\\Exception\\RuntimeException' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/Exception/RuntimeException.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\AbstractFeature' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/Feature/AbstractFeature.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\EventFeature' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/Feature/EventFeature.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\EventFeatureEventsInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/Feature/EventFeatureEventsInterface.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\EventFeature\\TableGatewayEvent' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/Feature/EventFeature/TableGatewayEvent.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\FeatureSet' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/Feature/FeatureSet.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\GlobalAdapterFeature' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/Feature/GlobalAdapterFeature.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\MasterSlaveFeature' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/Feature/MasterSlaveFeature.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\MetadataFeature' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/Feature/MetadataFeature.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\RowGatewayFeature' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/Feature/RowGatewayFeature.php',
|
||||
'Zend\\Db\\TableGateway\\Feature\\SequenceFeature' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/Feature/SequenceFeature.php',
|
||||
'Zend\\Db\\TableGateway\\TableGateway' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/TableGateway.php',
|
||||
'Zend\\Db\\TableGateway\\TableGatewayInterface' => __DIR__ . '/..' . '/zendframework/zend-db/src/TableGateway/TableGatewayInterface.php',
|
||||
'Zend\\Stdlib\\AbstractOptions' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/AbstractOptions.php',
|
||||
'Zend\\Stdlib\\ArrayObject' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/ArrayObject.php',
|
||||
'Zend\\Stdlib\\ArraySerializableInterface' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/ArraySerializableInterface.php',
|
||||
'Zend\\Stdlib\\ArrayStack' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/ArrayStack.php',
|
||||
'Zend\\Stdlib\\ArrayUtils' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/ArrayUtils.php',
|
||||
'Zend\\Stdlib\\ArrayUtils\\MergeRemoveKey' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/ArrayUtils/MergeRemoveKey.php',
|
||||
'Zend\\Stdlib\\ArrayUtils\\MergeReplaceKey' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/ArrayUtils/MergeReplaceKey.php',
|
||||
'Zend\\Stdlib\\ArrayUtils\\MergeReplaceKeyInterface' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/ArrayUtils/MergeReplaceKeyInterface.php',
|
||||
'Zend\\Stdlib\\ConsoleHelper' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/ConsoleHelper.php',
|
||||
'Zend\\Stdlib\\DispatchableInterface' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/DispatchableInterface.php',
|
||||
'Zend\\Stdlib\\ErrorHandler' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/ErrorHandler.php',
|
||||
'Zend\\Stdlib\\Exception\\BadMethodCallException' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Exception/BadMethodCallException.php',
|
||||
'Zend\\Stdlib\\Exception\\DomainException' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Exception/DomainException.php',
|
||||
'Zend\\Stdlib\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Exception/ExceptionInterface.php',
|
||||
'Zend\\Stdlib\\Exception\\ExtensionNotLoadedException' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Exception/ExtensionNotLoadedException.php',
|
||||
'Zend\\Stdlib\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Exception/InvalidArgumentException.php',
|
||||
'Zend\\Stdlib\\Exception\\LogicException' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Exception/LogicException.php',
|
||||
'Zend\\Stdlib\\Exception\\RuntimeException' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Exception/RuntimeException.php',
|
||||
'Zend\\Stdlib\\FastPriorityQueue' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/FastPriorityQueue.php',
|
||||
'Zend\\Stdlib\\Glob' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Glob.php',
|
||||
'Zend\\Stdlib\\Guard\\AllGuardsTrait' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Guard/AllGuardsTrait.php',
|
||||
'Zend\\Stdlib\\Guard\\ArrayOrTraversableGuardTrait' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Guard/ArrayOrTraversableGuardTrait.php',
|
||||
'Zend\\Stdlib\\Guard\\EmptyGuardTrait' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Guard/EmptyGuardTrait.php',
|
||||
'Zend\\Stdlib\\Guard\\NullGuardTrait' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Guard/NullGuardTrait.php',
|
||||
'Zend\\Stdlib\\InitializableInterface' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/InitializableInterface.php',
|
||||
'Zend\\Stdlib\\JsonSerializable' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/JsonSerializable.php',
|
||||
'Zend\\Stdlib\\Message' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Message.php',
|
||||
'Zend\\Stdlib\\MessageInterface' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/MessageInterface.php',
|
||||
'Zend\\Stdlib\\ParameterObjectInterface' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/ParameterObjectInterface.php',
|
||||
'Zend\\Stdlib\\Parameters' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Parameters.php',
|
||||
'Zend\\Stdlib\\ParametersInterface' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/ParametersInterface.php',
|
||||
'Zend\\Stdlib\\PriorityList' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/PriorityList.php',
|
||||
'Zend\\Stdlib\\PriorityQueue' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/PriorityQueue.php',
|
||||
'Zend\\Stdlib\\Request' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Request.php',
|
||||
'Zend\\Stdlib\\RequestInterface' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/RequestInterface.php',
|
||||
'Zend\\Stdlib\\Response' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/Response.php',
|
||||
'Zend\\Stdlib\\ResponseInterface' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/ResponseInterface.php',
|
||||
'Zend\\Stdlib\\SplPriorityQueue' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/SplPriorityQueue.php',
|
||||
'Zend\\Stdlib\\SplQueue' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/SplQueue.php',
|
||||
'Zend\\Stdlib\\SplStack' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/SplStack.php',
|
||||
'Zend\\Stdlib\\StringUtils' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/StringUtils.php',
|
||||
'Zend\\Stdlib\\StringWrapper\\AbstractStringWrapper' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/StringWrapper/AbstractStringWrapper.php',
|
||||
'Zend\\Stdlib\\StringWrapper\\Iconv' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/StringWrapper/Iconv.php',
|
||||
'Zend\\Stdlib\\StringWrapper\\Intl' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/StringWrapper/Intl.php',
|
||||
'Zend\\Stdlib\\StringWrapper\\MbString' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/StringWrapper/MbString.php',
|
||||
'Zend\\Stdlib\\StringWrapper\\Native' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/StringWrapper/Native.php',
|
||||
'Zend\\Stdlib\\StringWrapper\\StringWrapperInterface' => __DIR__ . '/..' . '/zendframework/zend-stdlib/src/StringWrapper/StringWrapperInterface.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',
|
||||
@@ -338,9 +76,15 @@ class ComposerStaticInitcbda25b16bb8365467298ce193f0f30c
|
||||
'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',
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -1,378 +1,233 @@
|
||||
[
|
||||
{
|
||||
"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/"
|
||||
{
|
||||
"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"
|
||||
},
|
||||
"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"
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/katzgrau/klogger/zipball/46cdd92a9b4a8443120cc955bf831450cb274813",
|
||||
"reference": "46cdd92a9b4a8443120cc955bf831450cb274813",
|
||||
"shasum": ""
|
||||
},
|
||||
{
|
||||
"name": "Kenny Katzgrau",
|
||||
"email": "katzgrau@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "A Simple Logging Class",
|
||||
"keywords": [
|
||||
"logging"
|
||||
]
|
||||
},
|
||||
{
|
||||
"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\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for logging libraries",
|
||||
"keywords": [
|
||||
"log",
|
||||
"psr",
|
||||
"psr-3"
|
||||
]
|
||||
},
|
||||
{
|
||||
"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"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "voku/simple-cache",
|
||||
"version": "4.0.1",
|
||||
"version_normalized": "4.0.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/voku/simple-cache.git",
|
||||
"reference": "dfda1d803fd79d9ee918e1bac700c94a6f30659c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/voku/simple-cache/zipball/dfda1d803fd79d9ee918e1bac700c94a6f30659c",
|
||||
"reference": "dfda1d803fd79d9ee918e1bac700c94a6f30659c",
|
||||
"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"
|
||||
},
|
||||
"time": "2019-03-03T10:23:55+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"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "zendframework/zend-db",
|
||||
"version": "2.10.0",
|
||||
"version_normalized": "2.10.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zendframework/zend-db.git",
|
||||
"reference": "320f5faaa0f98ebc93be5476ec4eda28255935c4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://packages.zendframework.com/composer/zendframework-zend-db-2.10.0-5a43dc.zip",
|
||||
"reference": "320f5faaa0f98ebc93be5476ec4eda28255935c4",
|
||||
"shasum": "3f285fe0d475cac25e350787779019caa6ddb188"
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0",
|
||||
"zendframework/zend-stdlib": "^2.7 || ^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^5.7.25 || ^6.4.4",
|
||||
"zendframework/zend-coding-standard": "~1.0.0",
|
||||
"zendframework/zend-eventmanager": "^2.6.2 || ^3.0",
|
||||
"zendframework/zend-hydrator": "^1.1 || ^2.1 || ^3.0",
|
||||
"zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
|
||||
},
|
||||
"suggest": {
|
||||
"zendframework/zend-eventmanager": "Zend\\EventManager component",
|
||||
"zendframework/zend-hydrator": "Zend\\Hydrator component for using HydratingResultSets",
|
||||
"zendframework/zend-servicemanager": "Zend\\ServiceManager component"
|
||||
},
|
||||
"time": "2019-02-25T11:37:45+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.9-dev",
|
||||
"dev-develop": "2.10-dev"
|
||||
"require": {
|
||||
"php": ">=5.3",
|
||||
"psr/log": "1.0.0"
|
||||
},
|
||||
"zf": {
|
||||
"component": "Zend\\Db",
|
||||
"config-provider": "Zend\\Db\\ConfigProvider"
|
||||
}
|
||||
"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"
|
||||
}
|
||||
],
|
||||
"description": "A Simple Logging Class",
|
||||
"keywords": [
|
||||
"logging"
|
||||
],
|
||||
"install-path": "../katzgrau/klogger"
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Zend\\Db\\": "src/"
|
||||
}
|
||||
{
|
||||
"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\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"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"
|
||||
},
|
||||
"autoload-dev": {
|
||||
"files": [
|
||||
"test/autoload.php"
|
||||
{
|
||||
"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"
|
||||
],
|
||||
"psr-4": {
|
||||
"ZendTest\\Db\\": "test/unit",
|
||||
"ZendIntegrationTest\\Db\\": "test/integration"
|
||||
}
|
||||
"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"
|
||||
},
|
||||
"scripts": {
|
||||
"check": [
|
||||
"@cs-check",
|
||||
"@test"
|
||||
{
|
||||
"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"
|
||||
],
|
||||
"cs-check": [
|
||||
"phpcs"
|
||||
"authors": [
|
||||
{
|
||||
"name": "Lars Moelleken",
|
||||
"homepage": "http://www.moelleken.org/",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"cs-fix": [
|
||||
"phpcbf"
|
||||
"description": "Simple Cache library",
|
||||
"homepage": "https://github.com/voku/simple-cache",
|
||||
"keywords": [
|
||||
"cache",
|
||||
"caching",
|
||||
"php",
|
||||
"simple cache"
|
||||
],
|
||||
"test": [
|
||||
"phpunit --colors=always --testsuite \"unit test\""
|
||||
"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"
|
||||
}
|
||||
],
|
||||
"test-coverage": [
|
||||
"phpunit --colors=always --coverage-clover clover.xml"
|
||||
],
|
||||
"test-integration": [
|
||||
"phpunit --colors=always --testsuite \"integration test\""
|
||||
],
|
||||
"upload-coverage": [
|
||||
"coveralls -v"
|
||||
]
|
||||
},
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"description": "Database abstraction layer, SQL abstraction, result set abstraction, and RowDataGateway and TableDataGateway implementations",
|
||||
"keywords": [
|
||||
"db",
|
||||
"zendframework",
|
||||
"zf"
|
||||
],
|
||||
"support": {
|
||||
"docs": "https://docs.zendframework.com/zend-db/",
|
||||
"issues": "https://github.com/zendframework/zend-db/issues",
|
||||
"source": "https://github.com/zendframework/zend-db",
|
||||
"rss": "https://github.com/zendframework/zend-db/releases.atom",
|
||||
"slack": "https://zendframework-slack.herokuapp.com",
|
||||
"forum": "https://discourse.zendframework.com/c/questions/components"
|
||||
"install-path": "../voku/simple-cache"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "zendframework/zend-stdlib",
|
||||
"version": "3.2.1",
|
||||
"version_normalized": "3.2.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zendframework/zend-stdlib.git",
|
||||
"reference": "04e09d7f961b2271b0e1cbbb6f5f53ad23cf8562"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://packages.zendframework.com/composer/zendframework-zend-stdlib-3.2.1-90faf1.zip",
|
||||
"reference": "04e09d7f961b2271b0e1cbbb6f5f53ad23cf8562",
|
||||
"shasum": "36f654611fab0d6fe1ea1c72184a43f9810ce7c8"
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpbench/phpbench": "^0.13",
|
||||
"phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2",
|
||||
"zendframework/zend-coding-standard": "~1.0.0"
|
||||
},
|
||||
"time": "2018-08-28T21:34:05+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": {
|
||||
"Zend\\Stdlib\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"ZendTest\\Stdlib\\": "test/",
|
||||
"ZendBench\\Stdlib\\": "benchmark/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"check": [
|
||||
"@cs-check",
|
||||
"@test"
|
||||
],
|
||||
"cs-check": [
|
||||
"phpcs"
|
||||
],
|
||||
"cs-fix": [
|
||||
"phpcbf"
|
||||
],
|
||||
"test": [
|
||||
"phpunit --colors=always"
|
||||
],
|
||||
"test-coverage": [
|
||||
"phpunit --colors=always --coverage-clover clover.xml"
|
||||
]
|
||||
},
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"description": "SPL extensions, array utilities, error handlers, and more",
|
||||
"keywords": [
|
||||
"stdlib",
|
||||
"zendframework",
|
||||
"zf"
|
||||
],
|
||||
"support": {
|
||||
"docs": "https://docs.zendframework.com/zend-stdlib/",
|
||||
"issues": "https://github.com/zendframework/zend-stdlib/issues",
|
||||
"source": "https://github.com/zendframework/zend-stdlib",
|
||||
"rss": "https://github.com/zendframework/zend-stdlib/releases.atom",
|
||||
"slack": "https://zendframework-slack.herokuapp.com",
|
||||
"forum": "https://discourse.zendframework.com/c/questions/components"
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"dev": true,
|
||||
"dev-package-names": []
|
||||
}
|
||||
|
||||
@@ -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": []
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
<?php return array (
|
||||
'root' =>
|
||||
array (
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '1e645f52d45985949359c49ab147bcd45d6554f8',
|
||||
'name' => '__root__',
|
||||
),
|
||||
'versions' =>
|
||||
array (
|
||||
'__root__' =>
|
||||
array (
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '1e645f52d45985949359c49ab147bcd45d6554f8',
|
||||
),
|
||||
'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',
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -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
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
// platform_check.php @generated by Composer
|
||||
|
||||
$issues = array();
|
||||
|
||||
if (!(PHP_VERSION_ID >= 70000)) {
|
||||
$issues[] = 'Your Composer dependencies require a PHP version ">= 7.0.0". You are running ' . PHP_VERSION . '.';
|
||||
}
|
||||
|
||||
if ($issues) {
|
||||
if (!headers_sent()) {
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
}
|
||||
if (!ini_get('display_errors')) {
|
||||
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
||||
fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
|
||||
} elseif (!headers_sent()) {
|
||||
echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
|
||||
}
|
||||
}
|
||||
trigger_error(
|
||||
'Composer detected issues in your platform: ' . implode(' ', $issues),
|
||||
E_USER_ERROR
|
||||
);
|
||||
}
|
||||
@@ -1,3 +1,30 @@
|
||||
# Changelog 4.0.5 (2020-03-15)
|
||||
|
||||
- fix "symfony/var-exporter" for OpCache
|
||||
|
||||
# Changelog 4.0.4 (2020-03-15)
|
||||
|
||||
- use "symfony/var-exporter" for OpCache
|
||||
|
||||
-> better performance, because we don't need to serialize the data
|
||||
|
||||
-> but it's optional, because it required PHP >= 7.1
|
||||
|
||||
# Changelog 4.0.3 (2019-11-18)
|
||||
|
||||
- "iSerializer" -> add "getName()"
|
||||
- fix usage of "file_put_contents"
|
||||
- fix errors from php 7.4
|
||||
- fix return of "CacheChain" (return true, if one cache-instance was successfully)
|
||||
|
||||
|
||||
# Changelog 4.0.2 (2019-04-23)
|
||||
|
||||
- fix errors reported by phpstan (level 7)
|
||||
- fix for APC(u) + CLI usage
|
||||
- fix & new tests for "CacheChain" -> now accepts Cache objects instead of "iCache"
|
||||
|
||||
|
||||
# Changelog 4.0.1 (2019-03-03)
|
||||
|
||||
- hide "warning" about Zend OPcache API is restricted by "restrict_api"
|
||||
|
||||
@@ -27,6 +27,10 @@
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~6.0 || ~7.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/var-exporter" : "~3.0 || ~4.0 || ~5.0",
|
||||
"predis/predis": "~1.1"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"voku\\cache\\": "src/voku/cache/"
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
parameters:
|
||||
level: max
|
||||
paths:
|
||||
- %currentWorkingDirectory%/src/
|
||||
reportUnmatchedIgnoredErrors: false
|
||||
checkMissingIterableValueType: false
|
||||
excludes_analyse:
|
||||
- %currentWorkingDirectory%/vendor/*
|
||||
- %currentWorkingDirectory%/tests/*
|
||||
autoload_files:
|
||||
- %currentWorkingDirectory%/vendor/autoload.php
|
||||
ignoreErrors:
|
||||
- '/always false/'
|
||||
- '/always true/'
|
||||
- '/Predis\\Client/'
|
||||
- '/Symfony\\Component\\VarExporter/'
|
||||
- '/Memcache(d)*/'
|
||||
- '/MEMCACHE_COMPRESSED/'
|
||||
- '/Function checkForDev not found\./'
|
||||
- '/Function msgpack/'
|
||||
- '/function unserialize expects array/'
|
||||
@@ -43,6 +43,8 @@ class AdapterApc implements iAdapter
|
||||
&&
|
||||
\ini_get('apc.enable_cli')
|
||||
) {
|
||||
\ini_set('apc.use_request_time', '0');
|
||||
|
||||
$this->installed = true;
|
||||
}
|
||||
}
|
||||
@@ -85,12 +87,19 @@ class AdapterApc implements iAdapter
|
||||
* @param bool $limited - If $limited is TRUE, the return value will exclude the individual list of cache
|
||||
* entries. This is useful when trying to optimize calls for statistics gathering
|
||||
*
|
||||
* @return array|false
|
||||
* <p>Array of cached data (and meta-data) or FALSE on failure.</p>
|
||||
* @return array
|
||||
* <p>Array of cached data (and meta-data) or empty array on failure.</p>
|
||||
*/
|
||||
public function cacheInfo(string $type = '', bool $limited = false): array
|
||||
{
|
||||
return \apc_cache_info($type, $limited);
|
||||
/** @var array|false $return */
|
||||
$return = \apc_cache_info($type, $limited);
|
||||
|
||||
if ($return === false) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -43,6 +43,8 @@ class AdapterApcu implements iAdapter
|
||||
&&
|
||||
\ini_get('apc.enable_cli')
|
||||
) {
|
||||
\ini_set('apc.use_request_time', '0');
|
||||
|
||||
$this->installed = true;
|
||||
}
|
||||
}
|
||||
@@ -84,12 +86,19 @@ class AdapterApcu implements iAdapter
|
||||
* @param bool $limited - If $limited is TRUE, the return value will exclude the individual list of cache
|
||||
* entries. This is useful when trying to optimize calls for statistics gathering
|
||||
*
|
||||
* @return array|false
|
||||
* <p>Array of cached data (and meta-data) or FALSE on failure.</p>
|
||||
* @return array
|
||||
* <p>Array of cached data (and meta-data) or empty array on failure.</p>
|
||||
*/
|
||||
public function cacheInfo(bool $limited = false): array
|
||||
{
|
||||
return \apcu_cache_info($limited);
|
||||
/** @var array|false $return */
|
||||
$return = \apcu_cache_info($limited);
|
||||
|
||||
if ($return === false) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -15,7 +15,7 @@ class AdapterArray implements iAdapter
|
||||
private static $values = [];
|
||||
|
||||
/**
|
||||
* @var array
|
||||
* @var array<string, array<int>>
|
||||
*/
|
||||
private static $expired = [];
|
||||
|
||||
@@ -89,7 +89,7 @@ class AdapterArray implements iAdapter
|
||||
{
|
||||
self::$values[$key] = $value;
|
||||
|
||||
if ($ttl !== null) {
|
||||
if ($ttl !== 0) {
|
||||
self::$expired[$key] = [\time(), $ttl];
|
||||
}
|
||||
|
||||
@@ -114,6 +114,8 @@ class AdapterArray implements iAdapter
|
||||
}
|
||||
|
||||
list($time, $ttl) = self::$expired[$key];
|
||||
\assert(\is_int($time));
|
||||
\assert(\is_int($ttl));
|
||||
|
||||
if (\time() > ($time + $ttl)) {
|
||||
unset(self::$values[$key]);
|
||||
|
||||
@@ -34,7 +34,7 @@ abstract class AdapterFileAbstract implements iAdapter
|
||||
protected $fileMode = '0755';
|
||||
|
||||
/**
|
||||
* @param \callable|string|null $cacheDir
|
||||
* @param callable|string|null $cacheDir
|
||||
*/
|
||||
public function __construct($cacheDir = null)
|
||||
{
|
||||
@@ -204,6 +204,8 @@ abstract class AdapterFileAbstract implements iAdapter
|
||||
* e.g. '0777', or '0755' ...
|
||||
*
|
||||
* @param string $fileMode
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setFileMode($fileMode)
|
||||
{
|
||||
@@ -243,4 +245,56 @@ abstract class AdapterFileAbstract implements iAdapter
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* copy&past from https://github.com/webimpress/safe-writer (thx @michalbundyra)
|
||||
*
|
||||
* @param string $file
|
||||
* @param string $content
|
||||
* @param int|null $chmod
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function writeFile($file, $content, $chmod = null): bool
|
||||
{
|
||||
if (!$file) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($chmod === null) {
|
||||
$chmod = \intval($this->fileMode, 8);
|
||||
}
|
||||
|
||||
$dir = \dirname($file);
|
||||
|
||||
$tmp = \tempnam($dir, 'wsw');
|
||||
if ($tmp === false) {
|
||||
throw Exception\RuntimeException::unableToCreateTemporaryFile($dir);
|
||||
}
|
||||
|
||||
if (\file_put_contents($tmp, $content) === false) {
|
||||
\unlink($tmp);
|
||||
|
||||
throw Exception\WriteContentException::unableToWriteContent($tmp);
|
||||
}
|
||||
|
||||
if (\chmod($tmp, $chmod & ~\umask()) === false) {
|
||||
\unlink($tmp);
|
||||
|
||||
throw Exception\ChmodException::unableToChangeChmod($tmp);
|
||||
}
|
||||
|
||||
// On windows try again if rename was not successful but target file is writable.
|
||||
/** @noinspection PhpUsageOfSilenceOperatorInspection */
|
||||
while (@\rename($tmp, $file) === false) {
|
||||
if (\is_writable($file) && \stripos(\PHP_OS, 'WIN') === 0) {
|
||||
continue;
|
||||
}
|
||||
\unlink($tmp);
|
||||
|
||||
throw Exception\RenameException::unableToMoveFile($tmp, $file);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,9 @@ class AdapterFileSimple extends AdapterFileAbstract
|
||||
{
|
||||
const CACHE_FILE_PREFIX = '__simple_';
|
||||
|
||||
/**
|
||||
* @return resource
|
||||
*/
|
||||
protected function getContext()
|
||||
{
|
||||
static $CONTEXT_CACHE = null;
|
||||
@@ -74,16 +77,14 @@ class AdapterFileSimple extends AdapterFileAbstract
|
||||
*/
|
||||
public function setExpired(string $key, $value, int $ttl = 0): bool
|
||||
{
|
||||
return (bool) \file_put_contents(
|
||||
return $this->writeFile(
|
||||
$this->getFileName($key),
|
||||
$this->serializer->serialize(
|
||||
[
|
||||
'value' => $value,
|
||||
'ttl' => $ttl ? $ttl + \time() : 0,
|
||||
]
|
||||
),
|
||||
0,
|
||||
$this->getContext()
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace voku\cache;
|
||||
|
||||
use Memcache;
|
||||
use voku\cache\Exception\InvalidArgumentException;
|
||||
|
||||
/**
|
||||
@@ -17,7 +18,7 @@ class AdapterMemcache implements iAdapter
|
||||
public $installed = false;
|
||||
|
||||
/**
|
||||
* @var \Memcache
|
||||
* @var Memcache
|
||||
*/
|
||||
private $memcache;
|
||||
|
||||
@@ -29,19 +30,19 @@ class AdapterMemcache implements iAdapter
|
||||
/**
|
||||
* __construct
|
||||
*
|
||||
* @param \Memcache|null $memcache
|
||||
* @param Memcache|null $memcache
|
||||
*/
|
||||
public function __construct($memcache = null)
|
||||
{
|
||||
if ($memcache instanceof \Memcache) {
|
||||
if ($memcache instanceof Memcache) {
|
||||
$this->setMemcache($memcache);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Memcache $memcache
|
||||
* @param Memcache $memcache
|
||||
*/
|
||||
public function setMemcache(\Memcache $memcache)
|
||||
public function setMemcache(Memcache $memcache)
|
||||
{
|
||||
$this->memcache = $memcache;
|
||||
$this->installed = true;
|
||||
|
||||
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace voku\cache;
|
||||
|
||||
use Memcached;
|
||||
use voku\cache\Exception\InvalidArgumentException;
|
||||
|
||||
/**
|
||||
@@ -17,26 +18,26 @@ class AdapterMemcached implements iAdapter
|
||||
public $installed = false;
|
||||
|
||||
/**
|
||||
* @var \Memcached
|
||||
* @var Memcached
|
||||
*/
|
||||
private $memcached;
|
||||
|
||||
/**
|
||||
* __construct
|
||||
*
|
||||
* @param \Memcached|null $memcached
|
||||
* @param Memcached|null $memcached
|
||||
*/
|
||||
public function __construct($memcached = null)
|
||||
{
|
||||
if ($memcached instanceof \Memcached) {
|
||||
if ($memcached instanceof Memcached) {
|
||||
$this->setMemcached($memcached);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Memcached $memcached
|
||||
* @param Memcached $memcached
|
||||
*/
|
||||
public function setMemcached(\Memcached $memcached)
|
||||
public function setMemcached(Memcached $memcached)
|
||||
{
|
||||
$this->memcached = $memcached;
|
||||
$this->installed = true;
|
||||
@@ -90,7 +91,7 @@ class AdapterMemcached implements iAdapter
|
||||
public function set(string $key, $value): bool
|
||||
{
|
||||
// Make sure we are under the proper limit
|
||||
if (\strlen($this->memcached->getOption(\Memcached::OPT_PREFIX_KEY) . $key) > 250) {
|
||||
if (\strlen($this->memcached->getOption(Memcached::OPT_PREFIX_KEY) . $key) > 250) {
|
||||
throw new InvalidArgumentException('The passed cache key is over 250 bytes:' . \print_r($key, true));
|
||||
}
|
||||
|
||||
@@ -111,18 +112,22 @@ class AdapterMemcached implements iAdapter
|
||||
|
||||
/**
|
||||
* Set the MemCached settings.
|
||||
*
|
||||
* @noinspection PhpUndefinedClassConstantInspection -> MSGPACK is not added into phpstorm stubs
|
||||
*/
|
||||
private function setSettings()
|
||||
{
|
||||
// Use faster compression if available
|
||||
if (\Memcached::HAVE_IGBINARY) {
|
||||
$this->memcached->setOption(\Memcached::OPT_SERIALIZER, \Memcached::SERIALIZER_IGBINARY);
|
||||
if (Memcached::HAVE_IGBINARY) {
|
||||
$this->memcached->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_IGBINARY);
|
||||
} elseif (\defined('Memcached::HAVE_MSGPACK') && Memcached::HAVE_MSGPACK) {
|
||||
$this->memcached->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_MSGPACK);
|
||||
}
|
||||
$this->memcached->setOption(\Memcached::OPT_DISTRIBUTION, \Memcached::DISTRIBUTION_CONSISTENT);
|
||||
$this->memcached->setOption(\Memcached::OPT_LIBKETAMA_COMPATIBLE, true);
|
||||
$this->memcached->setOption(\Memcached::OPT_NO_BLOCK, true);
|
||||
$this->memcached->setOption(\Memcached::OPT_TCP_NODELAY, true);
|
||||
$this->memcached->setOption(\Memcached::OPT_COMPRESSION, false);
|
||||
$this->memcached->setOption(\Memcached::OPT_CONNECT_TIMEOUT, 2);
|
||||
$this->memcached->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
|
||||
$this->memcached->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);
|
||||
$this->memcached->setOption(Memcached::OPT_NO_BLOCK, true);
|
||||
$this->memcached->setOption(Memcached::OPT_TCP_NODELAY, true);
|
||||
$this->memcached->setOption(Memcached::OPT_COMPRESSION, false);
|
||||
$this->memcached->setOption(Memcached::OPT_CONNECT_TIMEOUT, 2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,6 +79,10 @@ class AdapterOpCache extends AdapterFileSimple
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @noinspection PhpUndefinedClassInspection
|
||||
* @noinspection PhpUndefinedNamespaceInspection
|
||||
* @noinspection BadExceptionsProcessingInspection
|
||||
*/
|
||||
public function setExpired(string $key, $value, int $ttl = 0): bool
|
||||
{
|
||||
@@ -86,17 +90,23 @@ class AdapterOpCache extends AdapterFileSimple
|
||||
'value' => $value,
|
||||
'ttl' => $ttl ? $ttl + \time() : 0,
|
||||
];
|
||||
$content = \var_export($item, true);
|
||||
if (\class_exists('\Symfony\Component\VarExporter\VarExporter')) {
|
||||
try {
|
||||
$content = \Symfony\Component\VarExporter\VarExporter::export($item);
|
||||
} catch (\Symfony\Component\VarExporter\Exception\ExceptionInterface $e) {
|
||||
$content = \var_export($item, true);
|
||||
}
|
||||
} else {
|
||||
$content = \var_export($item, true);
|
||||
}
|
||||
|
||||
$content = '<?php return ' . $content . ';';
|
||||
|
||||
$cacheFile = $this->getFileName($key);
|
||||
|
||||
$result = (bool) \file_put_contents(
|
||||
$result = $this->writeFile(
|
||||
$cacheFile,
|
||||
$content,
|
||||
0,
|
||||
$this->getContext()
|
||||
$content
|
||||
);
|
||||
|
||||
if (
|
||||
|
||||
@@ -33,6 +33,8 @@ class AdapterPredis implements iAdapter
|
||||
|
||||
/**
|
||||
* @param Client $client
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setPredisClient(Client $client)
|
||||
{
|
||||
@@ -45,7 +47,7 @@ class AdapterPredis implements iAdapter
|
||||
*/
|
||||
public function exists(string $key): bool
|
||||
{
|
||||
return $this->client->exists($key);
|
||||
return (bool) $this->client->exists($key);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -69,7 +71,7 @@ class AdapterPredis implements iAdapter
|
||||
*/
|
||||
public function remove(string $key): bool
|
||||
{
|
||||
return $this->client->del($key);
|
||||
return (bool) $this->client->del($key);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -93,6 +95,6 @@ class AdapterPredis implements iAdapter
|
||||
*/
|
||||
public function setExpired(string $key, $value, int $ttl = 0): bool
|
||||
{
|
||||
return $this->client->setex($key, $ttl, $value);
|
||||
return (bool) $this->client->setex($key, $ttl, $value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,9 @@ namespace voku\cache;
|
||||
*/
|
||||
class AdapterXcache implements iAdapter
|
||||
{
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
public $installed = false;
|
||||
|
||||
/**
|
||||
|
||||
+78
-31
@@ -44,6 +44,11 @@ class Cache implements iCache
|
||||
*/
|
||||
protected $serializer;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $unserialize_options = ['allowed_classes' => true];
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
@@ -92,27 +97,30 @@ class Cache implements iCache
|
||||
/**
|
||||
* __construct
|
||||
*
|
||||
* @param iAdapter|null $adapter
|
||||
* @param iSerializer|null $serializer
|
||||
* @param bool $checkForUsage <p>check for admin-session && check for
|
||||
* server-ip == client-ip
|
||||
* && check for dev</p>
|
||||
* @param bool $cacheEnabled <p>false === disable the cache (use it
|
||||
* e.g. for global settings)</p>
|
||||
* @param bool $isAdminSession <p>true === disable cache for this user
|
||||
* (use it e.g. for admin user settings)
|
||||
* @param bool $useCheckForAdminSession <p>use $isAdminSession flag or not</p>
|
||||
* @param bool $useCheckForDev <p>use checkForDev() or not</p>
|
||||
* @param bool $useCheckForServerIpIsClientIp <p>use check for server-ip == client-ip
|
||||
* or
|
||||
* not</p>
|
||||
* @param string $disableCacheGetParameter <p>set the _GET parameter for disabling
|
||||
* the cache, disable this check via empty
|
||||
* string</p>
|
||||
* @param CacheAdapterAutoManager $cacheAdapterManagerForAutoConnect <p>Overwrite some Adapters for the
|
||||
* auto-connect-function.</p>
|
||||
* @param bool $cacheAdapterManagerForAutoConnectOverwrite <p>true === Use only Adapters from your
|
||||
* "CacheAdapterManager".</p>
|
||||
* @param iAdapter|null $adapter
|
||||
* @param iSerializer|null $serializer
|
||||
* @param bool $checkForUsage <p>check for admin-session && check
|
||||
* for server-ip == client-ip
|
||||
* && check for dev</p>
|
||||
* @param bool $cacheEnabled <p>false === disable the cache (use
|
||||
* it
|
||||
* e.g. for global settings)</p>
|
||||
* @param bool $isAdminSession <p>true === disable cache for this
|
||||
* user
|
||||
* (use it e.g. for admin user settings)
|
||||
* @param bool $useCheckForAdminSession <p>use $isAdminSession flag or
|
||||
* not</p>
|
||||
* @param bool $useCheckForDev <p>use checkForDev() or not</p>
|
||||
* @param bool $useCheckForServerIpIsClientIp <p>use check for server-ip ==
|
||||
* client-ip or not</p>
|
||||
* @param string $disableCacheGetParameter <p>set the _GET parameter for
|
||||
* disabling the cache, disable this
|
||||
* check via empty string</p>
|
||||
* @param CacheAdapterAutoManager $cacheAdapterManagerForAutoConnect <p>Overwrite some Adapters for the
|
||||
* auto-connect-function.</p>
|
||||
* @param bool $cacheAdapterManagerForAutoConnectOverwrite <p>true === Use only Adapters from
|
||||
* your
|
||||
* "CacheAdapterManager".</p>
|
||||
*/
|
||||
public function __construct(
|
||||
iAdapter $adapter = null,
|
||||
@@ -153,13 +161,20 @@ class Cache implements iCache
|
||||
$adapter = $this->autoConnectToAvailableCacheSystem($cacheAdapterManagerForAutoConnect, $cacheAdapterManagerForAutoConnectOverwrite);
|
||||
}
|
||||
|
||||
// INFO: Memcache(d) has his own "serializer", so don't use it twice
|
||||
if (!\is_object($serializer) && $serializer === null) {
|
||||
if (
|
||||
$adapter instanceof AdapterMemcached
|
||||
||
|
||||
$adapter instanceof AdapterMemcache
|
||||
) {
|
||||
// INFO: Memcache(d) has his own "serializer", so don't use it twice
|
||||
$serializer = new SerializerNo();
|
||||
} elseif (
|
||||
$adapter instanceof AdapterOpCache
|
||||
&&
|
||||
\class_exists('\Symfony\Component\VarExporter\VarExporter')
|
||||
) {
|
||||
// INFO: opcache + Symfony-VarExporter don't need any "serializer"
|
||||
$serializer = new SerializerNo();
|
||||
} else {
|
||||
// set default serializer
|
||||
@@ -177,17 +192,31 @@ class Cache implements iCache
|
||||
$this->setCacheIsReady(true);
|
||||
|
||||
$this->adapter = $adapter;
|
||||
|
||||
$this->serializer = $serializer;
|
||||
|
||||
$this->serializer->setUnserializeOptions($this->unserialize_options);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $array
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUnserializeOptions(array $array = [])
|
||||
{
|
||||
$this->unserialize_options = $array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Auto-connect to the available cache-system on the server.
|
||||
*
|
||||
* @param CacheAdapterAutoManager $cacheAdapterManagerForAutoConnect <p>Overwrite some Adapters for the
|
||||
* auto-connect-function.</p>
|
||||
* @param bool $cacheAdapterManagerForAutoConnectOverwrite <p>true === Use only Adapters from your
|
||||
* "CacheAdapterManager".</p>
|
||||
* auto-connect-function.</p>
|
||||
* @param bool $cacheAdapterManagerForAutoConnectOverwrite <p>true === Use only Adapters from
|
||||
* your
|
||||
* "CacheAdapterManager".</p>
|
||||
*
|
||||
* @return iAdapter
|
||||
*/
|
||||
@@ -381,7 +410,11 @@ class Cache implements iCache
|
||||
}
|
||||
|
||||
$serialized = $this->adapter->get($storeKey);
|
||||
$value = $serialized && $this->serializer ? $this->serializer->unserialize($serialized) : null;
|
||||
if ($this->serializer && $this->serializer instanceof SerializerNo) {
|
||||
$value = $serialized;
|
||||
} else {
|
||||
$value = $serialized && $this->serializer ? $this->serializer->unserialize($serialized) : null;
|
||||
}
|
||||
|
||||
self::$STATIC_CACHE_COUNTER[$storeKey]++;
|
||||
|
||||
@@ -468,7 +501,7 @@ class Cache implements iCache
|
||||
* @param mixed $value
|
||||
* @param \DateInterval|int|null $ttl
|
||||
*
|
||||
* @throws InvalidArgumentException
|
||||
* @throws \InvalidArgumentException
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
@@ -493,7 +526,6 @@ class Cache implements iCache
|
||||
if ($ttl) {
|
||||
if ($ttl instanceof \DateInterval) {
|
||||
// Converting to a TTL in seconds
|
||||
/** @noinspection PhpUnhandledExceptionInspection */
|
||||
$ttl = (new \DateTimeImmutable('now'))->add($ttl)->getTimestamp() - \time();
|
||||
}
|
||||
|
||||
@@ -593,6 +625,8 @@ class Cache implements iCache
|
||||
|
||||
/**
|
||||
* Set the default-prefix via "SERVER"-var + "SESSION"-language.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getTheDefaultPrefix(): string
|
||||
{
|
||||
@@ -600,18 +634,21 @@ class Cache implements iCache
|
||||
($_SERVER['THEME'] ?? '') . '_' .
|
||||
($_SERVER['STAGE'] ?? '') . '_' .
|
||||
($_SESSION['language'] ?? '') . '_' .
|
||||
($_SESSION['language_extra'] ?? '');
|
||||
($_SESSION['language_extra'] ?? '') . '_' .
|
||||
\PHP_VERSION_ID . '_' .
|
||||
($this->serializer ? $this->serializer->getName() : '');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current adapter class-name.
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @psalm-return class-string|string
|
||||
*/
|
||||
public function getUsedAdapterClassName(): string
|
||||
{
|
||||
if ($this->adapter) {
|
||||
/** @noinspection GetClassUsageInspection */
|
||||
return \get_class($this->adapter);
|
||||
}
|
||||
|
||||
@@ -622,11 +659,12 @@ class Cache implements iCache
|
||||
* Get the current serializer class-name.
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @psalm-return class-string|string
|
||||
*/
|
||||
public function getUsedSerializerClassName(): string
|
||||
{
|
||||
if ($this->serializer) {
|
||||
/** @noinspection GetClassUsageInspection */
|
||||
return \get_class($this->serializer);
|
||||
}
|
||||
|
||||
@@ -640,6 +678,7 @@ class Cache implements iCache
|
||||
*/
|
||||
public function isCacheActiveForTheCurrentUser(): bool
|
||||
{
|
||||
// init
|
||||
$active = true;
|
||||
|
||||
// test the cache, with this GET-parameter
|
||||
@@ -685,6 +724,8 @@ class Cache implements iCache
|
||||
* enable / disable the cache
|
||||
*
|
||||
* @param bool $isActive
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setActive(bool $isActive)
|
||||
{
|
||||
@@ -695,6 +736,8 @@ class Cache implements iCache
|
||||
* Set "isReady" state.
|
||||
*
|
||||
* @param bool $isReady
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function setCacheIsReady(bool $isReady)
|
||||
{
|
||||
@@ -707,6 +750,8 @@ class Cache implements iCache
|
||||
* WARNING: Do not use if you don't know what you do. Because this will overwrite the default prefix.
|
||||
*
|
||||
* @param string $prefix
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setPrefix(string $prefix)
|
||||
{
|
||||
@@ -717,6 +762,8 @@ class Cache implements iCache
|
||||
* Set the static-hit-counter: Who often do we hit the cache, before we use static cache?
|
||||
*
|
||||
* @param int $staticCacheHitCounter
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setStaticCacheHitCounter(int $staticCacheHitCounter)
|
||||
{
|
||||
|
||||
@@ -22,6 +22,8 @@ class CacheAdapterAutoManager
|
||||
* @param string $adapter
|
||||
* @param callable|null $callableFunction
|
||||
*
|
||||
* @psalm-param class-string $adapter
|
||||
*
|
||||
* @throws InvalidArgumentException
|
||||
*
|
||||
* @return $this
|
||||
@@ -29,8 +31,7 @@ class CacheAdapterAutoManager
|
||||
public function addAdapter(
|
||||
string $adapter,
|
||||
callable $callableFunction = null
|
||||
): self
|
||||
{
|
||||
): self {
|
||||
$this->validateAdapter($adapter);
|
||||
$this->validateCallable($callableFunction);
|
||||
|
||||
@@ -55,7 +56,7 @@ class CacheAdapterAutoManager
|
||||
*
|
||||
* @throws InvalidArgumentException
|
||||
*
|
||||
* @return CacheAdapterAutoManager
|
||||
* @return self
|
||||
*/
|
||||
public function merge(self $adapterManager): self
|
||||
{
|
||||
@@ -80,7 +81,11 @@ class CacheAdapterAutoManager
|
||||
/**
|
||||
* @param string $replaceAdapter
|
||||
*
|
||||
* @psalm-param class-string $replaceAdapter
|
||||
*
|
||||
* @throws InvalidArgumentException
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function validateAdapter(string $replaceAdapter)
|
||||
{
|
||||
@@ -95,6 +100,8 @@ class CacheAdapterAutoManager
|
||||
* @param callable $callableFunction
|
||||
*
|
||||
* @throws InvalidArgumentException
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function validateCallable(callable $callableFunction = null)
|
||||
{
|
||||
@@ -170,6 +177,7 @@ class CacheAdapterAutoManager
|
||||
) {
|
||||
/** @noinspection PhpUndefinedNamespaceInspection */
|
||||
/** @noinspection PhpUndefinedClassInspection */
|
||||
/** @noinspection PhpFullyQualifiedNameUsageInspection */
|
||||
$redis = new \Predis\Client(
|
||||
[
|
||||
'scheme' => 'tcp',
|
||||
|
||||
+41
-14
@@ -7,7 +7,7 @@ namespace voku\cache;
|
||||
class CacheChain implements iCache
|
||||
{
|
||||
/**
|
||||
* @var array|iCache[]
|
||||
* @var Cache[]
|
||||
*/
|
||||
private $caches = [];
|
||||
|
||||
@@ -40,17 +40,13 @@ class CacheChain implements iCache
|
||||
/**
|
||||
* add cache
|
||||
*
|
||||
* @param iCache $cache
|
||||
* @param bool $prepend
|
||||
* @param Cache $cache
|
||||
* @param bool $prepend
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
* @return void
|
||||
*/
|
||||
public function addCache(iCache $cache, $prepend = true)
|
||||
public function addCache(Cache $cache, $prepend = true)
|
||||
{
|
||||
if ($this === $cache) {
|
||||
throw new \InvalidArgumentException('loop-error, put into other cache');
|
||||
}
|
||||
|
||||
if ($prepend) {
|
||||
\array_unshift($this->caches, $cache);
|
||||
} else {
|
||||
@@ -72,6 +68,22 @@ class CacheChain implements iCache
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the "isReady" state.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getCacheIsReady(): bool
|
||||
{
|
||||
foreach ($this->caches as $cache) {
|
||||
if (!$cache->getCacheIsReady()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
@@ -84,7 +96,7 @@ class CacheChain implements iCache
|
||||
$results[] = $cache->setItem($key, $value, $ttl);
|
||||
}
|
||||
|
||||
return !\in_array(false, $results, true);
|
||||
return \in_array(true, $results, true);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -95,12 +107,27 @@ class CacheChain implements iCache
|
||||
// init
|
||||
$results = [];
|
||||
|
||||
/* @var $cache iCache */
|
||||
foreach ($this->caches as $cache) {
|
||||
$results[] = $cache->setItemToDate($key, $value, $date);
|
||||
}
|
||||
|
||||
return !\in_array(false, $results, true);
|
||||
return \in_array(true, $results, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* !!! Set the prefix. !!!
|
||||
*
|
||||
* WARNING: Do not use if you don't know what you do. Because this will overwrite the default prefix.
|
||||
*
|
||||
* @param string $prefix
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setPrefix(string $prefix)
|
||||
{
|
||||
foreach ($this->caches as $cache) {
|
||||
$cache->setPrefix($prefix);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -115,7 +142,7 @@ class CacheChain implements iCache
|
||||
$results[] = $cache->removeItem($key);
|
||||
}
|
||||
|
||||
return !\in_array(false, $results, true);
|
||||
return \in_array(true, $results, true);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -144,6 +171,6 @@ class CacheChain implements iCache
|
||||
$results[] = $cache->removeAll();
|
||||
}
|
||||
|
||||
return !\in_array(false, $results, true);
|
||||
return \in_array(true, $results, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace voku\cache\Exception;
|
||||
|
||||
final class ChmodException extends \RuntimeException implements FileErrorExceptionInterface
|
||||
{
|
||||
/**
|
||||
* @param string $file
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function unableToChangeChmod($file)
|
||||
{
|
||||
return new self(\sprintf('Could not change chmod of the file "%s"', $file));
|
||||
}
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace voku\cache\Exception;
|
||||
|
||||
interface FileErrorExceptionInterface
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace voku\cache\Exception;
|
||||
|
||||
final class RenameException extends \RuntimeException implements FileErrorExceptionInterface
|
||||
{
|
||||
/**
|
||||
* @param string $source
|
||||
* @param string $target
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function unableToMoveFile($source, $target)
|
||||
{
|
||||
return new self(\sprintf(
|
||||
'Could not move file "%s" to location "%s": '
|
||||
. 'either the source file is not readable, or the destination is not writable',
|
||||
$source,
|
||||
$target
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace voku\cache\Exception;
|
||||
|
||||
final class RuntimeException extends \RuntimeException implements FileErrorExceptionInterface
|
||||
{
|
||||
/**
|
||||
* @param string $dir
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function unableToCreateTemporaryFile($dir)
|
||||
{
|
||||
return new self(\sprintf('Could not create temporary file in directory "%s"', $dir));
|
||||
}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace voku\cache\Exception;
|
||||
|
||||
final class WriteContentException extends \RuntimeException implements FileErrorExceptionInterface
|
||||
{
|
||||
/**
|
||||
* @param string $file
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function unableToWriteContent($file)
|
||||
{
|
||||
return new self(\sprintf('Could not write content to the file "%s"', $file));
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,11 @@ namespace voku\cache;
|
||||
*/
|
||||
class SerializerDefault implements iSerializer
|
||||
{
|
||||
/**
|
||||
* @var array|null
|
||||
*/
|
||||
private $unserialize_options;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
@@ -17,11 +22,34 @@ class SerializerDefault implements iSerializer
|
||||
return \serialize($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getName(): string
|
||||
{
|
||||
return 'default';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function unserialize($value)
|
||||
{
|
||||
if ($this->unserialize_options !== null) {
|
||||
return \unserialize($value, $this->unserialize_options);
|
||||
}
|
||||
|
||||
/** @noinspection UnserializeExploitsInspection */
|
||||
return \unserialize($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $options
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUnserializeOptions(array $options)
|
||||
{
|
||||
$this->unserialize_options = $options;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,16 +14,42 @@ class SerializerIgbinary implements iSerializer
|
||||
*/
|
||||
public static $_exists_igbinary;
|
||||
|
||||
/**
|
||||
* @var array|null
|
||||
*/
|
||||
private $unserialize_options;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $name = '';
|
||||
|
||||
/**
|
||||
* SerializerIgbinary constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
self::$_exists_igbinary = (
|
||||
\function_exists('igbinary_serialize')
|
||||
&&
|
||||
\function_exists('igbinary_unserialize')
|
||||
);
|
||||
if (self::$_exists_igbinary === null) {
|
||||
self::$_exists_igbinary = (
|
||||
\function_exists('igbinary_serialize')
|
||||
&&
|
||||
\function_exists('igbinary_unserialize')
|
||||
);
|
||||
}
|
||||
|
||||
if (self::$_exists_igbinary) {
|
||||
$this->name = 'igbinary';
|
||||
} else {
|
||||
$this->name = 'default';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -33,6 +59,7 @@ class SerializerIgbinary implements iSerializer
|
||||
{
|
||||
if (self::$_exists_igbinary === true) {
|
||||
/** @noinspection PhpUndefinedFunctionInspection */
|
||||
/** @noinspection PhpComposerExtensionStubsInspection */
|
||||
return \igbinary_serialize($value);
|
||||
}
|
||||
|
||||
@@ -47,10 +74,26 @@ class SerializerIgbinary implements iSerializer
|
||||
{
|
||||
if (self::$_exists_igbinary === true) {
|
||||
/** @noinspection PhpUndefinedFunctionInspection */
|
||||
/** @noinspection PhpComposerExtensionStubsInspection */
|
||||
return \igbinary_unserialize($value);
|
||||
}
|
||||
|
||||
// fallback
|
||||
if ($this->unserialize_options !== null) {
|
||||
return \unserialize($value, $this->unserialize_options);
|
||||
}
|
||||
|
||||
/** @noinspection UnserializeExploitsInspection */
|
||||
return \unserialize($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $options
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUnserializeOptions(array $options)
|
||||
{
|
||||
$this->unserialize_options = $options;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace voku\cache;
|
||||
|
||||
/**
|
||||
* SerializerMsgpack: serialize / unserialize
|
||||
*/
|
||||
class SerializerMsgpack implements iSerializer
|
||||
{
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
public static $_exists_msgpack;
|
||||
|
||||
/**
|
||||
* @var array|null
|
||||
*/
|
||||
private $unserialize_options;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $name = '';
|
||||
|
||||
/**
|
||||
* SerializerIgbinary constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
if (self::$_exists_msgpack === null) {
|
||||
self::$_exists_msgpack = (
|
||||
\function_exists('msgpack_pack')
|
||||
&&
|
||||
\function_exists('msgpack_unpack')
|
||||
);
|
||||
}
|
||||
|
||||
if (self::$_exists_msgpack) {
|
||||
$this->name = 'msgpack';
|
||||
} else {
|
||||
$this->name = 'default';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function serialize($value)
|
||||
{
|
||||
if (self::$_exists_msgpack === true) {
|
||||
/** @noinspection PhpUndefinedFunctionInspection */
|
||||
return \msgpack_pack($value);
|
||||
}
|
||||
|
||||
// fallback
|
||||
return \serialize($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function unserialize($value)
|
||||
{
|
||||
if (self::$_exists_msgpack === true) {
|
||||
/** @noinspection PhpUndefinedFunctionInspection */
|
||||
return \msgpack_unpack($value);
|
||||
}
|
||||
|
||||
// fallback
|
||||
if ($this->unserialize_options !== null) {
|
||||
return \unserialize($value, $this->unserialize_options);
|
||||
}
|
||||
|
||||
/** @noinspection UnserializeExploitsInspection */
|
||||
return \unserialize($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $options
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUnserializeOptions(array $options)
|
||||
{
|
||||
$this->unserialize_options = $options;
|
||||
}
|
||||
}
|
||||
@@ -24,4 +24,22 @@ class SerializerNo implements iSerializer
|
||||
{
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getName(): string
|
||||
{
|
||||
return 'no';
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $options
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUnserializeOptions(array $options)
|
||||
{
|
||||
// nothing to do here
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,8 @@ interface iAdapter
|
||||
*
|
||||
* @param string $key
|
||||
*
|
||||
* @return mixed|null <p>will return NULL if the key not exists</p>
|
||||
* @return mixed|null
|
||||
* <p>will return NULL if the key not exists</p>
|
||||
*/
|
||||
public function get(string $key);
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace voku\cache;
|
||||
|
||||
use DateTimeInterface;
|
||||
|
||||
/**
|
||||
* iCache: cache-global interface
|
||||
*/
|
||||
@@ -34,11 +36,11 @@ interface iCache
|
||||
*
|
||||
* @param string $key
|
||||
* @param mixed $value
|
||||
* @param \DateTimeInterface $date
|
||||
* @param DateTimeInterface $date
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function setItemToDate(string $key, $value, \DateTimeInterface $date): bool;
|
||||
public function setItemToDate(string $key, $value, DateTimeInterface $date): bool;
|
||||
|
||||
/**
|
||||
* remove item
|
||||
|
||||
@@ -10,16 +10,28 @@ namespace voku\cache;
|
||||
interface iSerializer
|
||||
{
|
||||
/**
|
||||
* serialize
|
||||
*
|
||||
* @param mixed $value
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function serialize($value);
|
||||
|
||||
/**
|
||||
* unserialize
|
||||
*
|
||||
* @param string $value
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function unserialize($value);
|
||||
|
||||
/**
|
||||
* @param array $options
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUnserializeOptions(array $options);
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getName(): string;
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
echo "Configure MySQL test database"
|
||||
|
||||
mysql --user=root --password=Password123 -e 'create database zenddb_test;'
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
echo "Configure MySQL test database"
|
||||
|
||||
mysql -u root -e 'create database zenddb_test;'
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
echo "Configure PostgreSQL test database"
|
||||
|
||||
psql -U postgres -c 'create database zenddb_test;'
|
||||
psql -U postgres -c "alter role postgres password 'postgres'"
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
echo "Configure SQL server test database"
|
||||
|
||||
sqlcmd -S localhost -U sa -P Password123 -Q "CREATE DATABASE zenddb_test;"
|
||||
@@ -1,445 +0,0 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file, in reverse chronological order by release.
|
||||
|
||||
## 2.10.0 - 2019-02-25
|
||||
|
||||
### Added
|
||||
|
||||
- [#157](https://github.com/zendframework/zend-db/pull/157) added support of
|
||||
`Zend\Db\Sql\TableIdentifier` in DDL
|
||||
- [#345](https://github.com/zendframework/zend-db/pull/345) allow usage with
|
||||
zend-hydrator v3
|
||||
- [#346](https://github.com/zendframework/zend-db/pull/346) adds support for PHP
|
||||
7.3
|
||||
|
||||
### Changed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Removed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#303](https://github.com/zendframework/zend-db/pull/303) fixes #295 issue:
|
||||
handle empty array as datasource at `AbstractResultSet::initialize()` at PHP
|
||||
7.2
|
||||
- [#313](https://github.com/zendframework/zend-db/pull/313) test
|
||||
`AbstractResultSet::current()` to return null on empty array
|
||||
- [#329](https://github.com/zendframework/zend-db/pull/329) fixes Exception
|
||||
thrown when calling `prepareStatementForSqlObject` on a Select with a
|
||||
sub-Select that has limit and/or offset set
|
||||
- [#337](https://github.com/zendframework/zend-db/pull/337) fixes #330 current
|
||||
NULL for mysqli
|
||||
- [#338](https://github.com/zendframework/zend-db/pull/338) restore missing use
|
||||
`ResultSet` in `AbstractTableGateway`
|
||||
- [#341](https://github.com/zendframework/zend-db/pull/341) fixes undefined
|
||||
variable bug in MetadataFeature
|
||||
- [#357](https://github.com/zendframework/zend-db/pull/357) fixes named params
|
||||
in subquery - limit and offset (issue #355)
|
||||
|
||||
## 2.9.3 - 2018-04-09
|
||||
|
||||
### Added
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Changed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Removed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#295](https://github.com/zendframework/zend-db/pull/295) fix error when
|
||||
datasource passed to `AbstractResultSet::initialize()` is empty array at
|
||||
php 7.2 environment
|
||||
|
||||
- [#300](https://github.com/zendframework/zend-db/pull/300) Fix error for nested
|
||||
queries inside field parameters
|
||||
|
||||
- [#301](https://github.com/zendframework/zend-db/pull/301) fix for issue with
|
||||
set fields that exists in different tables in one query
|
||||
|
||||
- [#304](https://github.com/zendframework/zend-db/pull/304) fix PDO bind
|
||||
parameter name to use field name with extended charset (PDO only supports
|
||||
alphanumeric and underscore for placeholder/parameter names).
|
||||
|
||||
## 2.9.2 - 2017-12-11
|
||||
|
||||
### Added
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Changed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Removed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#292](https://github.com/zendframework/zend-db/pull/292) ensures that you may
|
||||
reference bound parameter names using a leading colon (`:`) character when
|
||||
using the PDO adapter. (The leading colon is not technically necessary, as the
|
||||
adapter will prefix for you; however, this ensures portability with vanilla
|
||||
PDO.)
|
||||
|
||||
## 2.9.1 - 2017-12-07
|
||||
|
||||
### Added
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Changed
|
||||
|
||||
- [#289](https://github.com/zendframework/zend-db/pull/289) reverts a change
|
||||
introduced in 2.9.0 and modifies the behavior of the PDO adapter slightly
|
||||
to remove a regression. In 2.9.0, when binding parameters with names that
|
||||
contained characters not supported by PDO, we would pass the parameter names
|
||||
to `md5()`; this caused a regression, as the SQL string containing the
|
||||
parameter name was not also updated.
|
||||
|
||||
This patch modifies the behavior during a bind-operation to instead raise an
|
||||
exception if a parameter name contains characters not supported by PDO.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Removed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Nothing.
|
||||
|
||||
## 2.9.0 - 2017-12-06
|
||||
|
||||
### Added
|
||||
|
||||
- [#216](https://github.com/zendframework/zend-db/pull/216) added AFTER support
|
||||
in ALTER TABLE syntax for MySQL
|
||||
- [#223](https://github.com/zendframework/zend-db/pull/223) added support for
|
||||
empty values set with IN predicate
|
||||
- [#271](https://github.com/zendframework/zend-db/pull/271) added support for
|
||||
dash character on MySQL identifier
|
||||
- [#273](https://github.com/zendframework/zend-db/pull/273) added support for
|
||||
implementing an error handler for db2_prepare
|
||||
- [#275](https://github.com/zendframework/zend-db/pull/275) added support for
|
||||
LIMIT OFFSET for db2
|
||||
- [#280](https://github.com/zendframework/zend-db/pull/280) added version dsn
|
||||
parameter for pdo_dblib
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Removed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#205](https://github.com/zendframework/zend-db/pull/205) fixes the spaces in
|
||||
ORDER BY syntax
|
||||
- [#224](https://github.com/zendframework/zend-db/pull/224) fixes how parameters
|
||||
are bound to statements in the PDO adapter. PDO has a restriction on parameter
|
||||
names of `[0-9a-zA_Z_]`; as such, the driver now hashes the parameter names
|
||||
using `md5()` in order to ensure compatibility with other drivers.
|
||||
- [#229](https://github.com/zendframework/zend-db/pull/229) fixes the support
|
||||
of SSL for mysqli
|
||||
- [#255](https://github.com/zendframework/zend-db/pull/255) fixes ResultSet with
|
||||
array values
|
||||
- [#261](https://github.com/zendframework/zend-db/pull/261) fixes Exception in
|
||||
Firebird driver doesn't support lastInsertId
|
||||
- [#276](https://github.com/zendframework/zend-db/pull/276) fixes the support
|
||||
of PHP 7.2
|
||||
- [#287](https://github.com/zendframework/zend-db/pull/287) fixes the usage of
|
||||
count() with PHP 7.2
|
||||
|
||||
## 2.8.2 - 2016-08-09
|
||||
|
||||
### Added
|
||||
|
||||
- [#110](https://github.com/zendframework/zend-db/pull/110) prepared the
|
||||
documentation for publication at https://zendframework.github.io/zend-db/
|
||||
- [#114](https://github.com/zendframework/zend-db/pull/114) add
|
||||
Adapter\Adapter::class to alias against Adapter\AdapterInterface::class
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Removed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#154](https://github.com/zendframework/zend-db/pull/154) fixes the how the
|
||||
COMBINE operator is applied to SQLite adapters, ensuring a valid UNION
|
||||
statement is generated.
|
||||
- [#112](https://github.com/zendframework/zend-db/pull/112) fixes the test on
|
||||
the number of replacements when using the same variable name.
|
||||
- [#115](https://github.com/zendframework/zend-db/pull/115) TableGateway update
|
||||
method was incorrect when specifying default join declaration.
|
||||
- [#145](https://github.com/zendframework/zend-db/pull/145) Fix MSSQL Select
|
||||
when encounting DISTINCT and OFFSET and LIMIT together.
|
||||
- [#153](https://github.com/zendframework/zend-db/pull/153) Runtime exception
|
||||
threw fatal error due to incorrect spelling of the class when a DSN did not
|
||||
exist.
|
||||
|
||||
## 2.8.1 - 2016-04-14
|
||||
|
||||
### Added
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Removed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#100](https://github.com/zendframework/zend-db/pull/100) fixes the JOIN
|
||||
behavior to re-allow selecting an empty column set from the joined table.
|
||||
- [#106](https://github.com/zendframework/zend-db/pull/106) fixes an issue in
|
||||
the test suite when ext/pgsql is enabled, but no databases are avaiable.
|
||||
|
||||
## 2.8.0 - 2016-04-12
|
||||
|
||||
### Added
|
||||
|
||||
- [#92](https://github.com/zendframework/zend-db/pull/92) adds the class
|
||||
`Zend\Db\Sql\Join` for creating and aggregating JOIN specifications. This is
|
||||
now consumed by all `Zend\Db\Sql` implementations in order to represent JOIN
|
||||
statements.
|
||||
- [#92](https://github.com/zendframework/zend-db/pull/92) adds support for JOIN
|
||||
operations to UPDATE statements.
|
||||
- [#92](https://github.com/zendframework/zend-db/pull/92) adds support for joins
|
||||
to `AbstractTableGateway::update`; you can now pass an array of
|
||||
specifications via a third argument to the method.
|
||||
- [#96](https://github.com/zendframework/zend-db/pull/96) exposes the package as
|
||||
config-provider/component, but adding:
|
||||
- `Zend\Db\ConfigProvider`, which maps the `AdapterInterface` to the
|
||||
`AdapterServiceFactory`, and enables the `AdapterAbstractServiceFactory`.
|
||||
- `Zend\Db\Module`, which does the same, for a zend-mvc context.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Removed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Nothing.
|
||||
|
||||
## 2.7.1 - 2016-04-12
|
||||
|
||||
### Added
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Removed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#71](https://github.com/zendframework/zend-db/pull/71) updates the `Pgsql`
|
||||
adapter to allow passing the connection charset; this can be done with the
|
||||
`charset` option when creating your adapter.
|
||||
- [#76](https://github.com/zendframework/zend-db/pull/76) fixes the behavior of
|
||||
`Zend\Db\Sql\Insert` when an array of names is used for columns to ensure the
|
||||
string names are used, and not the array indices.
|
||||
- [#91](https://github.com/zendframework/zend-db/pull/91) fixes the behavior of
|
||||
the `Oci8` adapter when initializing a result set; previously, it was
|
||||
improperly assigning the count of affected rows to the generated value.
|
||||
- [#95](https://github.com/zendframework/zend-db/pull/95) fixes the `IbmDb2`
|
||||
platform's `quoteIdentifier()` method to properly allow `#` characters in
|
||||
identifiers (as they are commonly used on that platform).
|
||||
|
||||
## 2.7.0 - 2016-02-22
|
||||
|
||||
### Added
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Removed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#85](https://github.com/zendframework/zend-db/pull/85) and
|
||||
[#87](https://github.com/zendframework/zend-db/pull/87) update the code base
|
||||
to be forwards compatible with:
|
||||
- zend-eventmanager v3
|
||||
- zend-hydrator v2.1
|
||||
- zend-servicemanager v3
|
||||
- zend-stdlib v3
|
||||
|
||||
## 2.6.2 - 2015-12-09
|
||||
|
||||
### Added
|
||||
|
||||
- [#49](https://github.com/zendframework/zend-db/pull/49) Add docbook
|
||||
documentation.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Removed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#55](https://github.com/zendframework/zend-db/pull/55) Implement FeatureSet
|
||||
canCallMagicCall and callMagicCall methods
|
||||
- [#56](https://github.com/zendframework/zend-db/pull/56)
|
||||
AbstractResultSet::current now does validation to ensure an array.
|
||||
- [#58](https://github.com/zendframework/zend-db/pull/58) Fix unbuffered result
|
||||
on MySQLi.
|
||||
- [#59](https://github.com/zendframework/zend-db/pull/59) Allow unix_socket
|
||||
parameter
|
||||
|
||||
## 2.6.1 - 2015-10-14
|
||||
|
||||
### Added
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Removed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#31](https://github.com/zendframework/zend-db/pull/31) fixes table gateway
|
||||
update when there is a table alias utilized.
|
||||
|
||||
## 2.6.1 - 2015-10-14
|
||||
|
||||
### Added
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Removed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#43](https://github.com/zendframework/zend-db/pull/43) unset and get during
|
||||
an insert operation would throw an InvalidArgumentException during an insert.
|
||||
|
||||
## 2.6.0 - 2015-09-22
|
||||
|
||||
### Added
|
||||
|
||||
- [#42](https://github.com/zendframework/zend-db/pull/42) updates the component
|
||||
to use zend-hydrator for hydrator functionality; this provides forward
|
||||
compatibility with zend-hydrator, and backwards compatibility with
|
||||
hydrators from older versions of zend-stdlib.
|
||||
- [#15](https://github.com/zendframework/zend-db/pull/15) adds a new predicate,
|
||||
`Zend\Db\Sql\Predicate\NotBetween`, which can be invoked via `Sql`
|
||||
instances: `$sql->notBetween($field, $min, $max)`.
|
||||
- [#22](https://github.com/zendframework/zend-db/pull/22) extracts a factory,
|
||||
`Zend\Db\Metadata\Source\Factory`, from `Zend\Db\Metadata\Metadata`,
|
||||
removing the (non-public) `createSourceFromAdapter()` method from that
|
||||
class. Additionally, it extracts `Zend\Db\Metadata\MetadataInterface`, to
|
||||
allow creating alternate implementations.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- [#27](https://github.com/zendframework/zend-db/pull/27) deprecates the
|
||||
constants `JOIN_OUTER_LEFT` and `JOIN_OUTER_RIGHT` in favor of
|
||||
`JOIN_LEFT_OUTER` and `JOIN_RIGHT_OUTER`.
|
||||
|
||||
### Removed
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Nothing.
|
||||
|
||||
## 2.5.2 - 2015-09-22
|
||||
|
||||
### Added
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Nothing.
|
||||
|
||||
### Removed
|
||||
|
||||
- [#29](https://github.com/zendframework/zend-db/pull/29) removes the required
|
||||
second argument to `Zend\Db\Predicate\Predicate::expression()`, allowing it to
|
||||
be nullable, and mirroring the constructor of `Zend\Db\Predicate\Expression`.
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#40](https://github.com/zendframework/zend-db/pull/40) updates the
|
||||
zend-stdlib dependency to reference `>=2.5.0,<2.7.0` to ensure hydrators
|
||||
will work as expected following extraction of hydrators to the zend-hydrator
|
||||
repository.
|
||||
- [#34](https://github.com/zendframework/zend-db/pull/34) fixes retrieval of
|
||||
constraint metadata in the Oracle adapter.
|
||||
- [#41](https://github.com/zendframework/zend-db/pull/41) removes hard dependency
|
||||
on EventManager in AbstractTableGateway.
|
||||
- [#17](https://github.com/zendframework/zend-db/pull/17) removes an executable
|
||||
bit on a regular file.
|
||||
- [#3](https://github.com/zendframework/zend-db/pull/3) updates the code to use
|
||||
closure binding (now that we're on 5.5+, this is possible).
|
||||
- [#9](https://github.com/zendframework/zend-db/pull/9) thoroughly audits the
|
||||
OCI8 (Oracle) driver, ensuring it provides feature parity with other drivers,
|
||||
and fixes issues with subselects, limits, and offsets.
|
||||
@@ -1,27 +0,0 @@
|
||||
Copyright (c) 2005-2017, Zend Technologies USA, Inc.
|
||||
All rights reserved.
|
||||
|
||||
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 Zend Technologies USA, Inc. 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,12 +0,0 @@
|
||||
# zend-db
|
||||
|
||||
[](https://secure.travis-ci.org/zendframework/zend-db)
|
||||
[](https://coveralls.io/github/zendframework/zend-db?branch=master)
|
||||
|
||||
`Zend\Db` is a component that abstract the access to a Database using an object
|
||||
oriented API to build the queries. `Zend\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/zendframework/zend-db/issues
|
||||
- Documentation is at https://docs.zendframework.com/zend-db/
|
||||
@@ -1,73 +0,0 @@
|
||||
{
|
||||
"name": "zendframework/zend-db",
|
||||
"description": "Database abstraction layer, SQL abstraction, result set abstraction, and RowDataGateway and TableDataGateway implementations",
|
||||
"license": "BSD-3-Clause",
|
||||
"keywords": [
|
||||
"zf",
|
||||
"zendframework",
|
||||
"db"
|
||||
],
|
||||
"support": {
|
||||
"docs": "https://docs.zendframework.com/zend-db/",
|
||||
"issues": "https://github.com/zendframework/zend-db/issues",
|
||||
"source": "https://github.com/zendframework/zend-db",
|
||||
"rss": "https://github.com/zendframework/zend-db/releases.atom",
|
||||
"slack": "https://zendframework-slack.herokuapp.com",
|
||||
"forum": "https://discourse.zendframework.com/c/questions/components"
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0",
|
||||
"zendframework/zend-stdlib": "^2.7 || ^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^5.7.25 || ^6.4.4",
|
||||
"zendframework/zend-coding-standard": "~1.0.0",
|
||||
"zendframework/zend-eventmanager": "^2.6.2 || ^3.0",
|
||||
"zendframework/zend-hydrator": "^1.1 || ^2.1 || ^3.0",
|
||||
"zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
|
||||
},
|
||||
"suggest": {
|
||||
"zendframework/zend-eventmanager": "Zend\\EventManager component",
|
||||
"zendframework/zend-hydrator": "Zend\\Hydrator component for using HydratingResultSets",
|
||||
"zendframework/zend-servicemanager": "Zend\\ServiceManager component"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Zend\\Db\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"files": [
|
||||
"test/autoload.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"ZendTest\\Db\\": "test/unit",
|
||||
"ZendIntegrationTest\\Db\\": "test/integration"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.9-dev",
|
||||
"dev-develop": "2.10-dev"
|
||||
},
|
||||
"zf": {
|
||||
"component": "Zend\\Db",
|
||||
"config-provider": "Zend\\Db\\ConfigProvider"
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
# Contributor Code of Conduct
|
||||
|
||||
This project adheres to [The Code Manifesto](http://codemanifesto.com)
|
||||
as its guidelines for contributor interactions.
|
||||
|
||||
## The Code Manifesto
|
||||
|
||||
We want to work in an ecosystem that empowers developers to reach their
|
||||
potential — one that encourages growth and effective collaboration. A space that
|
||||
is safe for all.
|
||||
|
||||
A space such as this benefits everyone that participates in it. It encourages
|
||||
new developers to enter our field. It is through discussion and collaboration
|
||||
that we grow, and through growth that we improve.
|
||||
|
||||
In the effort to create such a place, we hold to these values:
|
||||
|
||||
1. **Discrimination limits us.** This includes discrimination on the basis of
|
||||
race, gender, sexual orientation, gender identity, age, nationality, technology
|
||||
and any other arbitrary exclusion of a group of people.
|
||||
2. **Boundaries honor us.** Your comfort levels are not everyone’s comfort
|
||||
levels. Remember that, and if brought to your attention, heed it.
|
||||
3. **We are our biggest assets.** None of us were born masters of our trade.
|
||||
Each of us has been helped along the way. Return that favor, when and where
|
||||
you can.
|
||||
4. **We are resources for the future.** As an extension of #3, share what you
|
||||
know. Make yourself a resource to help those that come after you.
|
||||
5. **Respect defines us.** Treat others as you wish to be treated. Make your
|
||||
discussions, criticisms and debates from a position of respectfulness. Ask
|
||||
yourself, is it true? Is it necessary? Is it constructive? Anything less is
|
||||
unacceptable.
|
||||
6. **Reactions require grace.** Angry responses are valid, but abusive language
|
||||
and vindictive actions are toxic. When something happens that offends you,
|
||||
handle it assertively, but be respectful. Escalate reasonably, and try to
|
||||
allow the offender an opportunity to explain themselves, and possibly correct
|
||||
the issue.
|
||||
7. **Opinions are just that: opinions.** Each and every one of us, due to our
|
||||
background and upbringing, have varying opinions. The fact of the matter, is
|
||||
that is perfectly acceptable. Remember this: if you respect your own
|
||||
opinions, you should respect the opinions of others.
|
||||
8. **To err is human.** You might not intend it, but mistakes do happen and
|
||||
contribute to build experience. Tolerate honest mistakes, and don't hesitate
|
||||
to apologize if you make one yourself.
|
||||
@@ -1,189 +0,0 @@
|
||||
# CONTRIBUTING
|
||||
|
||||
## RESOURCES
|
||||
|
||||
If you wish to contribute to this project, please be sure to
|
||||
read/subscribe to the following resources:
|
||||
|
||||
- [Coding Standards](https://github.com/zendframework/zend-coding-standard)
|
||||
- [Forums](https://discourse.zendframework.com/c/contributors)
|
||||
- [Slack](https://zendframework-slack.herokuapp.com)
|
||||
- [Code of Conduct](CODE_OF_CONDUCT.md)
|
||||
|
||||
If you are working on new features or refactoring
|
||||
[create a proposal](https://github.com/zendframework/zend-db/issues/new).
|
||||
|
||||
## RUNNING TESTS
|
||||
|
||||
To run tests:
|
||||
|
||||
- Clone the repository:
|
||||
|
||||
```console
|
||||
$ git clone git://github.com/zendframework/zend-db.git
|
||||
$ cd zend-db
|
||||
```
|
||||
|
||||
- Install dependencies via composer:
|
||||
|
||||
```console
|
||||
$ composer install
|
||||
```
|
||||
|
||||
If you don't have `composer` installed, please download it from https://getcomposer.org/download/
|
||||
|
||||
- Run the tests using the "test" command shipped in the `composer.json`:
|
||||
|
||||
```console
|
||||
$ composer test
|
||||
```
|
||||
|
||||
You can turn on conditional tests with the `phpunit.xml` file.
|
||||
To do so:
|
||||
|
||||
- Copy `phpunit.xml.dist` file to `phpunit.xml`
|
||||
- Edit `phpunit.xml` to enable any specific functionality you
|
||||
want to test, as well as to provide test values to utilize.
|
||||
|
||||
## Running Coding Standards Checks
|
||||
|
||||
First, ensure you've installed dependencies via composer, per the previous
|
||||
section on running tests.
|
||||
|
||||
To run CS checks only:
|
||||
|
||||
```console
|
||||
$ composer cs-check
|
||||
```
|
||||
|
||||
To attempt to automatically fix common CS issues:
|
||||
|
||||
```console
|
||||
$ composer cs-fix
|
||||
```
|
||||
|
||||
If the above fixes any CS issues, please re-run the tests to ensure
|
||||
they pass, and make sure you add and commit the changes after verification.
|
||||
|
||||
## Recommended Workflow for Contributions
|
||||
|
||||
Your first step is to establish a public repository from which we can
|
||||
pull your work into the master repository. We recommend using
|
||||
[GitHub](https://github.com), as that is where the component is already hosted.
|
||||
|
||||
1. Setup a [GitHub account](https://github.com/), if you haven't yet
|
||||
2. Fork the repository (https://github.com/zendframework/zend-db)
|
||||
3. Clone the canonical repository locally and enter it.
|
||||
|
||||
```console
|
||||
$ git clone git://github.com/zendframework/zend-db.git
|
||||
$ cd zend-db
|
||||
```
|
||||
|
||||
4. Add a remote to your fork; substitute your GitHub username in the command
|
||||
below.
|
||||
|
||||
```console
|
||||
$ git remote add {username} git@github.com:{username}/zend-db.git
|
||||
$ git fetch {username}
|
||||
```
|
||||
|
||||
### Keeping Up-to-Date
|
||||
|
||||
Periodically, you should update your fork or personal repository to
|
||||
match the canonical ZF repository. Assuming you have setup your local repository
|
||||
per the instructions above, you can do the following:
|
||||
|
||||
|
||||
```console
|
||||
$ git checkout master
|
||||
$ git fetch origin
|
||||
$ git rebase origin/master
|
||||
# OPTIONALLY, to keep your remote up-to-date -
|
||||
$ git push {username} master:master
|
||||
```
|
||||
|
||||
If you're tracking other branches -- for example, the "develop" branch, where
|
||||
new feature development occurs -- you'll want to do the same operations for that
|
||||
branch; simply substitute "develop" for "master".
|
||||
|
||||
### Working on a patch
|
||||
|
||||
We recommend you do each new feature or bugfix in a new branch. This simplifies
|
||||
the task of code review as well as the task of merging your changes into the
|
||||
canonical repository.
|
||||
|
||||
A typical workflow will then consist of the following:
|
||||
|
||||
1. Create a new local branch based off either your master or develop branch.
|
||||
2. Switch to your new local branch. (This step can be combined with the
|
||||
previous step with the use of `git checkout -b`.)
|
||||
3. Do some work, commit, repeat as necessary.
|
||||
4. Push the local branch to your remote repository.
|
||||
5. Send a pull request.
|
||||
|
||||
The mechanics of this process are actually quite trivial. Below, we will
|
||||
create a branch for fixing an issue in the tracker.
|
||||
|
||||
```console
|
||||
$ git checkout -b hotfix/9295
|
||||
Switched to a new branch 'hotfix/9295'
|
||||
```
|
||||
|
||||
... do some work ...
|
||||
|
||||
|
||||
```console
|
||||
$ git commit
|
||||
```
|
||||
|
||||
... write your log message ...
|
||||
|
||||
|
||||
```console
|
||||
$ git push {username} hotfix/9295:hotfix/9295
|
||||
Counting objects: 38, done.
|
||||
Delta compression using up to 2 threads.
|
||||
Compression objects: 100% (18/18), done.
|
||||
Writing objects: 100% (20/20), 8.19KiB, done.
|
||||
Total 20 (delta 12), reused 0 (delta 0)
|
||||
To ssh://git@github.com/{username}/zend-db.git
|
||||
b5583aa..4f51698 HEAD -> master
|
||||
```
|
||||
|
||||
To send a pull request, you have two options.
|
||||
|
||||
If using GitHub, you can do the pull request from there. Navigate to
|
||||
your repository, select the branch you just created, and then select the
|
||||
"Pull Request" button in the upper right. Select the user/organization
|
||||
"zendframework" (or whatever the upstream organization is) as the recipient.
|
||||
|
||||
#### What branch to issue the pull request against?
|
||||
|
||||
Which branch should you issue a pull request against?
|
||||
|
||||
- For fixes against the stable release, issue the pull request against the
|
||||
"master" branch.
|
||||
- For new features, or fixes that introduce new elements to the public API (such
|
||||
as new public methods or properties), issue the pull request against the
|
||||
"develop" branch.
|
||||
|
||||
### Branch Cleanup
|
||||
|
||||
As you might imagine, if you are a frequent contributor, you'll start to
|
||||
get a ton of branches both locally and on your remote.
|
||||
|
||||
Once you know that your changes have been accepted to the master
|
||||
repository, we suggest doing some cleanup of these branches.
|
||||
|
||||
- Local branch cleanup
|
||||
|
||||
```console
|
||||
$ git branch -d <branchname>
|
||||
```
|
||||
|
||||
- Remote branch removal
|
||||
|
||||
```console
|
||||
$ git push {username} :<branchname>
|
||||
```
|
||||
@@ -1,19 +0,0 @@
|
||||
- [ ] I was not able to find an [open](https://github.com/zendframework/zend-db/issues?q=is%3Aopen) or [closed](https://github.com/zendframework/zend-db/issues?q=is%3Aclosed) issue matching what I'm seeing.
|
||||
- [ ] This is not a question. (Questions should be asked on [slack](https://zendframework.slack.com/) ([Signup for Slack here](https://zendframework-slack.herokuapp.com/)) or our [forums](https://discourse.zendframework.com/).)
|
||||
|
||||
Provide a narrative description of what you are trying to accomplish.
|
||||
|
||||
### Code to reproduce the issue
|
||||
|
||||
<!-- Please provide the minimum code necessary to recreate the issue -->
|
||||
|
||||
```php
|
||||
```
|
||||
|
||||
### Expected results
|
||||
|
||||
<!-- What do you think should have happened? -->
|
||||
|
||||
### Actual results
|
||||
|
||||
<!-- What did you actually observe? -->
|
||||
@@ -1,25 +0,0 @@
|
||||
Provide a narrative description of what you are trying to accomplish:
|
||||
|
||||
- [ ] Are you fixing a bug?
|
||||
- [ ] Detail how the bug is invoked currently.
|
||||
- [ ] Detail the original, incorrect behavior.
|
||||
- [ ] Detail the new, expected behavior.
|
||||
- [ ] Base your feature on the `master` branch, and submit against that branch.
|
||||
- [ ] Add a regression test that demonstrates the bug, and proves the fix.
|
||||
- [ ] Add a `CHANGELOG.md` entry for the fix.
|
||||
|
||||
- [ ] Are you creating a new feature?
|
||||
- [ ] Why is the new feature needed? What purpose does it serve?
|
||||
- [ ] How will users use the new feature?
|
||||
- [ ] Base your feature on the `develop` branch, and submit against that branch.
|
||||
- [ ] Add only one feature per pull request; split multiple features over multiple pull requests
|
||||
- [ ] Add tests for the new feature.
|
||||
- [ ] Add documentation for the new feature.
|
||||
- [ ] Add a `CHANGELOG.md` entry for the new feature.
|
||||
|
||||
- [ ] Is this related to quality assurance?
|
||||
<!-- Detail why the changes are necessary -->
|
||||
|
||||
- [ ] Is this related to documentation?
|
||||
<!-- Is it a typographical and/or grammatical fix? -->
|
||||
<!-- Is it new documentation? -->
|
||||
@@ -1,25 +0,0 @@
|
||||
# Getting Support
|
||||
|
||||
Zend Framework offers three support channels:
|
||||
|
||||
- For real-time questions, use our
|
||||
[Slack](https://zendframework-slack.herokuapp.com)
|
||||
- For detailed questions (e.g., those requiring examples) use our
|
||||
[forums](https://discourse.zendframework.com/c/questions/components)
|
||||
- To report issues, use this repository's
|
||||
[issue tracker](https://github.com/zendframework/zend-db/issues/new)
|
||||
|
||||
**DO NOT** use the issue tracker to ask questions; use Slack or the forums for
|
||||
that. Questions posed to the issue tracker will be closed.
|
||||
|
||||
When reporting an issue, please include the following details:
|
||||
|
||||
- A narrative description of what you are trying to accomplish.
|
||||
- The minimum code necessary to reproduce the issue.
|
||||
- The expected results of exercising that code.
|
||||
- The actual results received.
|
||||
|
||||
We may ask for additional details: what version of the library you are using,
|
||||
and what PHP version was used to reproduce the issue.
|
||||
|
||||
You may also submit a failing test case as a pull request.
|
||||
@@ -1,498 +0,0 @@
|
||||
# Adapters
|
||||
|
||||
`Zend\Db\Adapter\Adapter` is the central object of the zend-db component. It is
|
||||
responsible for adapting any code written in or for zend-db to the targeted PHP
|
||||
extensions and vendor databases. In doing this, it creates an abstraction layer
|
||||
for the PHP extensions in the `Driver` subnamespace of `Zend\Db\Adapter`. It
|
||||
also creates a lightweight "Platform" abstraction layer, for the various
|
||||
idiosyncrasies that each vendor-specific platform might have in its SQL/RDBMS
|
||||
implementation, separate from the driver implementations.
|
||||
|
||||
## Creating an adapter using configuration
|
||||
|
||||
Create an adapter by instantiating the `Zend\Db\Adapter\Adapter` class. The most
|
||||
common use case, while not the most explicit, is to pass an array of
|
||||
configuration to the `Adapter`:
|
||||
|
||||
```php
|
||||
use Zend\Db\Adapter\Adapter;
|
||||
|
||||
$adapter = new Adapter($configArray);
|
||||
```
|
||||
|
||||
This driver array is an abstraction for the extension level required parameters.
|
||||
Here is a table for the key-value pairs that should be in configuration array.
|
||||
|
||||
Key | Is Required? | Value
|
||||
---------- | ---------------------- | -----
|
||||
`driver` | required | `Mysqli`, `Sqlsrv`, `Pdo_Sqlite`, `Pdo_Mysql`, `Pdo`(= Other PDO Driver)
|
||||
`database` | generally required | the name of the database (schema)
|
||||
`username` | generally required | the connection username
|
||||
`password` | generally required | the connection password
|
||||
`hostname` | not generally required | the IP address or hostname to connect to
|
||||
`port` | not generally required | the port to connect to (if applicable)
|
||||
`charset` | not generally required | the character set to use
|
||||
|
||||
> ### Options are adapter-dependent
|
||||
>
|
||||
> Other names will work as well. Effectively, if the PHP manual uses a
|
||||
> particular naming, this naming will be supported by the associated driver. For
|
||||
> example, `dbname` in most cases will also work for 'database'. Another
|
||||
> example is that in the case of `Sqlsrv`, `UID` will work in place of
|
||||
> `username`. Which format you choose is up to you, but the above table
|
||||
> represents the official abstraction names.
|
||||
|
||||
For example, a MySQL connection using ext/mysqli:
|
||||
|
||||
```php
|
||||
$adapter = new Zend\Db\Adapter\Adapter([
|
||||
'driver' => 'Mysqli',
|
||||
'database' => 'zend_db_example',
|
||||
'username' => 'developer',
|
||||
'password' => 'developer-password',
|
||||
]);
|
||||
```
|
||||
|
||||
Another example, of a Sqlite connection via PDO:
|
||||
|
||||
```php
|
||||
$adapter = new Zend\Db\Adapter\Adapter([
|
||||
'driver' => 'Pdo_Sqlite',
|
||||
'database' => 'path/to/sqlite.db',
|
||||
]);
|
||||
```
|
||||
|
||||
Another example, of an IBM i DB2 connection via IbmDb2:
|
||||
|
||||
```php
|
||||
$adapter = new Zend\Db\Adapter\Adapter([
|
||||
'database' => '*LOCAL', // or name from WRKRDBDIRE, may be serial #
|
||||
'driver' => 'IbmDb2',
|
||||
'driver_options' => [
|
||||
'autocommit' => DB2_AUTOCOMMIT_ON,
|
||||
'i5_naming' => DB2_I5_NAMING_ON,
|
||||
'i5_libl' => 'SCHEMA1 SCHEMA2 SCHEMA3',
|
||||
],
|
||||
'username' => '__USER__',
|
||||
'password' => '__PASS__',
|
||||
// 'persistent' => true,
|
||||
'platform' => 'IbmDb2',
|
||||
'platform_options' => ['quote_identifiers' => false],
|
||||
]);
|
||||
```
|
||||
|
||||
Another example, of an IBM i DB2 connection via PDO:
|
||||
|
||||
```php
|
||||
$adapter = new Zend\Db\Adapter\Adapter([
|
||||
'dsn' => 'ibm:DB_NAME', // DB_NAME is from WRKRDBDIRE, may be serial #
|
||||
'driver' => 'pdo',
|
||||
'driver_options' => [
|
||||
// PDO::ATTR_PERSISTENT => true,
|
||||
PDO::ATTR_AUTOCOMMIT => true,
|
||||
PDO::I5_ATTR_DBC_SYS_NAMING => true,
|
||||
PDO::I5_ATTR_DBC_CURLIB => '',
|
||||
PDO::I5_ATTR_DBC_LIBL => 'SCHEMA1 SCHEMA2 SCHEMA3',
|
||||
],
|
||||
'username' => '__USER__',
|
||||
'password' => '__PASS__',
|
||||
'platform' => 'IbmDb2',
|
||||
'platform_options' => ['quote_identifiers' => false],
|
||||
]);
|
||||
```
|
||||
|
||||
It is important to know that by using this style of adapter creation, the
|
||||
`Adapter` will attempt to create any dependencies that were not explicitly
|
||||
provided. A `Driver` object will be created from the configuration array
|
||||
provided in the constructor. A `Platform` object will be created based off the
|
||||
type of `Driver` class that was instantiated. And lastly, a default `ResultSet`
|
||||
object is created and utilized. Any of these objects can be injected, to do
|
||||
this, see the next section.
|
||||
|
||||
The list of officially supported drivers:
|
||||
|
||||
- `IbmDb2`: The ext/ibm_db2 driver
|
||||
- `Mysqli`: The ext/mysqli driver
|
||||
- `Oci8`: The ext/oci8 driver
|
||||
- `Pgsql`: The ext/pgsql driver
|
||||
- `Sqlsrv`: The ext/sqlsrv driver (from Microsoft)
|
||||
- `Pdo_Mysql`: MySQL via the PDO extension
|
||||
- `Pdo_Sqlite`: SQLite via the PDO extension
|
||||
- `Pdo_Pgsql`: PostgreSQL via the PDO extension
|
||||
|
||||
## Creating an adapter using dependency injection
|
||||
|
||||
The more expressive and explicit way of creating an adapter is by injecting all
|
||||
your dependencies up front. `Zend\Db\Adapter\Adapter` uses constructor
|
||||
injection, and all required dependencies are injected through the constructor,
|
||||
which has the following signature (in pseudo-code):
|
||||
|
||||
```php
|
||||
use Zend\Db\Adapter\Platform\PlatformInterface;
|
||||
use Zend\Db\ResultSet\ResultSet;
|
||||
|
||||
class Zend\Db\Adapter\Adapter
|
||||
{
|
||||
public function __construct(
|
||||
$driver,
|
||||
PlatformInterface $platform = null,
|
||||
ResultSet $queryResultSetPrototype = null
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
What can be injected:
|
||||
|
||||
- `$driver`: an array of connection parameters (see above) or an instance of
|
||||
`Zend\Db\Adapter\Driver\DriverInterface`.
|
||||
- `$platform` (optional): an instance of `Zend\Db\Platform\PlatformInterface`;
|
||||
the default will be created based off the driver implementation.
|
||||
- `$queryResultSetPrototype` (optional): an instance of
|
||||
`Zend\Db\ResultSet\ResultSet`; to understand this object's role, see the
|
||||
section below on querying.
|
||||
|
||||
## Query Preparation
|
||||
|
||||
By default, `Zend\Db\Adapter\Adapter::query()` prefers that you use
|
||||
"preparation" as a means for processing SQL statements. This generally means
|
||||
that you will supply a SQL statement containing placeholders for the values, and
|
||||
separately provide substitutions for those placeholders. As an example:
|
||||
|
||||
```php
|
||||
$adapter->query('SELECT * FROM `artist` WHERE `id` = ?', [5]);
|
||||
```
|
||||
|
||||
The above example will go through the following steps:
|
||||
|
||||
- create a new `Statement` object.
|
||||
- prepare the array `[5]` into a `ParameterContainer` if necessary.
|
||||
- inject the `ParameterContainer` into the `Statement` object.
|
||||
- execute the `Statement` object, producing a `Result` object.
|
||||
- check the `Result` object to check if the supplied SQL was a result set
|
||||
producing statement:
|
||||
- if the query produced a result set, clone the `ResultSet` prototype,
|
||||
inject the `Result` as its datasource, and return the new `ResultSet`
|
||||
instance.
|
||||
- otherwise, return the `Result`.
|
||||
|
||||
## Query Execution
|
||||
|
||||
In some cases, you have to execute statements directly without preparation. One
|
||||
possible reason for doing so would be to execute a DDL statement, as most
|
||||
extensions and RDBMS systems are incapable of preparing such statements.
|
||||
|
||||
To execute a query without the preparation step, you will need to pass a flag as
|
||||
the second argument indicating execution is required:
|
||||
|
||||
```php
|
||||
$adapter->query(
|
||||
'ALTER TABLE ADD INDEX(`foo_index`) ON (`foo_column`)',
|
||||
Adapter::QUERY_MODE_EXECUTE
|
||||
);
|
||||
```
|
||||
|
||||
The primary difference to notice is that you must provide the
|
||||
`Adapter::QUERY_MODE_EXECUTE` (execute) flag as the second parameter.
|
||||
|
||||
## Creating Statements
|
||||
|
||||
While `query()` is highly useful for one-off and quick querying of a database
|
||||
via the `Adapter`, it generally makes more sense to create a statement and
|
||||
interact with it directly, so that you have greater control over the
|
||||
prepare-then-execute workflow. To do this, `Adapter` gives you a routine called
|
||||
`createStatement()` that allows you to create a `Driver` specific `Statement` to
|
||||
use so you can manage your own prepare-then-execute workflow.
|
||||
|
||||
```php
|
||||
// with optional parameters to bind up-front:
|
||||
$statement = $adapter->createStatement($sql, $optionalParameters);
|
||||
$result = $statement->execute();
|
||||
```
|
||||
|
||||
## Using the Driver Object
|
||||
|
||||
The `Driver` object is the primary place where `Zend\Db\Adapter\Adapter`
|
||||
implements the connection level abstraction specific to a given extension. To
|
||||
make this possible, each driver is composed of 3 objects:
|
||||
|
||||
- A connection: `Zend\Db\Adapter\Driver\ConnectionInterface`
|
||||
- A statement: `Zend\Db\Adapter\Driver\StatementInterface`
|
||||
- A result: `Zend\Db\Adapter\Driver\ResultInterface`
|
||||
|
||||
Each of the built-in drivers practice "prototyping" as a means of creating
|
||||
objects when new instances are requested. The workflow looks like this:
|
||||
|
||||
- An adapter is created with a set of connection parameters.
|
||||
- The adapter chooses the proper driver to instantiate (for example,
|
||||
`Zend\Db\Adapter\Driver\Mysqli`)
|
||||
- That driver class is instantiated.
|
||||
- If no connection, statement, or result objects are injected, defaults are
|
||||
instantiated.
|
||||
|
||||
This driver is now ready to be called on when particular workflows are
|
||||
requested. Here is what the `Driver` API looks like:
|
||||
|
||||
```php
|
||||
namespace Zend\Db\Adapter\Driver;
|
||||
|
||||
interface DriverInterface
|
||||
{
|
||||
const PARAMETERIZATION_POSITIONAL = 'positional';
|
||||
const PARAMETERIZATION_NAMED = 'named';
|
||||
const NAME_FORMAT_CAMELCASE = 'camelCase';
|
||||
const NAME_FORMAT_NATURAL = 'natural';
|
||||
|
||||
public function getDatabasePlatformName(string $nameFormat = self::NAME_FORMAT_CAMELCASE) : string;
|
||||
public function checkEnvironment() : bool;
|
||||
public function getConnection() : ConnectionInterface;
|
||||
public function createStatement(string|resource $sqlOrResource = null) : StatementInterface;
|
||||
public function createResult(resource $resource) : ResultInterface;
|
||||
public function getPrepareType() :string;
|
||||
public function formatParameterName(string $name, $type = null) : string;
|
||||
public function getLastGeneratedValue() : mixed;
|
||||
}
|
||||
```
|
||||
|
||||
From this `DriverInterface`, you can
|
||||
|
||||
- Determine the name of the platform this driver supports (useful for choosing
|
||||
the proper platform object).
|
||||
- Check that the environment can support this driver.
|
||||
- Return the `Connection` instance.
|
||||
- Create a `Statement` instance which is optionally seeded by an SQL statement
|
||||
(this will generally be a clone of a prototypical statement object).
|
||||
- Create a `Result` object which is optionally seeded by a statement resource
|
||||
(this will generally be a clone of a prototypical result object)
|
||||
- Format parameter names; this is important to distinguish the difference
|
||||
between the various ways parameters are named between extensions
|
||||
- Retrieve the overall last generated value (such as an auto-increment value).
|
||||
|
||||
Now let's turn to the `Statement` API:
|
||||
|
||||
```php
|
||||
namespace Zend\Db\Adapter\Driver;
|
||||
|
||||
interface StatementInterface extends StatementContainerInterface
|
||||
{
|
||||
public function getResource() : resource;
|
||||
public function prepare($sql = null) : void;
|
||||
public function isPrepared() : bool;
|
||||
public function execute(null|array|ParameterContainer $parameters = null) : ResultInterface;
|
||||
|
||||
/** Inherited from StatementContainerInterface */
|
||||
public function setSql(string $sql) : void;
|
||||
public function getSql() : string;
|
||||
public function setParameterContainer(ParameterContainer $parameterContainer) : void;
|
||||
public function getParameterContainer() : ParameterContainer;
|
||||
}
|
||||
```
|
||||
|
||||
And finally, the `Result` API:
|
||||
|
||||
```php
|
||||
namespace Zend\Db\Adapter\Driver;
|
||||
|
||||
use Countable;
|
||||
use Iterator;
|
||||
|
||||
interface ResultInterface extends Countable, Iterator
|
||||
{
|
||||
public function buffer() : void;
|
||||
public function isQueryResult() : bool;
|
||||
public function getAffectedRows() : int;
|
||||
public function getGeneratedValue() : mixed;
|
||||
public function getResource() : resource;
|
||||
public function getFieldCount() : int;
|
||||
}
|
||||
```
|
||||
|
||||
## Using The Platform Object
|
||||
|
||||
The `Platform` object provides an API to assist in crafting queries in a way
|
||||
that is specific to the SQL implementation of a particular vendor. The object
|
||||
handles nuances such as how identifiers or values are quoted, or what the
|
||||
identifier separator character is. To get an idea of the capabilities, the
|
||||
interface for a platform object looks like this:
|
||||
|
||||
```php
|
||||
namespace Zend\Db\Adapter\Platform;
|
||||
|
||||
interface PlatformInterface
|
||||
{
|
||||
public function getName() : string;
|
||||
public function getQuoteIdentifierSymbol() : string;
|
||||
public function quoteIdentifier(string $identifier) : string;
|
||||
public function quoteIdentifierChain(string|string[] $identiferChain) : string;
|
||||
public function getQuoteValueSymbol() : string;
|
||||
public function quoteValue(string $value) : string;
|
||||
public function quoteTrustedValue(string $value) : string;
|
||||
public function quoteValueList(string|string[] $valueList) : string;
|
||||
public function getIdentifierSeparator() : string;
|
||||
public function quoteIdentifierInFragment(string $identifier, array $additionalSafeWords = []) : string;
|
||||
}
|
||||
```
|
||||
|
||||
While you can directly instantiate a `Platform` object, generally speaking, it
|
||||
is easier to get the proper `Platform` instance from the configured adapter (by
|
||||
default the `Platform` type will match the underlying driver implementation):
|
||||
|
||||
```php
|
||||
$platform = $adapter->getPlatform();
|
||||
|
||||
// or
|
||||
$platform = $adapter->platform; // magic property access
|
||||
```
|
||||
|
||||
The following are examples of `Platform` usage:
|
||||
|
||||
```php
|
||||
// $adapter is a Zend\Db\Adapter\Adapter instance;
|
||||
// $platform is a Zend\Db\Adapter\Platform\Sql92 instance.
|
||||
$platform = $adapter->getPlatform();
|
||||
|
||||
// "first_name"
|
||||
echo $platform->quoteIdentifier('first_name');
|
||||
|
||||
// "
|
||||
echo $platform->getQuoteIdentifierSymbol();
|
||||
|
||||
// "schema"."mytable"
|
||||
echo $platform->quoteIdentifierChain(['schema', 'mytable']);
|
||||
|
||||
// '
|
||||
echo $platform->getQuoteValueSymbol();
|
||||
|
||||
// 'myvalue'
|
||||
echo $platform->quoteValue('myvalue');
|
||||
|
||||
// 'value', 'Foo O\\'Bar'
|
||||
echo $platform->quoteValueList(['value', "Foo O'Bar"]);
|
||||
|
||||
// .
|
||||
echo $platform->getIdentifierSeparator();
|
||||
|
||||
// "foo" as "bar"
|
||||
echo $platform->quoteIdentifierInFragment('foo as bar');
|
||||
|
||||
// additionally, with some safe words:
|
||||
// ("foo"."bar" = "boo"."baz")
|
||||
echo $platform->quoteIdentifierInFragment('(foo.bar = boo.baz)', ['(', ')', '=']);
|
||||
```
|
||||
|
||||
## Using The Parameter Container
|
||||
|
||||
The `ParameterContainer` object is a container for the various parameters that
|
||||
need to be passed into a `Statement` object to fulfill all the various
|
||||
parameterized parts of the SQL statement. This object implements the
|
||||
`ArrayAccess` interface. Below is the `ParameterContainer` API:
|
||||
|
||||
```php
|
||||
namespace Zend\Db\Adapter;
|
||||
|
||||
use ArrayAccess;
|
||||
use ArrayIterator;
|
||||
use Countable;
|
||||
use Iterator;
|
||||
|
||||
class ParameterContainer implements Iterator, ArrayAccess, Countable
|
||||
{
|
||||
public function __construct(array $data = [])
|
||||
|
||||
/** methods to interact with values */
|
||||
public function offsetExists(string|int $name) : bool;
|
||||
public function offsetGet(string|int $name) : mixed;
|
||||
public function offsetSetReference(string|int $name, string|int $from) : void;
|
||||
public function offsetSet(string|int $name, mixed $value, mixed $errata = null, int $maxLength = null) : void;
|
||||
public function offsetUnset(string|int $name) : void;
|
||||
|
||||
/** set values from array (will reset first) */
|
||||
public function setFromArray(array $data) : ParameterContainer;
|
||||
|
||||
/** methods to interact with value errata */
|
||||
public function offsetSetErrata(string|int $name, mixed $errata) : void;
|
||||
public function offsetGetErrata(string|int $name) : mixed;
|
||||
public function offsetHasErrata(string|int $name) : bool;
|
||||
public function offsetUnsetErrata(string|int $name) : void;
|
||||
|
||||
/** errata only iterator */
|
||||
public function getErrataIterator() : ArrayIterator;
|
||||
|
||||
/** get array with named keys */
|
||||
public function getNamedArray() : array;
|
||||
|
||||
/** get array with int keys, ordered by position */
|
||||
public function getPositionalArray() : array;
|
||||
|
||||
/** iterator: */
|
||||
public function count() : int;
|
||||
public function current() : mixed;
|
||||
public function next() : mixed;
|
||||
public function key() : string|int;
|
||||
public function valid() : bool;
|
||||
public function rewind() : void;
|
||||
|
||||
/** merge existing array of parameters with existing parameters */
|
||||
public function merge(array $parameters) : ParameterContainer;
|
||||
}
|
||||
```
|
||||
|
||||
In addition to handling parameter names and values, the container will assist in
|
||||
tracking parameter types for PHP type to SQL type handling. For example, it
|
||||
might be important that:
|
||||
|
||||
```php
|
||||
$container->offsetSet('limit', 5);
|
||||
```
|
||||
|
||||
be bound as an integer. To achieve this, pass in the
|
||||
`ParameterContainer::TYPE_INTEGER` constant as the 3rd parameter:
|
||||
|
||||
```php
|
||||
$container->offsetSet('limit', 5, $container::TYPE_INTEGER);
|
||||
```
|
||||
|
||||
This will ensure that if the underlying driver supports typing of bound
|
||||
parameters, that this translated information will also be passed along to the
|
||||
actual php database driver.
|
||||
|
||||
## Examples
|
||||
|
||||
Creating a `Driver`, a vendor-portable query, and preparing and iterating the
|
||||
result:
|
||||
|
||||
```php
|
||||
$adapter = new Zend\Db\Adapter\Adapter($driverConfig);
|
||||
|
||||
$qi = function ($name) use ($adapter) {
|
||||
return $adapter->platform->quoteIdentifier($name);
|
||||
};
|
||||
$fp = function ($name) use ($adapter) {
|
||||
return $adapter->driver->formatParameterName($name);
|
||||
};
|
||||
|
||||
$sql = 'UPDATE ' . $qi('artist')
|
||||
. ' SET ' . $qi('name') . ' = ' . $fp('name')
|
||||
. ' WHERE ' . $qi('id') . ' = ' . $fp('id');
|
||||
|
||||
$statement = $adapter->query($sql);
|
||||
|
||||
$parameters = [
|
||||
'name' => 'Updated Artist',
|
||||
'id' => 1,
|
||||
];
|
||||
|
||||
$statement->execute($parameters);
|
||||
|
||||
// DATA INSERTED, NOW CHECK
|
||||
|
||||
$statement = $adapter->query(
|
||||
'SELECT * FROM '
|
||||
. $qi('artist')
|
||||
. ' WHERE id = ' . $fp('id')
|
||||
);
|
||||
|
||||
$results = $statement->execute(['id' => 1]);
|
||||
|
||||
$row = $results->current();
|
||||
$name = $row['name'];
|
||||
```
|
||||
@@ -1,10 +0,0 @@
|
||||
<div class="container">
|
||||
<div class="jumbotron">
|
||||
<h1>zend-db</h1>
|
||||
|
||||
<p>Database abstraction layer, SQL abstraction, result set abstraction, and RowDataGateway and TableDataGateway implementations.</p>
|
||||
|
||||
<pre><code class="language-bash">$ composer require zendframework/zend-db</code></pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,229 +0,0 @@
|
||||
# RDBMS Metadata
|
||||
|
||||
`Zend\Db\Metadata` is as sub-component of zend-db that makes it possible to get
|
||||
metadata information about tables, columns, constraints, triggers, and other
|
||||
information from a database in a standardized way. The primary interface for
|
||||
`Metadata` is:
|
||||
|
||||
```php
|
||||
namespace Zend\Db\Metadata;
|
||||
|
||||
interface MetadataInterface
|
||||
{
|
||||
public function getSchemas();
|
||||
|
||||
public function getTableNames(string $schema = null, bool $includeViews = false) : string[];
|
||||
public function getTables(string $schema = null, bool $includeViews = false) : Object\TableObject[];
|
||||
public function getTable(string $tableName, string $schema = null) : Object\TableObject;
|
||||
|
||||
public function getViewNames(string $schema = null) : string[];
|
||||
public function getViews(string $schema = null) : Object\ViewObject[];
|
||||
public function getView(string $viewName, string $schema = null) : Object\ViewObject;
|
||||
|
||||
public function getColumnNames(string string $table, $schema = null) : string[];
|
||||
public function getColumns(string $table, string $schema = null) : Object\ColumnObject[];
|
||||
public function getColumn(string $columnName, string $table, string $schema = null) Object\ColumnObject;
|
||||
|
||||
public function getConstraints(string $table, $string schema = null) : Object\ConstraintObject[];
|
||||
public function getConstraint(string $constraintName, string $table, string $schema = null) : Object\ConstraintObject;
|
||||
public function getConstraintKeys(string $constraint, string $table, string $schema = null) : Object\ConstraintKeyObject[];
|
||||
|
||||
public function getTriggerNames(string $schema = null) : string[];
|
||||
public function getTriggers(string $schema = null) : Object\TriggerObject[];
|
||||
public function getTrigger(string $triggerName, string $schema = null) : Object\TriggerObject;
|
||||
}
|
||||
```
|
||||
|
||||
## Basic Usage
|
||||
|
||||
Usage of `Zend\Db\Metadata` involves:
|
||||
|
||||
- Constructing a `Zend\Db\Metadata\Metadata` instance with an `Adapter`.
|
||||
- Choosing a strategy for retrieving metadata, based on the database platform
|
||||
used. In most cases, information will come from querying the
|
||||
`INFORMATION_SCHEMA` tables for the currently accessible schema.
|
||||
|
||||
The `Metadata::get*Names()` methods will return arrays of strings, while the
|
||||
other methods will return value objects specific to the type queried.
|
||||
|
||||
```php
|
||||
$metadata = new Zend\Db\Metadata\Metadata($adapter);
|
||||
|
||||
// get the table names
|
||||
$tableNames = $metadata->getTableNames();
|
||||
|
||||
foreach ($tableNames as $tableName) {
|
||||
echo 'In Table ' . $tableName . PHP_EOL;
|
||||
|
||||
$table = $metadata->getTable($tableName);
|
||||
|
||||
echo ' With columns: ' . PHP_EOL;
|
||||
foreach ($table->getColumns() as $column) {
|
||||
echo ' ' . $column->getName()
|
||||
. ' -> ' . $column->getDataType()
|
||||
. PHP_EOL;
|
||||
}
|
||||
|
||||
echo PHP_EOL;
|
||||
echo ' With constraints: ' . PHP_EOL;
|
||||
|
||||
foreach ($metadata->getConstraints($tableName) as $constraint) {
|
||||
echo ' ' . $constraint->getName()
|
||||
. ' -> ' . $constraint->getType()
|
||||
. PHP_EOL;
|
||||
|
||||
if (! $constraint->hasColumns()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
echo ' column: ' . implode(', ', $constraint->getColumns());
|
||||
if ($constraint->isForeignKey()) {
|
||||
$fkCols = [];
|
||||
foreach ($constraint->getReferencedColumns() as $refColumn) {
|
||||
$fkCols[] = $constraint->getReferencedTableName() . '.' . $refColumn;
|
||||
}
|
||||
echo ' => ' . implode(', ', $fkCols);
|
||||
}
|
||||
|
||||
echo PHP_EOL;
|
||||
}
|
||||
|
||||
echo '----' . PHP_EOL;
|
||||
}
|
||||
```
|
||||
|
||||
## Metadata value objects
|
||||
|
||||
Metadata returns value objects that provide an interface to help developers
|
||||
better explore the metadata. Below is the API for the various value objects:
|
||||
|
||||
### TableObject
|
||||
|
||||
```php
|
||||
class Zend\Db\Metadata\Object\TableObject
|
||||
{
|
||||
public function __construct($name);
|
||||
public function setColumns(array $columns);
|
||||
public function getColumns();
|
||||
public function setConstraints($constraints);
|
||||
public function getConstraints();
|
||||
public function setName($name);
|
||||
public function getName();
|
||||
}
|
||||
```
|
||||
|
||||
### ColumnObject
|
||||
|
||||
```php
|
||||
class Zend\Db\Metadata\Object\ColumnObject
|
||||
{
|
||||
public function __construct($name, $tableName, $schemaName = null);
|
||||
public function setName($name);
|
||||
public function getName();
|
||||
public function getTableName();
|
||||
public function setTableName($tableName);
|
||||
public function setSchemaName($schemaName);
|
||||
public function getSchemaName();
|
||||
public function getOrdinalPosition();
|
||||
public function setOrdinalPosition($ordinalPosition);
|
||||
public function getColumnDefault();
|
||||
public function setColumnDefault($columnDefault);
|
||||
public function getIsNullable();
|
||||
public function setIsNullable($isNullable);
|
||||
public function isNullable();
|
||||
public function getDataType();
|
||||
public function setDataType($dataType);
|
||||
public function getCharacterMaximumLength();
|
||||
public function setCharacterMaximumLength($characterMaximumLength);
|
||||
public function getCharacterOctetLength();
|
||||
public function setCharacterOctetLength($characterOctetLength);
|
||||
public function getNumericPrecision();
|
||||
public function setNumericPrecision($numericPrecision);
|
||||
public function getNumericScale();
|
||||
public function setNumericScale($numericScale);
|
||||
public function getNumericUnsigned();
|
||||
public function setNumericUnsigned($numericUnsigned);
|
||||
public function isNumericUnsigned();
|
||||
public function getErratas();
|
||||
public function setErratas(array $erratas);
|
||||
public function getErrata($errataName);
|
||||
public function setErrata($errataName, $errataValue);
|
||||
}
|
||||
```
|
||||
|
||||
### ConstraintObject
|
||||
|
||||
```php
|
||||
class Zend\Db\Metadata\Object\ConstraintObject
|
||||
{
|
||||
public function __construct($name, $tableName, $schemaName = null);
|
||||
public function setName($name);
|
||||
public function getName();
|
||||
public function setSchemaName($schemaName);
|
||||
public function getSchemaName();
|
||||
public function getTableName();
|
||||
public function setTableName($tableName);
|
||||
public function setType($type);
|
||||
public function getType();
|
||||
public function hasColumns();
|
||||
public function getColumns();
|
||||
public function setColumns(array $columns);
|
||||
public function getReferencedTableSchema();
|
||||
public function setReferencedTableSchema($referencedTableSchema);
|
||||
public function getReferencedTableName();
|
||||
public function setReferencedTableName($referencedTableName);
|
||||
public function getReferencedColumns();
|
||||
public function setReferencedColumns(array $referencedColumns);
|
||||
public function getMatchOption();
|
||||
public function setMatchOption($matchOption);
|
||||
public function getUpdateRule();
|
||||
public function setUpdateRule($updateRule);
|
||||
public function getDeleteRule();
|
||||
public function setDeleteRule($deleteRule);
|
||||
public function getCheckClause();
|
||||
public function setCheckClause($checkClause);
|
||||
public function isPrimaryKey();
|
||||
public function isUnique();
|
||||
public function isForeignKey();
|
||||
public function isCheck();
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
### TriggerObject
|
||||
|
||||
```php
|
||||
class Zend\Db\Metadata\Object\TriggerObject
|
||||
{
|
||||
public function getName();
|
||||
public function setName($name);
|
||||
public function getEventManipulation();
|
||||
public function setEventManipulation($eventManipulation);
|
||||
public function getEventObjectCatalog();
|
||||
public function setEventObjectCatalog($eventObjectCatalog);
|
||||
public function getEventObjectSchema();
|
||||
public function setEventObjectSchema($eventObjectSchema);
|
||||
public function getEventObjectTable();
|
||||
public function setEventObjectTable($eventObjectTable);
|
||||
public function getActionOrder();
|
||||
public function setActionOrder($actionOrder);
|
||||
public function getActionCondition();
|
||||
public function setActionCondition($actionCondition);
|
||||
public function getActionStatement();
|
||||
public function setActionStatement($actionStatement);
|
||||
public function getActionOrientation();
|
||||
public function setActionOrientation($actionOrientation);
|
||||
public function getActionTiming();
|
||||
public function setActionTiming($actionTiming);
|
||||
public function getActionReferenceOldTable();
|
||||
public function setActionReferenceOldTable($actionReferenceOldTable);
|
||||
public function getActionReferenceNewTable();
|
||||
public function setActionReferenceNewTable($actionReferenceNewTable);
|
||||
public function getActionReferenceOldRow();
|
||||
public function setActionReferenceOldRow($actionReferenceOldRow);
|
||||
public function getActionReferenceNewRow();
|
||||
public function setActionReferenceNewRow($actionReferenceNewRow);
|
||||
public function getCreated();
|
||||
public function setCreated($created);
|
||||
}
|
||||
```
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user