suppression vendor du repo
This commit is contained in:
parent
72dc02e3bd
commit
f48cf3903f
|
@ -1,7 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
// autoload.php @generated by Composer
|
|
||||||
|
|
||||||
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
|
||||||
|
|
||||||
return ComposerAutoloaderInit494394285bcf28145a1089e03792b412::getLoader();
|
|
|
@ -1 +0,0 @@
|
||||||
../doctrine/orm/bin/doctrine
|
|
|
@ -1 +0,0 @@
|
||||||
../doctrine/dbal/bin/doctrine-dbal
|
|
|
@ -1 +0,0 @@
|
||||||
../doctrine/migrations/bin/doctrine-migrations
|
|
|
@ -1 +0,0 @@
|
||||||
../doctrine/orm/bin/doctrine.php
|
|
|
@ -1 +0,0 @@
|
||||||
../nikic/php-parser/bin/php-parse
|
|
|
@ -1 +0,0 @@
|
||||||
../sensiolabs/security-checker/security-checker
|
|
|
@ -1 +0,0 @@
|
||||||
../symfony/phpunit-bridge/bin/simple-phpunit
|
|
|
@ -1,413 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of Composer.
|
|
||||||
*
|
|
||||||
* (c) Nils Adermann <naderman@naderman.de>
|
|
||||||
* Jordi Boggiano <j.boggiano@seld.be>
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please view the LICENSE
|
|
||||||
* file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Composer\Autoload;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
|
|
||||||
*
|
|
||||||
* $loader = new \Composer\Autoload\ClassLoader();
|
|
||||||
*
|
|
||||||
* // register classes with namespaces
|
|
||||||
* $loader->add('Symfony\Component', __DIR__.'/component');
|
|
||||||
* $loader->add('Symfony', __DIR__.'/framework');
|
|
||||||
*
|
|
||||||
* // activate the autoloader
|
|
||||||
* $loader->register();
|
|
||||||
*
|
|
||||||
* // to enable searching the include path (eg. for PEAR packages)
|
|
||||||
* $loader->setUseIncludePath(true);
|
|
||||||
*
|
|
||||||
* In this example, if you try to use a class in the Symfony\Component
|
|
||||||
* namespace or one of its children (Symfony\Component\Console for instance),
|
|
||||||
* the autoloader will first look for the class under the component/
|
|
||||||
* directory, and it will then fallback to the framework/ directory if not
|
|
||||||
* found before giving up.
|
|
||||||
*
|
|
||||||
* This class is loosely based on the Symfony UniversalClassLoader.
|
|
||||||
*
|
|
||||||
* @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/
|
|
||||||
*/
|
|
||||||
class ClassLoader
|
|
||||||
{
|
|
||||||
// PSR-4
|
|
||||||
private $prefixLengthsPsr4 = array();
|
|
||||||
private $prefixDirsPsr4 = array();
|
|
||||||
private $fallbackDirsPsr4 = array();
|
|
||||||
|
|
||||||
// PSR-0
|
|
||||||
private $prefixesPsr0 = array();
|
|
||||||
private $fallbackDirsPsr0 = array();
|
|
||||||
|
|
||||||
private $useIncludePath = false;
|
|
||||||
private $classMap = array();
|
|
||||||
|
|
||||||
private $classMapAuthoritative = false;
|
|
||||||
|
|
||||||
public function getPrefixes()
|
|
||||||
{
|
|
||||||
if (!empty($this->prefixesPsr0)) {
|
|
||||||
return call_user_func_array('array_merge', $this->prefixesPsr0);
|
|
||||||
}
|
|
||||||
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPrefixesPsr4()
|
|
||||||
{
|
|
||||||
return $this->prefixDirsPsr4;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getFallbackDirs()
|
|
||||||
{
|
|
||||||
return $this->fallbackDirsPsr0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getFallbackDirsPsr4()
|
|
||||||
{
|
|
||||||
return $this->fallbackDirsPsr4;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getClassMap()
|
|
||||||
{
|
|
||||||
return $this->classMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param array $classMap Class to filename map
|
|
||||||
*/
|
|
||||||
public function addClassMap(array $classMap)
|
|
||||||
{
|
|
||||||
if ($this->classMap) {
|
|
||||||
$this->classMap = array_merge($this->classMap, $classMap);
|
|
||||||
} else {
|
|
||||||
$this->classMap = $classMap;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers a set of PSR-0 directories for a given prefix, either
|
|
||||||
* appending or prepending to the ones previously set for this prefix.
|
|
||||||
*
|
|
||||||
* @param string $prefix The prefix
|
|
||||||
* @param array|string $paths The PSR-0 root directories
|
|
||||||
* @param bool $prepend Whether to prepend the directories
|
|
||||||
*/
|
|
||||||
public function add($prefix, $paths, $prepend = false)
|
|
||||||
{
|
|
||||||
if (!$prefix) {
|
|
||||||
if ($prepend) {
|
|
||||||
$this->fallbackDirsPsr0 = array_merge(
|
|
||||||
(array) $paths,
|
|
||||||
$this->fallbackDirsPsr0
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$this->fallbackDirsPsr0 = array_merge(
|
|
||||||
$this->fallbackDirsPsr0,
|
|
||||||
(array) $paths
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$first = $prefix[0];
|
|
||||||
if (!isset($this->prefixesPsr0[$first][$prefix])) {
|
|
||||||
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if ($prepend) {
|
|
||||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
|
||||||
(array) $paths,
|
|
||||||
$this->prefixesPsr0[$first][$prefix]
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
|
||||||
$this->prefixesPsr0[$first][$prefix],
|
|
||||||
(array) $paths
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers a set of PSR-4 directories for a given namespace, either
|
|
||||||
* appending or prepending to the ones previously set for this namespace.
|
|
||||||
*
|
|
||||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
|
||||||
* @param array|string $paths The PSR-4 base directories
|
|
||||||
* @param bool $prepend Whether to prepend the directories
|
|
||||||
*
|
|
||||||
* @throws \InvalidArgumentException
|
|
||||||
*/
|
|
||||||
public function addPsr4($prefix, $paths, $prepend = false)
|
|
||||||
{
|
|
||||||
if (!$prefix) {
|
|
||||||
// Register directories for the root namespace.
|
|
||||||
if ($prepend) {
|
|
||||||
$this->fallbackDirsPsr4 = array_merge(
|
|
||||||
(array) $paths,
|
|
||||||
$this->fallbackDirsPsr4
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$this->fallbackDirsPsr4 = array_merge(
|
|
||||||
$this->fallbackDirsPsr4,
|
|
||||||
(array) $paths
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
|
|
||||||
// Register directories for a new namespace.
|
|
||||||
$length = strlen($prefix);
|
|
||||||
if ('\\' !== $prefix[$length - 1]) {
|
|
||||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
|
||||||
}
|
|
||||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
|
||||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
|
||||||
} elseif ($prepend) {
|
|
||||||
// Prepend directories for an already registered namespace.
|
|
||||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
|
||||||
(array) $paths,
|
|
||||||
$this->prefixDirsPsr4[$prefix]
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
// Append directories for an already registered namespace.
|
|
||||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
|
||||||
$this->prefixDirsPsr4[$prefix],
|
|
||||||
(array) $paths
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers a set of PSR-0 directories for a given prefix,
|
|
||||||
* replacing any others previously set for this prefix.
|
|
||||||
*
|
|
||||||
* @param string $prefix The prefix
|
|
||||||
* @param array|string $paths The PSR-0 base directories
|
|
||||||
*/
|
|
||||||
public function set($prefix, $paths)
|
|
||||||
{
|
|
||||||
if (!$prefix) {
|
|
||||||
$this->fallbackDirsPsr0 = (array) $paths;
|
|
||||||
} else {
|
|
||||||
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers a set of PSR-4 directories for a given namespace,
|
|
||||||
* replacing any others previously set for this namespace.
|
|
||||||
*
|
|
||||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
|
||||||
* @param array|string $paths The PSR-4 base directories
|
|
||||||
*
|
|
||||||
* @throws \InvalidArgumentException
|
|
||||||
*/
|
|
||||||
public function setPsr4($prefix, $paths)
|
|
||||||
{
|
|
||||||
if (!$prefix) {
|
|
||||||
$this->fallbackDirsPsr4 = (array) $paths;
|
|
||||||
} else {
|
|
||||||
$length = strlen($prefix);
|
|
||||||
if ('\\' !== $prefix[$length - 1]) {
|
|
||||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
|
||||||
}
|
|
||||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
|
||||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Turns on searching the include path for class files.
|
|
||||||
*
|
|
||||||
* @param bool $useIncludePath
|
|
||||||
*/
|
|
||||||
public function setUseIncludePath($useIncludePath)
|
|
||||||
{
|
|
||||||
$this->useIncludePath = $useIncludePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Can be used to check if the autoloader uses the include path to check
|
|
||||||
* for classes.
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function getUseIncludePath()
|
|
||||||
{
|
|
||||||
return $this->useIncludePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Turns off searching the prefix and fallback directories for classes
|
|
||||||
* that have not been registered with the class map.
|
|
||||||
*
|
|
||||||
* @param bool $classMapAuthoritative
|
|
||||||
*/
|
|
||||||
public function setClassMapAuthoritative($classMapAuthoritative)
|
|
||||||
{
|
|
||||||
$this->classMapAuthoritative = $classMapAuthoritative;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Should class lookup fail if not found in the current class map?
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function isClassMapAuthoritative()
|
|
||||||
{
|
|
||||||
return $this->classMapAuthoritative;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers this instance as an autoloader.
|
|
||||||
*
|
|
||||||
* @param bool $prepend Whether to prepend the autoloader or not
|
|
||||||
*/
|
|
||||||
public function register($prepend = false)
|
|
||||||
{
|
|
||||||
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unregisters this instance as an autoloader.
|
|
||||||
*/
|
|
||||||
public function unregister()
|
|
||||||
{
|
|
||||||
spl_autoload_unregister(array($this, 'loadClass'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Loads the given class or interface.
|
|
||||||
*
|
|
||||||
* @param string $class The name of the class
|
|
||||||
* @return bool|null True if loaded, null otherwise
|
|
||||||
*/
|
|
||||||
public function loadClass($class)
|
|
||||||
{
|
|
||||||
if ($file = $this->findFile($class)) {
|
|
||||||
includeFile($file);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Finds the path to the file where the class is defined.
|
|
||||||
*
|
|
||||||
* @param string $class The name of the class
|
|
||||||
*
|
|
||||||
* @return string|false The path if found, false otherwise
|
|
||||||
*/
|
|
||||||
public function findFile($class)
|
|
||||||
{
|
|
||||||
// work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
|
|
||||||
if ('\\' == $class[0]) {
|
|
||||||
$class = substr($class, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// class map lookup
|
|
||||||
if (isset($this->classMap[$class])) {
|
|
||||||
return $this->classMap[$class];
|
|
||||||
}
|
|
||||||
if ($this->classMapAuthoritative) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$file = $this->findFileWithExtension($class, '.php');
|
|
||||||
|
|
||||||
// Search for Hack files if we are running on HHVM
|
|
||||||
if ($file === null && defined('HHVM_VERSION')) {
|
|
||||||
$file = $this->findFileWithExtension($class, '.hh');
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($file === null) {
|
|
||||||
// Remember that this class does not exist.
|
|
||||||
return $this->classMap[$class] = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function findFileWithExtension($class, $ext)
|
|
||||||
{
|
|
||||||
// PSR-4 lookup
|
|
||||||
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
|
|
||||||
|
|
||||||
$first = $class[0];
|
|
||||||
if (isset($this->prefixLengthsPsr4[$first])) {
|
|
||||||
foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
|
|
||||||
if (0 === strpos($class, $prefix)) {
|
|
||||||
foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
|
|
||||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// PSR-4 fallback dirs
|
|
||||||
foreach ($this->fallbackDirsPsr4 as $dir) {
|
|
||||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// PSR-0 lookup
|
|
||||||
if (false !== $pos = strrpos($class, '\\')) {
|
|
||||||
// namespaced class name
|
|
||||||
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
|
|
||||||
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
|
|
||||||
} else {
|
|
||||||
// PEAR-like class name
|
|
||||||
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($this->prefixesPsr0[$first])) {
|
|
||||||
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
|
|
||||||
if (0 === strpos($class, $prefix)) {
|
|
||||||
foreach ($dirs as $dir) {
|
|
||||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// PSR-0 fallback dirs
|
|
||||||
foreach ($this->fallbackDirsPsr0 as $dir) {
|
|
||||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// PSR-0 include paths.
|
|
||||||
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Scope isolated include.
|
|
||||||
*
|
|
||||||
* Prevents access to $this/self from included files.
|
|
||||||
*/
|
|
||||||
function includeFile($file)
|
|
||||||
{
|
|
||||||
include $file;
|
|
||||||
}
|
|
|
@ -1,433 +0,0 @@
|
||||||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
|
||||||
Upstream-Name: Composer
|
|
||||||
Upstream-Contact: Jordi Boggiano <j.boggiano@seld.be>
|
|
||||||
Source: https://github.com/composer/composer
|
|
||||||
|
|
||||||
Files: *
|
|
||||||
Copyright: 2016, Nils Adermann <naderman@naderman.de>
|
|
||||||
2016, Jordi Boggiano <j.boggiano@seld.be>
|
|
||||||
License: Expat
|
|
||||||
|
|
||||||
Files: res/cacert.pem
|
|
||||||
Copyright: 2015, Mozilla Foundation
|
|
||||||
License: MPL-2.0
|
|
||||||
|
|
||||||
Files: src/Composer/Util/RemoteFilesystem.php
|
|
||||||
src/Composer/Util/TlsHelper.php
|
|
||||||
Copyright: 2016, Nils Adermann <naderman@naderman.de>
|
|
||||||
2016, Jordi Boggiano <j.boggiano@seld.be>
|
|
||||||
2013, Evan Coury <me@evancoury.com>
|
|
||||||
License: Expat and BSD-2-Clause
|
|
||||||
|
|
||||||
License: BSD-2-Clause
|
|
||||||
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.
|
|
||||||
.
|
|
||||||
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.
|
|
||||||
|
|
||||||
License: Expat
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is furnished
|
|
||||||
to do so, subject to the following conditions:
|
|
||||||
.
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
.
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
|
|
||||||
License: MPL-2.0
|
|
||||||
1. Definitions
|
|
||||||
--------------
|
|
||||||
.
|
|
||||||
1.1. "Contributor"
|
|
||||||
means each individual or legal entity that creates, contributes to
|
|
||||||
the creation of, or owns Covered Software.
|
|
||||||
.
|
|
||||||
1.2. "Contributor Version"
|
|
||||||
means the combination of the Contributions of others (if any) used
|
|
||||||
by a Contributor and that particular Contributor's Contribution.
|
|
||||||
.
|
|
||||||
1.3. "Contribution"
|
|
||||||
means Covered Software of a particular Contributor.
|
|
||||||
.
|
|
||||||
1.4. "Covered Software"
|
|
||||||
means Source Code Form to which the initial Contributor has attached
|
|
||||||
the notice in Exhibit A, the Executable Form of such Source Code
|
|
||||||
Form, and Modifications of such Source Code Form, in each case
|
|
||||||
including portions thereof.
|
|
||||||
.
|
|
||||||
1.5. "Incompatible With Secondary Licenses"
|
|
||||||
means
|
|
||||||
.
|
|
||||||
(a) that the initial Contributor has attached the notice described
|
|
||||||
in Exhibit B to the Covered Software; or
|
|
||||||
.
|
|
||||||
(b) that the Covered Software was made available under the terms of
|
|
||||||
version 1.1 or earlier of the License, but not also under the
|
|
||||||
terms of a Secondary License.
|
|
||||||
.
|
|
||||||
1.6. "Executable Form"
|
|
||||||
means any form of the work other than Source Code Form.
|
|
||||||
.
|
|
||||||
1.7. "Larger Work"
|
|
||||||
means a work that combines Covered Software with other material, in
|
|
||||||
a separate file or files, that is not Covered Software.
|
|
||||||
.
|
|
||||||
1.8. "License"
|
|
||||||
means this document.
|
|
||||||
.
|
|
||||||
1.9. "Licensable"
|
|
||||||
means having the right to grant, to the maximum extent possible,
|
|
||||||
whether at the time of the initial grant or subsequently, any and
|
|
||||||
all of the rights conveyed by this License.
|
|
||||||
.
|
|
||||||
1.10. "Modifications"
|
|
||||||
means any of the following:
|
|
||||||
.
|
|
||||||
(a) any file in Source Code Form that results from an addition to,
|
|
||||||
deletion from, or modification of the contents of Covered
|
|
||||||
Software; or
|
|
||||||
.
|
|
||||||
(b) any new file in Source Code Form that contains any Covered
|
|
||||||
Software.
|
|
||||||
.
|
|
||||||
1.11. "Patent Claims" of a Contributor
|
|
||||||
means any patent claim(s), including without limitation, method,
|
|
||||||
process, and apparatus claims, in any patent Licensable by such
|
|
||||||
Contributor that would be infringed, but for the grant of the
|
|
||||||
License, by the making, using, selling, offering for sale, having
|
|
||||||
made, import, or transfer of either its Contributions or its
|
|
||||||
Contributor Version.
|
|
||||||
.
|
|
||||||
1.12. "Secondary License"
|
|
||||||
means either the GNU General Public License, Version 2.0, the GNU
|
|
||||||
Lesser General Public License, Version 2.1, the GNU Affero General
|
|
||||||
Public License, Version 3.0, or any later versions of those
|
|
||||||
licenses.
|
|
||||||
.
|
|
||||||
1.13. "Source Code Form"
|
|
||||||
means the form of the work preferred for making modifications.
|
|
||||||
.
|
|
||||||
1.14. "You" (or "Your")
|
|
||||||
means an individual or a legal entity exercising rights under this
|
|
||||||
License. For legal entities, "You" includes any entity that
|
|
||||||
controls, is controlled by, or is under common control with You. For
|
|
||||||
purposes of this definition, "control" means (a) the power, direct
|
|
||||||
or indirect, to cause the direction or management of such entity,
|
|
||||||
whether by contract or otherwise, or (b) ownership of more than
|
|
||||||
fifty percent (50%) of the outstanding shares or beneficial
|
|
||||||
ownership of such entity.
|
|
||||||
.
|
|
||||||
2. License Grants and Conditions
|
|
||||||
--------------------------------
|
|
||||||
.
|
|
||||||
2.1. Grants
|
|
||||||
.
|
|
||||||
Each Contributor hereby grants You a world-wide, royalty-free,
|
|
||||||
non-exclusive license:
|
|
||||||
.
|
|
||||||
(a) under intellectual property rights (other than patent or trademark)
|
|
||||||
Licensable by such Contributor to use, reproduce, make available,
|
|
||||||
modify, display, perform, distribute, and otherwise exploit its
|
|
||||||
Contributions, either on an unmodified basis, with Modifications, or
|
|
||||||
as part of a Larger Work; and
|
|
||||||
.
|
|
||||||
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
|
||||||
for sale, have made, import, and otherwise transfer either its
|
|
||||||
Contributions or its Contributor Version.
|
|
||||||
.
|
|
||||||
2.2. Effective Date
|
|
||||||
.
|
|
||||||
The licenses granted in Section 2.1 with respect to any Contribution
|
|
||||||
become effective for each Contribution on the date the Contributor first
|
|
||||||
distributes such Contribution.
|
|
||||||
.
|
|
||||||
2.3. Limitations on Grant Scope
|
|
||||||
.
|
|
||||||
The licenses granted in this Section 2 are the only rights granted under
|
|
||||||
this License. No additional rights or licenses will be implied from the
|
|
||||||
distribution or licensing of Covered Software under this License.
|
|
||||||
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
|
||||||
Contributor:
|
|
||||||
.
|
|
||||||
(a) for any code that a Contributor has removed from Covered Software;
|
|
||||||
or
|
|
||||||
.
|
|
||||||
(b) for infringements caused by: (i) Your and any other third party's
|
|
||||||
modifications of Covered Software, or (ii) the combination of its
|
|
||||||
Contributions with other software (except as part of its Contributor
|
|
||||||
Version); or
|
|
||||||
.
|
|
||||||
(c) under Patent Claims infringed by Covered Software in the absence of
|
|
||||||
its Contributions.
|
|
||||||
.
|
|
||||||
This License does not grant any rights in the trademarks, service marks,
|
|
||||||
or logos of any Contributor (except as may be necessary to comply with
|
|
||||||
the notice requirements in Section 3.4).
|
|
||||||
.
|
|
||||||
2.4. Subsequent Licenses
|
|
||||||
.
|
|
||||||
No Contributor makes additional grants as a result of Your choice to
|
|
||||||
distribute the Covered Software under a subsequent version of this
|
|
||||||
License (see Section 10.2) or under the terms of a Secondary License (if
|
|
||||||
permitted under the terms of Section 3.3).
|
|
||||||
.
|
|
||||||
2.5. Representation
|
|
||||||
.
|
|
||||||
Each Contributor represents that the Contributor believes its
|
|
||||||
Contributions are its original creation(s) or it has sufficient rights
|
|
||||||
to grant the rights to its Contributions conveyed by this License.
|
|
||||||
.
|
|
||||||
2.6. Fair Use
|
|
||||||
.
|
|
||||||
This License is not intended to limit any rights You have under
|
|
||||||
applicable copyright doctrines of fair use, fair dealing, or other
|
|
||||||
equivalents.
|
|
||||||
.
|
|
||||||
2.7. Conditions
|
|
||||||
.
|
|
||||||
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
|
||||||
in Section 2.1.
|
|
||||||
.
|
|
||||||
3. Responsibilities
|
|
||||||
-------------------
|
|
||||||
.
|
|
||||||
3.1. Distribution of Source Form
|
|
||||||
.
|
|
||||||
All distribution of Covered Software in Source Code Form, including any
|
|
||||||
Modifications that You create or to which You contribute, must be under
|
|
||||||
the terms of this License. You must inform recipients that the Source
|
|
||||||
Code Form of the Covered Software is governed by the terms of this
|
|
||||||
License, and how they can obtain a copy of this License. You may not
|
|
||||||
attempt to alter or restrict the recipients' rights in the Source Code
|
|
||||||
Form.
|
|
||||||
.
|
|
||||||
3.2. Distribution of Executable Form
|
|
||||||
.
|
|
||||||
If You distribute Covered Software in Executable Form then:
|
|
||||||
.
|
|
||||||
(a) such Covered Software must also be made available in Source Code
|
|
||||||
Form, as described in Section 3.1, and You must inform recipients of
|
|
||||||
the Executable Form how they can obtain a copy of such Source Code
|
|
||||||
Form by reasonable means in a timely manner, at a charge no more
|
|
||||||
than the cost of distribution to the recipient; and
|
|
||||||
.
|
|
||||||
(b) You may distribute such Executable Form under the terms of this
|
|
||||||
License, or sublicense it under different terms, provided that the
|
|
||||||
license for the Executable Form does not attempt to limit or alter
|
|
||||||
the recipients' rights in the Source Code Form under this License.
|
|
||||||
.
|
|
||||||
3.3. Distribution of a Larger Work
|
|
||||||
.
|
|
||||||
You may create and distribute a Larger Work under terms of Your choice,
|
|
||||||
provided that You also comply with the requirements of this License for
|
|
||||||
the Covered Software. If the Larger Work is a combination of Covered
|
|
||||||
Software with a work governed by one or more Secondary Licenses, and the
|
|
||||||
Covered Software is not Incompatible With Secondary Licenses, this
|
|
||||||
License permits You to additionally distribute such Covered Software
|
|
||||||
under the terms of such Secondary License(s), so that the recipient of
|
|
||||||
the Larger Work may, at their option, further distribute the Covered
|
|
||||||
Software under the terms of either this License or such Secondary
|
|
||||||
License(s).
|
|
||||||
.
|
|
||||||
3.4. Notices
|
|
||||||
.
|
|
||||||
You may not remove or alter the substance of any license notices
|
|
||||||
(including copyright notices, patent notices, disclaimers of warranty,
|
|
||||||
or limitations of liability) contained within the Source Code Form of
|
|
||||||
the Covered Software, except that You may alter any license notices to
|
|
||||||
the extent required to remedy known factual inaccuracies.
|
|
||||||
.
|
|
||||||
3.5. Application of Additional Terms
|
|
||||||
.
|
|
||||||
You may choose to offer, and to charge a fee for, warranty, support,
|
|
||||||
indemnity or liability obligations to one or more recipients of Covered
|
|
||||||
Software. However, You may do so only on Your own behalf, and not on
|
|
||||||
behalf of any Contributor. You must make it absolutely clear that any
|
|
||||||
such warranty, support, indemnity, or liability obligation is offered by
|
|
||||||
You alone, and You hereby agree to indemnify every Contributor for any
|
|
||||||
liability incurred by such Contributor as a result of warranty, support,
|
|
||||||
indemnity or liability terms You offer. You may include additional
|
|
||||||
disclaimers of warranty and limitations of liability specific to any
|
|
||||||
jurisdiction.
|
|
||||||
.
|
|
||||||
4. Inability to Comply Due to Statute or Regulation
|
|
||||||
---------------------------------------------------
|
|
||||||
.
|
|
||||||
If it is impossible for You to comply with any of the terms of this
|
|
||||||
License with respect to some or all of the Covered Software due to
|
|
||||||
statute, judicial order, or regulation then You must: (a) comply with
|
|
||||||
the terms of this License to the maximum extent possible; and (b)
|
|
||||||
describe the limitations and the code they affect. Such description must
|
|
||||||
be placed in a text file included with all distributions of the Covered
|
|
||||||
Software under this License. Except to the extent prohibited by statute
|
|
||||||
or regulation, such description must be sufficiently detailed for a
|
|
||||||
recipient of ordinary skill to be able to understand it.
|
|
||||||
.
|
|
||||||
5. Termination
|
|
||||||
--------------
|
|
||||||
.
|
|
||||||
5.1. The rights granted under this License will terminate automatically
|
|
||||||
if You fail to comply with any of its terms. However, if You become
|
|
||||||
compliant, then the rights granted under this License from a particular
|
|
||||||
Contributor are reinstated (a) provisionally, unless and until such
|
|
||||||
Contributor explicitly and finally terminates Your grants, and (b) on an
|
|
||||||
ongoing basis, if such Contributor fails to notify You of the
|
|
||||||
non-compliance by some reasonable means prior to 60 days after You have
|
|
||||||
come back into compliance. Moreover, Your grants from a particular
|
|
||||||
Contributor are reinstated on an ongoing basis if such Contributor
|
|
||||||
notifies You of the non-compliance by some reasonable means, this is the
|
|
||||||
first time You have received notice of non-compliance with this License
|
|
||||||
from such Contributor, and You become compliant prior to 30 days after
|
|
||||||
Your receipt of the notice.
|
|
||||||
.
|
|
||||||
5.2. If You initiate litigation against any entity by asserting a patent
|
|
||||||
infringement claim (excluding declaratory judgment actions,
|
|
||||||
counter-claims, and cross-claims) alleging that a Contributor Version
|
|
||||||
directly or indirectly infringes any patent, then the rights granted to
|
|
||||||
You by any and all Contributors for the Covered Software under Section
|
|
||||||
2.1 of this License shall terminate.
|
|
||||||
.
|
|
||||||
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
|
||||||
end user license agreements (excluding distributors and resellers) which
|
|
||||||
have been validly granted by You or Your distributors under this License
|
|
||||||
prior to termination shall survive termination.
|
|
||||||
.
|
|
||||||
************************************************************************
|
|
||||||
* *
|
|
||||||
* 6. Disclaimer of Warranty *
|
|
||||||
* ------------------------- *
|
|
||||||
* *
|
|
||||||
* Covered Software is provided under this License on an "as is" *
|
|
||||||
* basis, without warranty of any kind, either expressed, implied, or *
|
|
||||||
* statutory, including, without limitation, warranties that the *
|
|
||||||
* Covered Software is free of defects, merchantable, fit for a *
|
|
||||||
* particular purpose or non-infringing. The entire risk as to the *
|
|
||||||
* quality and performance of the Covered Software is with You. *
|
|
||||||
* Should any Covered Software prove defective in any respect, You *
|
|
||||||
* (not any Contributor) assume the cost of any necessary servicing, *
|
|
||||||
* repair, or correction. This disclaimer of warranty constitutes an *
|
|
||||||
* essential part of this License. No use of any Covered Software is *
|
|
||||||
* authorized under this License except under this disclaimer. *
|
|
||||||
* *
|
|
||||||
************************************************************************
|
|
||||||
.
|
|
||||||
************************************************************************
|
|
||||||
* *
|
|
||||||
* 7. Limitation of Liability *
|
|
||||||
* -------------------------- *
|
|
||||||
* *
|
|
||||||
* Under no circumstances and under no legal theory, whether tort *
|
|
||||||
* (including negligence), contract, or otherwise, shall any *
|
|
||||||
* Contributor, or anyone who distributes Covered Software as *
|
|
||||||
* permitted above, be liable to You for any direct, indirect, *
|
|
||||||
* special, incidental, or consequential damages of any character *
|
|
||||||
* including, without limitation, damages for lost profits, loss of *
|
|
||||||
* goodwill, work stoppage, computer failure or malfunction, or any *
|
|
||||||
* and all other commercial damages or losses, even if such party *
|
|
||||||
* shall have been informed of the possibility of such damages. This *
|
|
||||||
* limitation of liability shall not apply to liability for death or *
|
|
||||||
* personal injury resulting from such party's negligence to the *
|
|
||||||
* extent applicable law prohibits such limitation. Some *
|
|
||||||
* jurisdictions do not allow the exclusion or limitation of *
|
|
||||||
* incidental or consequential damages, so this exclusion and *
|
|
||||||
* limitation may not apply to You. *
|
|
||||||
* *
|
|
||||||
************************************************************************
|
|
||||||
.
|
|
||||||
8. Litigation
|
|
||||||
-------------
|
|
||||||
.
|
|
||||||
Any litigation relating to this License may be brought only in the
|
|
||||||
courts of a jurisdiction where the defendant maintains its principal
|
|
||||||
place of business and such litigation shall be governed by laws of that
|
|
||||||
jurisdiction, without reference to its conflict-of-law provisions.
|
|
||||||
Nothing in this Section shall prevent a party's ability to bring
|
|
||||||
cross-claims or counter-claims.
|
|
||||||
.
|
|
||||||
9. Miscellaneous
|
|
||||||
----------------
|
|
||||||
.
|
|
||||||
This License represents the complete agreement concerning the subject
|
|
||||||
matter hereof. If any provision of this License is held to be
|
|
||||||
unenforceable, such provision shall be reformed only to the extent
|
|
||||||
necessary to make it enforceable. Any law or regulation which provides
|
|
||||||
that the language of a contract shall be construed against the drafter
|
|
||||||
shall not be used to construe this License against a Contributor.
|
|
||||||
.
|
|
||||||
10. Versions of the License
|
|
||||||
---------------------------
|
|
||||||
.
|
|
||||||
10.1. New Versions
|
|
||||||
.
|
|
||||||
Mozilla Foundation is the license steward. Except as provided in Section
|
|
||||||
10.3, no one other than the license steward has the right to modify or
|
|
||||||
publish new versions of this License. Each version will be given a
|
|
||||||
distinguishing version number.
|
|
||||||
.
|
|
||||||
10.2. Effect of New Versions
|
|
||||||
.
|
|
||||||
You may distribute the Covered Software under the terms of the version
|
|
||||||
of the License under which You originally received the Covered Software,
|
|
||||||
or under the terms of any subsequent version published by the license
|
|
||||||
steward.
|
|
||||||
.
|
|
||||||
10.3. Modified Versions
|
|
||||||
.
|
|
||||||
If you create software not governed by this License, and you want to
|
|
||||||
create a new license for such software, you may create and use a
|
|
||||||
modified version of this License if you rename the license and remove
|
|
||||||
any references to the name of the license steward (except to note that
|
|
||||||
such modified license differs from this License).
|
|
||||||
.
|
|
||||||
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
|
||||||
Licenses
|
|
||||||
.
|
|
||||||
If You choose to distribute Source Code Form that is Incompatible With
|
|
||||||
Secondary Licenses under the terms of this version of the License, the
|
|
||||||
notice described in Exhibit B of this License must be attached.
|
|
||||||
.
|
|
||||||
Exhibit A - Source Code Form License Notice
|
|
||||||
-------------------------------------------
|
|
||||||
.
|
|
||||||
This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
||||||
.
|
|
||||||
If it is not possible or desirable to put the notice in a particular
|
|
||||||
file, then You may include the notice in a location (such as a LICENSE
|
|
||||||
file in a relevant directory) where a recipient would be likely to look
|
|
||||||
for such a notice.
|
|
||||||
.
|
|
||||||
You may add additional accurate notices of copyright ownership.
|
|
||||||
.
|
|
||||||
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
|
||||||
---------------------------------------------------------
|
|
||||||
.
|
|
||||||
This Source Code Form is "Incompatible With Secondary Licenses", as
|
|
||||||
defined by the Mozilla Public License, v. 2.0.
|
|
|
@ -1,68 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
// autoload_classmap.php @generated by Composer
|
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
|
||||||
$baseDir = dirname($vendorDir);
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'AppCache' => $baseDir . '/app/AppCache.php',
|
|
||||||
'AppKernel' => $baseDir . '/app/AppKernel.php',
|
|
||||||
'ArithmeticError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php',
|
|
||||||
'AssertionError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php',
|
|
||||||
'CAS_AuthenticationException' => $vendorDir . '/jasig/phpcas/source/CAS/AuthenticationException.php',
|
|
||||||
'CAS_Client' => $vendorDir . '/jasig/phpcas/source/CAS/Client.php',
|
|
||||||
'CAS_CookieJar' => $vendorDir . '/jasig/phpcas/source/CAS/CookieJar.php',
|
|
||||||
'CAS_Exception' => $vendorDir . '/jasig/phpcas/source/CAS/Exception.php',
|
|
||||||
'CAS_GracefullTerminationException' => $vendorDir . '/jasig/phpcas/source/CAS/GracefullTerminationException.php',
|
|
||||||
'CAS_InvalidArgumentException' => $vendorDir . '/jasig/phpcas/source/CAS/InvalidArgumentException.php',
|
|
||||||
'CAS_Languages_Catalan' => $vendorDir . '/jasig/phpcas/source/CAS/Languages/Catalan.php',
|
|
||||||
'CAS_Languages_ChineseSimplified' => $vendorDir . '/jasig/phpcas/source/CAS/Languages/ChineseSimplified.php',
|
|
||||||
'CAS_Languages_English' => $vendorDir . '/jasig/phpcas/source/CAS/Languages/English.php',
|
|
||||||
'CAS_Languages_French' => $vendorDir . '/jasig/phpcas/source/CAS/Languages/French.php',
|
|
||||||
'CAS_Languages_German' => $vendorDir . '/jasig/phpcas/source/CAS/Languages/German.php',
|
|
||||||
'CAS_Languages_Greek' => $vendorDir . '/jasig/phpcas/source/CAS/Languages/Greek.php',
|
|
||||||
'CAS_Languages_Japanese' => $vendorDir . '/jasig/phpcas/source/CAS/Languages/Japanese.php',
|
|
||||||
'CAS_Languages_LanguageInterface' => $vendorDir . '/jasig/phpcas/source/CAS/Languages/LanguageInterface.php',
|
|
||||||
'CAS_Languages_Spanish' => $vendorDir . '/jasig/phpcas/source/CAS/Languages/Spanish.php',
|
|
||||||
'CAS_OutOfSequenceBeforeAuthenticationCallException' => $vendorDir . '/jasig/phpcas/source/CAS/OutOfSequenceBeforeAuthenticationCallException.php',
|
|
||||||
'CAS_OutOfSequenceBeforeClientException' => $vendorDir . '/jasig/phpcas/source/CAS/OutOfSequenceBeforeClientException.php',
|
|
||||||
'CAS_OutOfSequenceBeforeProxyException' => $vendorDir . '/jasig/phpcas/source/CAS/OutOfSequenceBeforeProxyException.php',
|
|
||||||
'CAS_OutOfSequenceException' => $vendorDir . '/jasig/phpcas/source/CAS/OutOfSequenceException.php',
|
|
||||||
'CAS_PGTStorage_AbstractStorage' => $vendorDir . '/jasig/phpcas/source/CAS/PGTStorage/AbstractStorage.php',
|
|
||||||
'CAS_PGTStorage_Db' => $vendorDir . '/jasig/phpcas/source/CAS/PGTStorage/Db.php',
|
|
||||||
'CAS_PGTStorage_File' => $vendorDir . '/jasig/phpcas/source/CAS/PGTStorage/File.php',
|
|
||||||
'CAS_ProxiedService' => $vendorDir . '/jasig/phpcas/source/CAS/ProxiedService.php',
|
|
||||||
'CAS_ProxiedService_Abstract' => $vendorDir . '/jasig/phpcas/source/CAS/ProxiedService/Abstract.php',
|
|
||||||
'CAS_ProxiedService_Exception' => $vendorDir . '/jasig/phpcas/source/CAS/ProxiedService/Exception.php',
|
|
||||||
'CAS_ProxiedService_Http' => $vendorDir . '/jasig/phpcas/source/CAS/ProxiedService/Http.php',
|
|
||||||
'CAS_ProxiedService_Http_Abstract' => $vendorDir . '/jasig/phpcas/source/CAS/ProxiedService/Http/Abstract.php',
|
|
||||||
'CAS_ProxiedService_Http_Get' => $vendorDir . '/jasig/phpcas/source/CAS/ProxiedService/Http/Get.php',
|
|
||||||
'CAS_ProxiedService_Http_Post' => $vendorDir . '/jasig/phpcas/source/CAS/ProxiedService/Http/Post.php',
|
|
||||||
'CAS_ProxiedService_Imap' => $vendorDir . '/jasig/phpcas/source/CAS/ProxiedService/Imap.php',
|
|
||||||
'CAS_ProxiedService_Testable' => $vendorDir . '/jasig/phpcas/source/CAS/ProxiedService/Testable.php',
|
|
||||||
'CAS_ProxyChain' => $vendorDir . '/jasig/phpcas/source/CAS/ProxyChain.php',
|
|
||||||
'CAS_ProxyChain_AllowedList' => $vendorDir . '/jasig/phpcas/source/CAS/ProxyChain/AllowedList.php',
|
|
||||||
'CAS_ProxyChain_Any' => $vendorDir . '/jasig/phpcas/source/CAS/ProxyChain/Any.php',
|
|
||||||
'CAS_ProxyChain_Interface' => $vendorDir . '/jasig/phpcas/source/CAS/ProxyChain/Interface.php',
|
|
||||||
'CAS_ProxyChain_Trusted' => $vendorDir . '/jasig/phpcas/source/CAS/ProxyChain/Trusted.php',
|
|
||||||
'CAS_ProxyTicketException' => $vendorDir . '/jasig/phpcas/source/CAS/ProxyTicketException.php',
|
|
||||||
'CAS_Request_AbstractRequest' => $vendorDir . '/jasig/phpcas/source/CAS/Request/AbstractRequest.php',
|
|
||||||
'CAS_Request_CurlMultiRequest' => $vendorDir . '/jasig/phpcas/source/CAS/Request/CurlMultiRequest.php',
|
|
||||||
'CAS_Request_CurlRequest' => $vendorDir . '/jasig/phpcas/source/CAS/Request/CurlRequest.php',
|
|
||||||
'CAS_Request_Exception' => $vendorDir . '/jasig/phpcas/source/CAS/Request/Exception.php',
|
|
||||||
'CAS_Request_MultiRequestInterface' => $vendorDir . '/jasig/phpcas/source/CAS/Request/MultiRequestInterface.php',
|
|
||||||
'CAS_Request_RequestInterface' => $vendorDir . '/jasig/phpcas/source/CAS/Request/RequestInterface.php',
|
|
||||||
'CAS_TypeMismatchException' => $vendorDir . '/jasig/phpcas/source/CAS/TypeMismatchException.php',
|
|
||||||
'Collator' => $vendorDir . '/symfony/symfony/src/Symfony/Component/Intl/Resources/stubs/Collator.php',
|
|
||||||
'DivisionByZeroError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php',
|
|
||||||
'Error' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/Error.php',
|
|
||||||
'IntlDateFormatter' => $vendorDir . '/symfony/symfony/src/Symfony/Component/Intl/Resources/stubs/IntlDateFormatter.php',
|
|
||||||
'Locale' => $vendorDir . '/symfony/symfony/src/Symfony/Component/Intl/Resources/stubs/Locale.php',
|
|
||||||
'NumberFormatter' => $vendorDir . '/symfony/symfony/src/Symfony/Component/Intl/Resources/stubs/NumberFormatter.php',
|
|
||||||
'ParseError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/ParseError.php',
|
|
||||||
'SessionUpdateTimestampHandlerInterface' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php',
|
|
||||||
'SqlFormatter' => $vendorDir . '/jdorn/sql-formatter/lib/SqlFormatter.php',
|
|
||||||
'TypeError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/TypeError.php',
|
|
||||||
'phpCAS' => $vendorDir . '/jasig/phpcas/source/CAS.php',
|
|
||||||
);
|
|
|
@ -1,20 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
// autoload_files.php @generated by Composer
|
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
|
||||||
$baseDir = dirname($vendorDir);
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'92c8763cd6170fce6fcfe7e26b4e8c10' => $vendorDir . '/symfony/phpunit-bridge/bootstrap.php',
|
|
||||||
'320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
|
|
||||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
|
|
||||||
'2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php',
|
|
||||||
'5255c38a0faeba867671b61dfda6d864' => $vendorDir . '/paragonie/random_compat/lib/random.php',
|
|
||||||
'023d27dca8066ef29e6739335ea73bad' => $vendorDir . '/symfony/polyfill-php70/bootstrap.php',
|
|
||||||
'bd9634f2d41831496de0d3dfe4c94881' => $vendorDir . '/symfony/polyfill-php56/bootstrap.php',
|
|
||||||
'6a47392539ca2329373e0d33e1dba053' => $vendorDir . '/symfony/polyfill-intl-icu/bootstrap.php',
|
|
||||||
'32dcc8afd4335739640db7d200c1971d' => $vendorDir . '/symfony/polyfill-apcu/bootstrap.php',
|
|
||||||
'ce89ac35a6c330c55f4710717db9ff78' => $vendorDir . '/kriswallsmith/assetic/src/functions.php',
|
|
||||||
'719971e375036615a0685b6fb054583d' => $vendorDir . '/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php',
|
|
||||||
);
|
|
|
@ -1,25 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
// autoload_namespaces.php @generated by Composer
|
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
|
||||||
$baseDir = dirname($vendorDir);
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'Twig_' => array($vendorDir . '/twig/twig/lib'),
|
|
||||||
'Tetranz\\Select2EntityBundle' => array($vendorDir . '/tetranz/select2entity-bundle'),
|
|
||||||
'ProxyManager\\' => array($vendorDir . '/ocramius/proxy-manager/src'),
|
|
||||||
'Oneup\\UploaderBundle' => array($vendorDir . '/oneup/uploader-bundle'),
|
|
||||||
'LightSaml\\Tests\\' => array($vendorDir . '/lightsaml/lightsaml/tests'),
|
|
||||||
'LightSaml\\SymfonyBridgeBundle\\Tests\\' => array($vendorDir . '/lightsaml/symfony-bridge/tests'),
|
|
||||||
'LightSaml\\SymfonyBridgeBundle\\' => array($vendorDir . '/lightsaml/symfony-bridge/src'),
|
|
||||||
'LightSaml\\SpBundle\\Tests\\' => array($vendorDir . '/lightsaml/sp-bundle/tests'),
|
|
||||||
'LightSaml\\SpBundle\\' => array($vendorDir . '/lightsaml/sp-bundle/src'),
|
|
||||||
'LightSaml\\' => array($vendorDir . '/lightsaml/lightsaml/src'),
|
|
||||||
'Doctrine\\ORM\\' => array($vendorDir . '/doctrine/orm/lib'),
|
|
||||||
'Doctrine\\DBAL\\' => array($vendorDir . '/doctrine/dbal/lib'),
|
|
||||||
'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/lib'),
|
|
||||||
'Doctrine\\Common\\DataFixtures' => array($vendorDir . '/doctrine/data-fixtures/lib'),
|
|
||||||
'Doctrine\\Common\\Collections\\' => array($vendorDir . '/doctrine/collections/lib'),
|
|
||||||
'Assetic' => array($vendorDir . '/kriswallsmith/assetic/src'),
|
|
||||||
);
|
|
|
@ -1,60 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
// autoload_psr4.php @generated by Composer
|
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
|
||||||
$baseDir = dirname($vendorDir);
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'Zend\\EventManager\\' => array($vendorDir . '/zendframework/zend-eventmanager/src'),
|
|
||||||
'Zend\\Code\\' => array($vendorDir . '/zendframework/zend-code/src'),
|
|
||||||
'Twig\\' => array($vendorDir . '/twig/twig/src'),
|
|
||||||
'Tests\\' => array($baseDir . '/tests'),
|
|
||||||
'Symfony\\Polyfill\\Util\\' => array($vendorDir . '/symfony/polyfill-util'),
|
|
||||||
'Symfony\\Polyfill\\Php70\\' => array($vendorDir . '/symfony/polyfill-php70'),
|
|
||||||
'Symfony\\Polyfill\\Php56\\' => array($vendorDir . '/symfony/polyfill-php56'),
|
|
||||||
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
|
|
||||||
'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
|
|
||||||
'Symfony\\Polyfill\\Apcu\\' => array($vendorDir . '/symfony/polyfill-apcu'),
|
|
||||||
'Symfony\\Component\\' => array($vendorDir . '/symfony/symfony/src/Symfony/Component'),
|
|
||||||
'Symfony\\Bundle\\SwiftmailerBundle\\' => array($vendorDir . '/symfony/swiftmailer-bundle'),
|
|
||||||
'Symfony\\Bundle\\MonologBundle\\' => array($vendorDir . '/symfony/monolog-bundle'),
|
|
||||||
'Symfony\\Bundle\\MakerBundle\\' => array($vendorDir . '/symfony/maker-bundle/src'),
|
|
||||||
'Symfony\\Bundle\\AsseticBundle\\' => array($vendorDir . '/symfony/assetic-bundle'),
|
|
||||||
'Symfony\\Bundle\\' => array($vendorDir . '/symfony/symfony/src/Symfony/Bundle'),
|
|
||||||
'Symfony\\Bridge\\Twig\\' => array($vendorDir . '/symfony/symfony/src/Symfony/Bridge/Twig'),
|
|
||||||
'Symfony\\Bridge\\ProxyManager\\' => array($vendorDir . '/symfony/symfony/src/Symfony/Bridge/ProxyManager'),
|
|
||||||
'Symfony\\Bridge\\PhpUnit\\' => array($vendorDir . '/symfony/phpunit-bridge'),
|
|
||||||
'Symfony\\Bridge\\Monolog\\' => array($vendorDir . '/symfony/symfony/src/Symfony/Bridge/Monolog'),
|
|
||||||
'Symfony\\Bridge\\Doctrine\\' => array($vendorDir . '/symfony/symfony/src/Symfony/Bridge/Doctrine'),
|
|
||||||
'Sensio\\Bundle\\GeneratorBundle\\' => array($vendorDir . '/sensio/generator-bundle'),
|
|
||||||
'Sensio\\Bundle\\FrameworkExtraBundle\\' => array($vendorDir . '/sensio/framework-extra-bundle'),
|
|
||||||
'Sensio\\Bundle\\DistributionBundle\\' => array($vendorDir . '/sensio/distribution-bundle'),
|
|
||||||
'SensioLabs\\Security\\' => array($vendorDir . '/sensiolabs/security-checker/SensioLabs/Security'),
|
|
||||||
'RobRichards\\XMLSecLibs\\' => array($vendorDir . '/robrichards/xmlseclibs/src'),
|
|
||||||
'Ramsey\\Uuid\\' => array($vendorDir . '/ramsey/uuid/src'),
|
|
||||||
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
|
|
||||||
'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
|
|
||||||
'Psr\\Link\\' => array($vendorDir . '/psr/link/src'),
|
|
||||||
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
|
|
||||||
'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'),
|
|
||||||
'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'),
|
|
||||||
'PackageVersions\\' => array($vendorDir . '/ocramius/package-versions/src/PackageVersions'),
|
|
||||||
'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
|
|
||||||
'Incenteev\\ParameterHandler\\' => array($vendorDir . '/incenteev/composer-parameter-handler'),
|
|
||||||
'Gregwar\\CaptchaBundle\\' => array($vendorDir . '/gregwar/captcha-bundle'),
|
|
||||||
'Gregwar\\' => array($vendorDir . '/gregwar/captcha/src/Gregwar'),
|
|
||||||
'Fig\\Link\\' => array($vendorDir . '/fig/link-util/src'),
|
|
||||||
'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
|
|
||||||
'Doctrine\\DBAL\\Migrations\\' => array($vendorDir . '/doctrine/migrations/lib/Doctrine/DBAL/Migrations'),
|
|
||||||
'Doctrine\\Common\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Common/Inflector'),
|
|
||||||
'Doctrine\\Common\\Cache\\' => array($vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache'),
|
|
||||||
'Doctrine\\Common\\Annotations\\' => array($vendorDir . '/doctrine/annotations/lib/Doctrine/Common/Annotations'),
|
|
||||||
'Doctrine\\Common\\' => array($vendorDir . '/doctrine/common/lib/Doctrine/Common'),
|
|
||||||
'Doctrine\\Bundle\\MigrationsBundle\\' => array($vendorDir . '/doctrine/doctrine-migrations-bundle'),
|
|
||||||
'Doctrine\\Bundle\\FixturesBundle\\' => array($vendorDir . '/doctrine/doctrine-fixtures-bundle'),
|
|
||||||
'Doctrine\\Bundle\\DoctrineCacheBundle\\' => array($vendorDir . '/doctrine/doctrine-cache-bundle'),
|
|
||||||
'Doctrine\\Bundle\\DoctrineBundle\\' => array($vendorDir . '/doctrine/doctrine-bundle'),
|
|
||||||
'Composer\\CaBundle\\' => array($vendorDir . '/composer/ca-bundle/src'),
|
|
||||||
'' => array($baseDir . '/src'),
|
|
||||||
);
|
|
|
@ -1,59 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
// autoload_real.php @generated by Composer
|
|
||||||
|
|
||||||
class ComposerAutoloaderInit494394285bcf28145a1089e03792b412
|
|
||||||
{
|
|
||||||
private static $loader;
|
|
||||||
|
|
||||||
public static function loadClassLoader($class)
|
|
||||||
{
|
|
||||||
if ('Composer\Autoload\ClassLoader' === $class) {
|
|
||||||
require __DIR__ . '/ClassLoader.php';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getLoader()
|
|
||||||
{
|
|
||||||
if (null !== self::$loader) {
|
|
||||||
return self::$loader;
|
|
||||||
}
|
|
||||||
|
|
||||||
spl_autoload_register(array('ComposerAutoloaderInit494394285bcf28145a1089e03792b412', 'loadClassLoader'), true, true);
|
|
||||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
|
||||||
spl_autoload_unregister(array('ComposerAutoloaderInit494394285bcf28145a1089e03792b412', 'loadClassLoader'));
|
|
||||||
|
|
||||||
$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);
|
|
||||||
}
|
|
||||||
|
|
||||||
$loader->register(true);
|
|
||||||
|
|
||||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
|
||||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
|
||||||
composerRequire494394285bcf28145a1089e03792b412($fileIdentifier, $file);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $loader;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function composerRequire494394285bcf28145a1089e03792b412($fileIdentifier, $file)
|
|
||||||
{
|
|
||||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
|
||||||
require $file;
|
|
||||||
|
|
||||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
Copyright (C) 2016 Composer
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
||||||
this software and associated documentation files (the "Software"), to deal in
|
|
||||||
the Software without restriction, including without limitation the rights to
|
|
||||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
||||||
of the Software, and to permit persons to whom the Software is furnished to do
|
|
||||||
so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
|
@ -1,85 +0,0 @@
|
||||||
composer/ca-bundle
|
|
||||||
==================
|
|
||||||
|
|
||||||
Small utility library that lets you find a path to the system CA bundle,
|
|
||||||
and includes a fallback to the Mozilla CA bundle.
|
|
||||||
|
|
||||||
Originally written as part of [composer/composer](https://github.com/composer/composer),
|
|
||||||
now extracted and made available as a stand-alone library.
|
|
||||||
|
|
||||||
|
|
||||||
Installation
|
|
||||||
------------
|
|
||||||
|
|
||||||
Install the latest version with:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ composer require composer/ca-bundle
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
Requirements
|
|
||||||
------------
|
|
||||||
|
|
||||||
* PHP 5.3.2 is required but using the latest version of PHP is highly recommended.
|
|
||||||
|
|
||||||
|
|
||||||
Basic usage
|
|
||||||
-----------
|
|
||||||
|
|
||||||
# `Composer\CaBundle\CaBundle`
|
|
||||||
|
|
||||||
- `CaBundle::getSystemCaRootBundlePath()`: Returns the system CA bundle path, or a path to the bundled one as fallback
|
|
||||||
- `CaBundle::getBundledCaBundlePath()`: Returns the path to the bundled CA file
|
|
||||||
- `CaBundle::validateCaFile($filename)`: Validates a CA file using opensl_x509_parse only if it is safe to use
|
|
||||||
- `CaBundle::isOpensslParseSafe()`: Test if it is safe to use the PHP function openssl_x509_parse()
|
|
||||||
- `CaBundle::reset()`: Resets the static caches
|
|
||||||
|
|
||||||
|
|
||||||
## To use with curl
|
|
||||||
|
|
||||||
```php
|
|
||||||
$curl = curl_init("https://example.org/");
|
|
||||||
|
|
||||||
$caPathOrFile = \Composer\CaBundle\CaBundle::getSystemCaRootBundlePath();
|
|
||||||
if (is_dir($caPathOrFile) || (is_link($caPathOrFile) && is_dir(readlink($caPathOrFile)))) {
|
|
||||||
curl_setopt($curl, CURLOPT_CAPATH, $caPathOrFile);
|
|
||||||
} else {
|
|
||||||
curl_setopt($curl, CURLOPT_CAINFO, $caPathOrFile);
|
|
||||||
}
|
|
||||||
|
|
||||||
$result = curl_exec($curl);
|
|
||||||
```
|
|
||||||
|
|
||||||
## To use with php streams
|
|
||||||
|
|
||||||
```php
|
|
||||||
$opts = array(
|
|
||||||
'http' => array(
|
|
||||||
'method' => "GET"
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
$caPathOrFile = \Composer\CaBundle\CaBundle::getSystemCaRootBundlePath();
|
|
||||||
if (is_dir($caPathOrFile) || (is_link($caPathOrFile) && is_dir(readlink($caPathOrFile)))) {
|
|
||||||
$opts['ssl']['capath'] = $caPathOrFile;
|
|
||||||
} else {
|
|
||||||
$opts['ssl']['cafile'] = $caPathOrFile;
|
|
||||||
}
|
|
||||||
|
|
||||||
$context = stream_context_create($opts);
|
|
||||||
$result = file_get_contents('https://example.com', false, $context);
|
|
||||||
```
|
|
||||||
|
|
||||||
## To use with Guzzle
|
|
||||||
|
|
||||||
```php
|
|
||||||
$client = new \GuzzleHttp\Client([
|
|
||||||
\GuzzleHttp\RequestOptions::VERIFY => \Composer\CaBundle\CaBundle::getSystemCaRootBundlePath()
|
|
||||||
]);
|
|
||||||
```
|
|
||||||
|
|
||||||
License
|
|
||||||
-------
|
|
||||||
|
|
||||||
composer/ca-bundle is licensed under the MIT License, see the LICENSE file for details.
|
|
|
@ -1,54 +0,0 @@
|
||||||
{
|
|
||||||
"name": "composer/ca-bundle",
|
|
||||||
"description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
|
|
||||||
"type": "library",
|
|
||||||
"license": "MIT",
|
|
||||||
"keywords": [
|
|
||||||
"cabundle",
|
|
||||||
"cacert",
|
|
||||||
"certificate",
|
|
||||||
"ssl",
|
|
||||||
"tls"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Jordi Boggiano",
|
|
||||||
"email": "j.boggiano@seld.be",
|
|
||||||
"homepage": "http://seld.be"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"irc": "irc://irc.freenode.org/composer",
|
|
||||||
"issues": "https://github.com/composer/ca-bundle/issues"
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-openssl": "*",
|
|
||||||
"ext-pcre": "*",
|
|
||||||
"php": "^5.3.2 || ^7.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5",
|
|
||||||
"psr/log": "^1.0",
|
|
||||||
"symfony/process": "^2.5 || ^3.0 || ^4.0"
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Composer\\CaBundle\\": "src"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload-dev": {
|
|
||||||
"psr-4": {
|
|
||||||
"Composer\\CaBundle\\": "tests"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"config": {
|
|
||||||
"platform": {
|
|
||||||
"php": "5.3.9"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3401 +0,0 @@
|
||||||
##
|
|
||||||
## Bundle of CA Root Certificates
|
|
||||||
##
|
|
||||||
## Certificate data from Mozilla as of: Wed Jan 23 04:12:09 2019 GMT
|
|
||||||
##
|
|
||||||
## This is a bundle of X.509 certificates of public Certificate Authorities
|
|
||||||
## (CA). These were automatically extracted from Mozilla's root certificates
|
|
||||||
## file (certdata.txt). This file can be found in the mozilla source tree:
|
|
||||||
## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
|
|
||||||
##
|
|
||||||
## It contains the certificates in PEM format and therefore
|
|
||||||
## can be directly used with curl / libcurl / php_curl, or with
|
|
||||||
## an Apache+mod_ssl webserver for SSL client authentication.
|
|
||||||
## Just configure this file as the SSLCACertificateFile.
|
|
||||||
##
|
|
||||||
## Conversion done with mk-ca-bundle.pl version 1.27.
|
|
||||||
## SHA256: 18372117493b5b7ec006c31d966143fc95a9464a2b5f8d5188e23c5557b2292d
|
|
||||||
##
|
|
||||||
|
|
||||||
|
|
||||||
GlobalSign Root CA
|
|
||||||
==================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
|
|
||||||
GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
|
|
||||||
b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
|
|
||||||
BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
|
|
||||||
VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
|
|
||||||
DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
|
|
||||||
THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
|
|
||||||
Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
|
|
||||||
c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
|
|
||||||
gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
|
|
||||||
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
|
|
||||||
AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
|
|
||||||
Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
|
|
||||||
j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
|
|
||||||
hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
|
|
||||||
X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GlobalSign Root CA - R2
|
|
||||||
=======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
|
|
||||||
YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
|
|
||||||
bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
|
|
||||||
aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
|
|
||||||
bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
|
|
||||||
ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
|
|
||||||
s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
|
|
||||||
S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
|
|
||||||
TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
|
|
||||||
ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
|
|
||||||
FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
|
|
||||||
YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
|
|
||||||
BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
|
|
||||||
9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
|
|
||||||
01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
|
|
||||||
9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
|
|
||||||
TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Verisign Class 3 Public Primary Certification Authority - G3
|
|
||||||
============================================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
|
|
||||||
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
|
||||||
cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
|
||||||
IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
|
|
||||||
dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
|
|
||||||
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
|
|
||||||
dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
|
|
||||||
cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
|
|
||||||
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
|
||||||
ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
|
|
||||||
EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
|
|
||||||
cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
|
|
||||||
EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
|
|
||||||
055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
|
|
||||||
ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
|
|
||||||
j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
|
|
||||||
/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
|
|
||||||
xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
|
|
||||||
t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Entrust.net Premium 2048 Secure Server CA
|
|
||||||
=========================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
|
|
||||||
ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
|
|
||||||
bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
|
|
||||||
BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
|
|
||||||
NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
|
|
||||||
d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
|
|
||||||
MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
|
|
||||||
ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
|
||||||
MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
|
|
||||||
Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
|
|
||||||
hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
|
|
||||||
nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
|
|
||||||
VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E
|
|
||||||
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ
|
|
||||||
KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy
|
|
||||||
T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
|
|
||||||
zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
|
|
||||||
J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e
|
|
||||||
nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Baltimore CyberTrust Root
|
|
||||||
=========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
|
|
||||||
ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
|
|
||||||
ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
|
|
||||||
SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
|
|
||||||
dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
|
|
||||||
uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
|
|
||||||
UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
|
|
||||||
G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
|
|
||||||
XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
|
|
||||||
l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
|
|
||||||
VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
|
|
||||||
BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
|
|
||||||
cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
|
|
||||||
hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
|
|
||||||
Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
|
|
||||||
RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
AddTrust External Root
|
|
||||||
======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
|
||||||
QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
|
|
||||||
VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
|
|
||||||
NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
|
|
||||||
cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
|
|
||||||
Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
|
|
||||||
+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
|
|
||||||
Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
|
|
||||||
aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
|
|
||||||
2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
|
|
||||||
7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
|
|
||||||
BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
|
|
||||||
VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
|
|
||||||
VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
|
|
||||||
IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
|
|
||||||
j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
|
|
||||||
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
|
|
||||||
e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
|
|
||||||
G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Entrust Root Certification Authority
|
|
||||||
====================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
|
|
||||||
BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
|
|
||||||
b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
|
|
||||||
A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
|
|
||||||
MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
|
|
||||||
MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
|
|
||||||
Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
|
|
||||||
dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
|
||||||
ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
|
|
||||||
A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
|
|
||||||
Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
|
|
||||||
j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
|
|
||||||
rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
|
|
||||||
DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
|
|
||||||
MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
|
|
||||||
hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
|
|
||||||
A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
|
|
||||||
Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
|
|
||||||
v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
|
|
||||||
W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
|
|
||||||
tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GeoTrust Global CA
|
|
||||||
==================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
|
|
||||||
Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
|
|
||||||
MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
|
|
||||||
LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
|
||||||
CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
|
|
||||||
BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
|
|
||||||
8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
|
|
||||||
T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
|
|
||||||
vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
|
|
||||||
AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
|
|
||||||
DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
|
|
||||||
zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
|
|
||||||
d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
|
|
||||||
mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
|
|
||||||
XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
|
|
||||||
Mw==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GeoTrust Universal CA
|
|
||||||
=====================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
P/rmMuGNG2+k5o7Y+SlIis5z/iw=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GeoTrust Universal CA 2
|
|
||||||
=======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Comodo AAA Services root
|
|
||||||
========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
|
|
||||||
R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
|
|
||||||
TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
|
|
||||||
MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
|
|
||||||
c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
|
|
||||||
BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
|
||||||
ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
|
|
||||||
C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
|
|
||||||
i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
|
|
||||||
Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
|
|
||||||
Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
|
|
||||||
Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
|
|
||||||
BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
|
|
||||||
cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
|
|
||||||
LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
|
|
||||||
7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
|
|
||||||
Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
|
|
||||||
8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
|
|
||||||
12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
QuoVadis Root CA
|
|
||||||
================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
|
|
||||||
ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
|
|
||||||
eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
|
|
||||||
MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
|
|
||||||
cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
|
|
||||||
EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
|
|
||||||
AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
|
|
||||||
J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
|
|
||||||
F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
|
|
||||||
YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
|
|
||||||
AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
|
|
||||||
PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
|
|
||||||
ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
|
|
||||||
MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
|
|
||||||
YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
|
|
||||||
ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
|
|
||||||
Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
|
|
||||||
Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
|
|
||||||
BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
|
|
||||||
FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
|
|
||||||
aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
|
|
||||||
tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
|
|
||||||
fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
|
|
||||||
LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
|
|
||||||
gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
|
|
||||||
5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
|
|
||||||
5nrQNiOKSnQ2+Q==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
QuoVadis Root CA 2
|
|
||||||
==================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
QuoVadis Root CA 3
|
|
||||||
==================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
|
|
||||||
EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
|
|
||||||
OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
|
|
||||||
aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
|
|
||||||
DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
|
|
||||||
DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
|
|
||||||
KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
|
|
||||||
DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
|
|
||||||
BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
|
|
||||||
p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
|
|
||||||
nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
|
|
||||||
MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
|
|
||||||
Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
|
|
||||||
uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
|
|
||||||
BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
|
|
||||||
YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
|
|
||||||
aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
|
|
||||||
BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
|
|
||||||
VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
|
|
||||||
ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
|
|
||||||
AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
|
|
||||||
qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
|
|
||||||
hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
|
|
||||||
POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
|
|
||||||
Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
|
|
||||||
8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
|
|
||||||
bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
|
|
||||||
g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
|
|
||||||
vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
|
|
||||||
qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Security Communication Root CA
|
|
||||||
==============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
|
|
||||||
U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
|
|
||||||
HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
|
|
||||||
U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
|
|
||||||
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
|
|
||||||
8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
|
|
||||||
DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
|
|
||||||
5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
|
|
||||||
DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
|
|
||||||
JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
|
|
||||||
DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
|
|
||||||
0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
|
|
||||||
mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
|
|
||||||
s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
|
|
||||||
6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
|
|
||||||
FL39vmwLAw==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Sonera Class 2 Root CA
|
|
||||||
======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
|
|
||||||
U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
|
|
||||||
NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
|
|
||||||
IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
|
|
||||||
/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
|
|
||||||
dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
|
|
||||||
f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
|
|
||||||
tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
|
|
||||||
nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
|
|
||||||
XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
|
|
||||||
0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
|
|
||||||
cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
|
|
||||||
Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
|
|
||||||
EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
|
|
||||||
llpwrN9M
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
XRamp Global CA Root
|
|
||||||
====================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
|
|
||||||
BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
|
|
||||||
dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
|
|
||||||
dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
|
|
||||||
HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
|
|
||||||
U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
|
||||||
dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
|
|
||||||
IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
|
|
||||||
foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
|
|
||||||
zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
|
|
||||||
AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
|
|
||||||
xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
|
|
||||||
EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
|
|
||||||
oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
|
|
||||||
AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
|
|
||||||
/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
|
|
||||||
qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
|
|
||||||
nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
|
|
||||||
8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Go Daddy Class 2 CA
|
|
||||||
===================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
|
|
||||||
VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
|
|
||||||
ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
|
|
||||||
A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
|
|
||||||
RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
|
|
||||||
ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
|
|
||||||
2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
|
|
||||||
qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
|
|
||||||
YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
|
|
||||||
vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
|
|
||||||
BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
|
|
||||||
atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
|
|
||||||
MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
|
|
||||||
A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
|
|
||||||
PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
|
|
||||||
I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
|
|
||||||
HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
|
|
||||||
Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
|
|
||||||
vZ8=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Starfield Class 2 CA
|
|
||||||
====================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
|
|
||||||
U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
|
|
||||||
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
|
|
||||||
MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
|
|
||||||
A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
|
|
||||||
SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
|
|
||||||
bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
|
|
||||||
JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
|
|
||||||
epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
|
|
||||||
F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
|
|
||||||
MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
|
|
||||||
hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
|
|
||||||
bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
|
|
||||||
QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
|
|
||||||
afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
|
|
||||||
PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
|
|
||||||
xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
|
|
||||||
KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
|
|
||||||
QBFGmh95DmK/D5fs4C8fF5Q=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Taiwan GRCA
|
|
||||||
===========
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
DigiCert Assured ID Root CA
|
|
||||||
===========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
|
|
||||||
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
|
|
||||||
IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
|
|
||||||
MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
|
|
||||||
ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
|
|
||||||
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
|
|
||||||
9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
|
|
||||||
UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
|
|
||||||
/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
|
|
||||||
oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
|
|
||||||
GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
|
|
||||||
66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
|
|
||||||
hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
|
|
||||||
EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
|
|
||||||
SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
|
|
||||||
8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
|
|
||||||
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
DigiCert Global Root CA
|
|
||||||
=======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
|
|
||||||
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
|
|
||||||
HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
|
|
||||||
MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
|
|
||||||
dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
|
|
||||||
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
|
|
||||||
TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
|
|
||||||
BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
|
|
||||||
4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
|
|
||||||
7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
|
|
||||||
o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
|
|
||||||
8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
|
|
||||||
BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
|
|
||||||
EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
|
|
||||||
tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
|
|
||||||
UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
|
|
||||||
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
DigiCert High Assurance EV Root CA
|
|
||||||
==================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
|
|
||||||
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
|
|
||||||
KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
|
|
||||||
MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
|
|
||||||
MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
|
|
||||||
Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
|
|
||||||
Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
|
|
||||||
OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
|
|
||||||
MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
|
|
||||||
NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
|
|
||||||
h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
|
|
||||||
Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
|
|
||||||
JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
|
|
||||||
V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
|
|
||||||
myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
|
|
||||||
mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
|
||||||
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Certplus Class 2 Primary CA
|
|
||||||
===========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
|
|
||||||
BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
|
|
||||||
OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
|
|
||||||
dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
|
||||||
ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
|
|
||||||
5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
|
|
||||||
Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
|
|
||||||
YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
|
|
||||||
e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
|
|
||||||
CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
|
|
||||||
YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
|
|
||||||
L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
|
|
||||||
P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
|
|
||||||
TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
|
|
||||||
7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
|
|
||||||
//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
|
|
||||||
l7+ijrRU
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
DST Root CA X3
|
|
||||||
==============
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
|
|
||||||
ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
|
|
||||||
DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
|
|
||||||
cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
|
|
||||||
ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
|
|
||||||
rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
|
|
||||||
UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
|
|
||||||
xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
|
|
||||||
utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
|
|
||||||
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
|
|
||||||
MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
|
|
||||||
dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
|
|
||||||
GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
|
|
||||||
RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
|
|
||||||
fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
SwissSign Gold CA - G2
|
|
||||||
======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
SwissSign Silver CA - G2
|
|
||||||
========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT
|
|
||||||
BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X
|
|
||||||
DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
|
|
||||||
aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
|
|
||||||
9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644
|
|
||||||
N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm
|
|
||||||
+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH
|
|
||||||
6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu
|
|
||||||
MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h
|
|
||||||
qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5
|
|
||||||
FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs
|
|
||||||
ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc
|
|
||||||
celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X
|
|
||||||
CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
|
|
||||||
BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
|
|
||||||
tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
|
|
||||||
cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P
|
|
||||||
4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F
|
|
||||||
kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L
|
|
||||||
3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx
|
|
||||||
/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa
|
|
||||||
DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP
|
|
||||||
e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu
|
|
||||||
WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ
|
|
||||||
DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
|
|
||||||
DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GeoTrust Primary Certification Authority
|
|
||||||
========================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
|
|
||||||
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
|
|
||||||
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
|
|
||||||
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
|
|
||||||
cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
|
||||||
CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
|
|
||||||
b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
|
|
||||||
nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
|
|
||||||
RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
|
|
||||||
tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
|
||||||
AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
|
|
||||||
hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
|
|
||||||
Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
|
|
||||||
NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
|
|
||||||
Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
|
|
||||||
1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
thawte Primary Root CA
|
|
||||||
======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
|
|
||||||
BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
|
|
||||||
aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
|
|
||||||
cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
|
|
||||||
MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
|
|
||||||
SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
|
|
||||||
KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
|
|
||||||
FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
|
|
||||||
oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
|
|
||||||
1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
|
|
||||||
q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
|
|
||||||
aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
|
|
||||||
afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
|
|
||||||
VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
|
|
||||||
AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
|
|
||||||
uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
|
|
||||||
xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
|
|
||||||
jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
|
|
||||||
z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
VeriSign Class 3 Public Primary Certification Authority - G5
|
|
||||||
============================================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
|
|
||||||
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
|
|
||||||
ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
|
|
||||||
IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
|
|
||||||
ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
|
|
||||||
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
|
|
||||||
biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
|
|
||||||
dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
|
|
||||||
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
|
||||||
ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
|
|
||||||
j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
|
|
||||||
Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
|
|
||||||
Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
|
|
||||||
fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
|
|
||||||
BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
|
|
||||||
Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
|
||||||
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
|
|
||||||
SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
|
|
||||||
X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
|
|
||||||
KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
|
|
||||||
Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
|
|
||||||
ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
SecureTrust CA
|
|
||||||
==============
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
|
|
||||||
EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
|
|
||||||
dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
|
|
||||||
BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
|
|
||||||
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
|
|
||||||
OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
|
|
||||||
DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
|
|
||||||
GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
|
|
||||||
01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
|
|
||||||
ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
|
|
||||||
BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
|
|
||||||
aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
|
|
||||||
KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
|
|
||||||
SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
|
|
||||||
mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
|
|
||||||
nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
|
|
||||||
3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Secure Global CA
|
|
||||||
================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
|
|
||||||
EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
|
|
||||||
bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
|
|
||||||
MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
|
|
||||||
Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
|
|
||||||
YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
|
|
||||||
bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
|
|
||||||
8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
|
|
||||||
HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
|
|
||||||
0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
|
|
||||||
EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
|
|
||||||
oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
|
|
||||||
MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
|
|
||||||
OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
|
|
||||||
CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
|
|
||||||
3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
|
|
||||||
f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
COMODO Certification Authority
|
|
||||||
==============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
|
|
||||||
BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
|
|
||||||
A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
|
|
||||||
dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
|
|
||||||
MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
|
|
||||||
T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
|
||||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
|
|
||||||
+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
|
|
||||||
xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
|
|
||||||
4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
|
|
||||||
1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
|
|
||||||
rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
|
|
||||||
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
|
|
||||||
b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
|
|
||||||
AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
|
|
||||||
OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
|
|
||||||
RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
|
|
||||||
IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
|
|
||||||
+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Network Solutions Certificate Authority
|
|
||||||
=======================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
|
|
||||||
EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
|
|
||||||
IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
|
|
||||||
MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
|
|
||||||
MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
|
|
||||||
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
|
|
||||||
jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
|
|
||||||
aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
|
|
||||||
crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
|
|
||||||
/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
|
|
||||||
AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
|
|
||||||
BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
|
|
||||||
bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
|
|
||||||
A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
|
|
||||||
4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
|
|
||||||
GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
|
|
||||||
wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
|
|
||||||
ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
COMODO ECC Certification Authority
|
|
||||||
==================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
|
|
||||||
R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
|
|
||||||
ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
|
|
||||||
dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
|
|
||||||
GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
|
|
||||||
Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
|
|
||||||
b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
|
|
||||||
4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
|
|
||||||
wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
|
|
||||||
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
|
|
||||||
FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
|
|
||||||
U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
OISTE WISeKey Global Root GA CA
|
|
||||||
===============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
|
|
||||||
BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
|
|
||||||
A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
|
|
||||||
bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
|
|
||||||
VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
|
|
||||||
IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
|
|
||||||
IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
|
|
||||||
Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
|
|
||||||
Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
|
|
||||||
d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
|
|
||||||
/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
|
|
||||||
LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
|
|
||||||
AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
|
|
||||||
KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
|
|
||||||
MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
|
|
||||||
+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
|
|
||||||
hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
|
|
||||||
okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Certigna
|
|
||||||
========
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
|
|
||||||
EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
|
|
||||||
MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
|
|
||||||
Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
|
|
||||||
XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
|
|
||||||
GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
|
|
||||||
ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
|
|
||||||
DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
|
|
||||||
Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
|
|
||||||
tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
|
|
||||||
BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
|
|
||||||
SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
|
|
||||||
hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
|
|
||||||
ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
|
|
||||||
PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
|
|
||||||
1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
|
|
||||||
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Deutsche Telekom Root CA 2
|
|
||||||
==========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
|
|
||||||
RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
|
|
||||||
A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
|
|
||||||
MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
|
|
||||||
A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
|
|
||||||
b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
|
|
||||||
bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
|
|
||||||
KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
|
|
||||||
AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
|
|
||||||
Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
|
|
||||||
jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
|
|
||||||
HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
|
|
||||||
E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
|
|
||||||
zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
|
|
||||||
rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
|
|
||||||
dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
|
|
||||||
Cm26OWMohpLzGITY+9HPBVZkVw==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Cybertrust Global Root
|
|
||||||
======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
|
|
||||||
ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
|
|
||||||
MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
|
|
||||||
ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
|
||||||
+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
|
|
||||||
0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
|
|
||||||
AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
|
|
||||||
89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
|
|
||||||
8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
|
|
||||||
BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
|
|
||||||
MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
|
|
||||||
A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
|
|
||||||
lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
|
|
||||||
5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
|
|
||||||
hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
|
|
||||||
X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
|
|
||||||
WL1WMRJOEcgh4LMRkWXbtKaIOM5V
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
ePKI Root Certification Authority
|
|
||||||
=================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
certSIGN ROOT CA
|
|
||||||
================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
|
|
||||||
VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
|
|
||||||
Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
|
|
||||||
CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
|
|
||||||
JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
|
|
||||||
rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
|
|
||||||
ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
|
|
||||||
0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
|
|
||||||
AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
|
|
||||||
Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
|
|
||||||
AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
|
|
||||||
SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
|
|
||||||
x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
|
|
||||||
vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
|
|
||||||
TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GeoTrust Primary Certification Authority - G3
|
|
||||||
=============================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
|
|
||||||
BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
|
|
||||||
IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
|
|
||||||
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
|
|
||||||
NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
|
|
||||||
YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
|
|
||||||
LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
|
|
||||||
hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
|
|
||||||
K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
|
|
||||||
c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
|
|
||||||
IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
|
|
||||||
dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
|
|
||||||
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
|
|
||||||
2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
|
|
||||||
cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
|
|
||||||
Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
|
|
||||||
AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
|
|
||||||
t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
thawte Primary Root CA - G2
|
|
||||||
===========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
|
|
||||||
VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
|
|
||||||
IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
|
|
||||||
Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
|
|
||||||
MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
|
|
||||||
b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
|
|
||||||
IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
|
|
||||||
LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
|
|
||||||
8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
|
|
||||||
mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
|
|
||||||
G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
|
|
||||||
rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
thawte Primary Root CA - G3
|
|
||||||
===========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
|
|
||||||
BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
|
|
||||||
aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
|
|
||||||
cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
|
|
||||||
ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
|
|
||||||
d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
|
|
||||||
VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
|
|
||||||
A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
|
||||||
MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
|
|
||||||
P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
|
|
||||||
+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
|
|
||||||
7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
|
|
||||||
vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
|
|
||||||
BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
|
|
||||||
KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
|
|
||||||
A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
|
|
||||||
t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
|
|
||||||
8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
|
|
||||||
er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GeoTrust Primary Certification Authority - G2
|
|
||||||
=============================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
|
|
||||||
VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
|
|
||||||
Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
|
|
||||||
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
|
|
||||||
OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
|
|
||||||
MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
|
|
||||||
b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
|
|
||||||
BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
|
|
||||||
KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
|
|
||||||
VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
|
|
||||||
EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
|
|
||||||
ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
|
|
||||||
npaqBA+K
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
VeriSign Universal Root Certification Authority
|
|
||||||
===============================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
|
|
||||||
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
|
|
||||||
ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
|
|
||||||
IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
|
|
||||||
IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
|
|
||||||
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
|
||||||
cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
|
||||||
IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
|
|
||||||
aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
|
|
||||||
1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
|
|
||||||
MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
|
|
||||||
9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
|
|
||||||
AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
|
|
||||||
tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
|
|
||||||
CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
|
|
||||||
a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
|
|
||||||
DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
|
|
||||||
Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
|
|
||||||
Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
|
|
||||||
P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
|
|
||||||
wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
|
|
||||||
mJO37M2CYfE45k+XmCpajQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
VeriSign Class 3 Public Primary Certification Authority - G4
|
|
||||||
============================================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
|
|
||||||
VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
|
|
||||||
b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
|
|
||||||
ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
|
|
||||||
YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
|
|
||||||
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
|
|
||||||
cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
|
|
||||||
b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
|
|
||||||
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
|
|
||||||
Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
|
|
||||||
rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
|
|
||||||
/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
|
|
||||||
HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
|
|
||||||
Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
|
|
||||||
A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
|
|
||||||
AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
NetLock Arany (Class Gold) Főtanúsítvány
|
|
||||||
========================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
|
|
||||||
A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
|
|
||||||
dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
|
|
||||||
cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
|
|
||||||
MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
|
|
||||||
ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
|
|
||||||
biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
|
|
||||||
c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
|
|
||||||
0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
|
|
||||||
/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
|
|
||||||
H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
|
|
||||||
fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
|
|
||||||
neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
|
|
||||||
BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
|
|
||||||
qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
|
|
||||||
YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
|
|
||||||
bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
|
|
||||||
NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
|
|
||||||
dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Staat der Nederlanden Root CA - G2
|
|
||||||
==================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
|
|
||||||
CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
|
|
||||||
Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC
|
|
||||||
TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
|
|
||||||
ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ
|
|
||||||
5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn
|
|
||||||
vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj
|
|
||||||
CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil
|
|
||||||
e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR
|
|
||||||
OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI
|
|
||||||
CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65
|
|
||||||
48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi
|
|
||||||
trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737
|
|
||||||
qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB
|
|
||||||
AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC
|
|
||||||
ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
|
|
||||||
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA
|
|
||||||
A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz
|
|
||||||
+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj
|
|
||||||
f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN
|
|
||||||
kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk
|
|
||||||
CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF
|
|
||||||
URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb
|
|
||||||
CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h
|
|
||||||
oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV
|
|
||||||
IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
|
|
||||||
66+KAQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Hongkong Post Root CA 1
|
|
||||||
=======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
|
|
||||||
DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
|
|
||||||
NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
|
|
||||||
IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
|
|
||||||
AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
|
|
||||||
ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
|
|
||||||
auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
|
|
||||||
qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
|
|
||||||
V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
|
|
||||||
HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
|
|
||||||
h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
|
|
||||||
l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
|
|
||||||
IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
|
|
||||||
T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
|
|
||||||
c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
SecureSign RootCA11
|
|
||||||
===================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
|
|
||||||
SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
|
|
||||||
b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
|
|
||||||
KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
|
|
||||||
cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
|
|
||||||
TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
|
|
||||||
wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
|
|
||||||
g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
|
|
||||||
O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
|
|
||||||
bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
|
|
||||||
t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
|
|
||||||
OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
|
|
||||||
bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
|
|
||||||
Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
|
|
||||||
y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
|
|
||||||
lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Microsec e-Szigno Root CA 2009
|
|
||||||
==============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
|
|
||||||
MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
|
|
||||||
c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
|
|
||||||
dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
|
|
||||||
BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
|
|
||||||
U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
|
|
||||||
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
|
|
||||||
fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
|
|
||||||
0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
|
|
||||||
pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
|
|
||||||
1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
|
|
||||||
AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
|
|
||||||
QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
|
|
||||||
FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
|
|
||||||
lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
|
|
||||||
I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
|
|
||||||
tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
|
|
||||||
yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
|
|
||||||
LXpUq3DDfSJlgnCW
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GlobalSign Root CA - R3
|
|
||||||
=======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
|
|
||||||
YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
|
|
||||||
bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
|
|
||||||
aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
|
|
||||||
bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
|
|
||||||
iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
|
|
||||||
0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
|
|
||||||
rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
|
|
||||||
OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
|
|
||||||
xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
|
||||||
FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
|
|
||||||
lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
|
|
||||||
EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
|
|
||||||
bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
|
|
||||||
YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
|
|
||||||
kpeDMdmztcpHWD9f
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Autoridad de Certificacion Firmaprofesional CIF A62634068
|
|
||||||
=========================================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
|
|
||||||
BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
|
|
||||||
MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
|
|
||||||
QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
|
|
||||||
NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
|
|
||||||
Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
|
|
||||||
B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
|
|
||||||
7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
|
|
||||||
ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
|
|
||||||
plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
|
|
||||||
MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
|
|
||||||
LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
|
|
||||||
bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
|
|
||||||
vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
|
|
||||||
EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
|
|
||||||
DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
|
|
||||||
cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
|
|
||||||
bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
|
|
||||||
ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
|
|
||||||
51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
|
|
||||||
R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
|
|
||||||
T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
|
|
||||||
Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
|
|
||||||
osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
|
|
||||||
crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
|
|
||||||
saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
|
|
||||||
KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
|
|
||||||
6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Izenpe.com
|
|
||||||
==========
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG
|
|
||||||
EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz
|
|
||||||
MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu
|
|
||||||
QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ
|
|
||||||
03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK
|
|
||||||
ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU
|
|
||||||
+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC
|
|
||||||
PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT
|
|
||||||
OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK
|
|
||||||
F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK
|
|
||||||
0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+
|
|
||||||
0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB
|
|
||||||
leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID
|
|
||||||
AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+
|
|
||||||
SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG
|
|
||||||
NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
|
|
||||||
MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
|
|
||||||
BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l
|
|
||||||
Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga
|
|
||||||
kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q
|
|
||||||
hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs
|
|
||||||
g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5
|
|
||||||
aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5
|
|
||||||
nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC
|
|
||||||
ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo
|
|
||||||
Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z
|
|
||||||
WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Chambers of Commerce Root - 2008
|
|
||||||
================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
|
|
||||||
MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
|
|
||||||
bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
|
|
||||||
QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
|
|
||||||
Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
|
|
||||||
ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
|
|
||||||
EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
|
|
||||||
cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
|
|
||||||
AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
|
|
||||||
XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
|
|
||||||
h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
|
|
||||||
ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
|
|
||||||
NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
|
|
||||||
D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
|
|
||||||
lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
|
|
||||||
0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
|
|
||||||
ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
|
|
||||||
EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
|
|
||||||
G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
|
|
||||||
BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
|
|
||||||
bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
|
|
||||||
bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
|
|
||||||
CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
|
|
||||||
AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
|
|
||||||
wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
|
|
||||||
3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
|
|
||||||
RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
|
|
||||||
M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
|
|
||||||
YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
|
|
||||||
9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
|
|
||||||
zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
|
|
||||||
nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
|
|
||||||
OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Global Chambersign Root - 2008
|
|
||||||
==============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
|
|
||||||
MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
|
|
||||||
bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
|
|
||||||
QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
|
|
||||||
NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
|
|
||||||
Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
|
|
||||||
QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
|
|
||||||
aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
|
|
||||||
VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
|
|
||||||
XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
|
|
||||||
ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
|
|
||||||
/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
|
|
||||||
TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
|
|
||||||
H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
|
|
||||||
Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
|
|
||||||
HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
|
|
||||||
wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
|
|
||||||
AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
|
|
||||||
BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
|
|
||||||
BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
|
|
||||||
aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
|
|
||||||
aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
|
|
||||||
1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
|
|
||||||
dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
|
|
||||||
/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
|
|
||||||
ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
|
|
||||||
dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
|
|
||||||
9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
|
|
||||||
foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
|
|
||||||
qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
|
|
||||||
P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
|
|
||||||
c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
|
|
||||||
09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Go Daddy Root Certificate Authority - G2
|
|
||||||
========================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
|
|
||||||
B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
|
|
||||||
MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
|
|
||||||
MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
|
|
||||||
b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
|
|
||||||
A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
|
|
||||||
hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
|
|
||||||
9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
|
|
||||||
+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
|
|
||||||
fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
|
|
||||||
NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
|
|
||||||
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
|
|
||||||
BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
|
|
||||||
vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
|
|
||||||
5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
|
|
||||||
N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
|
|
||||||
LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Starfield Root Certificate Authority - G2
|
|
||||||
=========================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
|
|
||||||
B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
|
|
||||||
b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
|
|
||||||
eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
|
|
||||||
DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
|
|
||||||
VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
|
|
||||||
dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
|
|
||||||
W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
|
|
||||||
bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
|
|
||||||
N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
|
|
||||||
ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
|
|
||||||
JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
|
||||||
AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
|
|
||||||
TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
|
|
||||||
4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
|
|
||||||
F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
|
|
||||||
pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
|
|
||||||
c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Starfield Services Root Certificate Authority - G2
|
|
||||||
==================================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
|
|
||||||
B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
|
|
||||||
b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
|
|
||||||
IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
|
|
||||||
BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
|
|
||||||
dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
|
|
||||||
Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
|
||||||
AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
|
|
||||||
h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
|
|
||||||
hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
|
|
||||||
LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
|
|
||||||
rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
|
|
||||||
AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
|
|
||||||
SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
|
|
||||||
E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
|
|
||||||
xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
|
|
||||||
iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
|
|
||||||
YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
AffirmTrust Commercial
|
|
||||||
======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
|
|
||||||
BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
|
|
||||||
MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
|
|
||||||
bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
|
|
||||||
AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
|
|
||||||
DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
|
|
||||||
C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
|
|
||||||
BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
|
|
||||||
MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
|
|
||||||
HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
|
||||||
AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
|
|
||||||
hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
|
|
||||||
qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
|
|
||||||
0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
|
|
||||||
sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
AffirmTrust Networking
|
|
||||||
======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
|
|
||||||
BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
|
|
||||||
MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
|
|
||||||
bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
|
|
||||||
AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
|
|
||||||
Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
|
|
||||||
dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
|
|
||||||
/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
|
|
||||||
h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
|
|
||||||
HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
|
||||||
AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
|
|
||||||
UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
|
|
||||||
12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
|
|
||||||
WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
|
|
||||||
/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
AffirmTrust Premium
|
|
||||||
===================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
AffirmTrust Premium ECC
|
|
||||||
=======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
|
|
||||||
BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
|
|
||||||
MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
|
|
||||||
cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
|
|
||||||
IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
|
|
||||||
N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
|
|
||||||
BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
|
|
||||||
BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
|
|
||||||
57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
|
|
||||||
eQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Certum Trusted Network CA
|
|
||||||
=========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
|
|
||||||
ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
|
|
||||||
biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
|
|
||||||
MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
|
|
||||||
ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
|
||||||
MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
|
||||||
AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
|
|
||||||
l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
|
|
||||||
J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
|
|
||||||
fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
|
|
||||||
cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
|
|
||||||
Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
|
|
||||||
DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
|
|
||||||
jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
|
|
||||||
mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
|
|
||||||
Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
|
|
||||||
03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
TWCA Root Certification Authority
|
|
||||||
=================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
|
|
||||||
VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
|
|
||||||
dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
|
|
||||||
EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
|
|
||||||
IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
|
||||||
AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
|
|
||||||
QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
|
|
||||||
oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
|
|
||||||
4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
|
|
||||||
y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
|
|
||||||
BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
|
|
||||||
9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
|
|
||||||
mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
|
|
||||||
QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
|
|
||||||
T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
|
|
||||||
Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Security Communication RootCA2
|
|
||||||
==============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
|
|
||||||
U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
|
|
||||||
dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
|
|
||||||
SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
|
|
||||||
aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
|
||||||
ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
|
|
||||||
+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
|
|
||||||
3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
|
|
||||||
spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
|
|
||||||
EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
|
|
||||||
QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
|
|
||||||
CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
|
|
||||||
u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
|
|
||||||
3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
|
|
||||||
tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
|
|
||||||
mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
EC-ACC
|
|
||||||
======
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
|
|
||||||
BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
|
|
||||||
ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
|
|
||||||
VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
|
|
||||||
CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
|
|
||||||
BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
|
|
||||||
MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
|
|
||||||
SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
|
|
||||||
Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
|
|
||||||
cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
|
|
||||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
|
|
||||||
w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
|
|
||||||
ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
|
|
||||||
HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
|
|
||||||
E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
|
|
||||||
0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
|
|
||||||
BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
|
|
||||||
VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
|
|
||||||
Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
|
|
||||||
dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
|
|
||||||
lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
|
|
||||||
Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
|
|
||||||
l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
|
|
||||||
E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
|
|
||||||
5EI=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Hellenic Academic and Research Institutions RootCA 2011
|
|
||||||
=======================================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
|
|
||||||
O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
|
|
||||||
aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
|
|
||||||
IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
|
|
||||||
AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
|
|
||||||
IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
|
|
||||||
IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
|
||||||
AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
|
|
||||||
1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
|
|
||||||
71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
|
|
||||||
8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
|
|
||||||
3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
|
|
||||||
MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
|
|
||||||
MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
|
|
||||||
b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
|
|
||||||
XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
|
|
||||||
TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
|
|
||||||
/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
|
|
||||||
7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Actalis Authentication Root CA
|
|
||||||
==============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
|
|
||||||
BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
|
|
||||||
AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
|
|
||||||
MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
|
|
||||||
IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
|
|
||||||
IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
|
|
||||||
wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
|
|
||||||
by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
|
|
||||||
zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
|
|
||||||
YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
|
|
||||||
oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
|
|
||||||
EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
|
|
||||||
hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
|
|
||||||
EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
|
|
||||||
jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
|
|
||||||
iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
|
|
||||||
ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
|
|
||||||
WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
|
|
||||||
JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
|
|
||||||
K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
|
|
||||||
Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
|
|
||||||
4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
|
|
||||||
2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
|
|
||||||
lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
|
|
||||||
OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
|
|
||||||
vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Trustis FPS Root CA
|
|
||||||
===================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
|
|
||||||
EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
|
|
||||||
IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
|
|
||||||
BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
|
|
||||||
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
|
|
||||||
RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
|
|
||||||
H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
|
|
||||||
cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
|
|
||||||
o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
|
|
||||||
AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
|
|
||||||
BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
|
|
||||||
GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
|
|
||||||
yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
|
|
||||||
8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
|
|
||||||
l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
|
|
||||||
iB6XzCGcKQENZetX2fNXlrtIzYE=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Buypass Class 2 Root CA
|
|
||||||
=======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
rJgWVqA=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Buypass Class 3 Root CA
|
|
||||||
=======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
Cp/HuZc=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
T-TeleSec GlobalRoot Class 3
|
|
||||||
============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
|
|
||||||
IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
|
|
||||||
cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
|
|
||||||
MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
|
|
||||||
dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
|
|
||||||
ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
|
|
||||||
DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
|
|
||||||
9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
|
|
||||||
NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
|
|
||||||
iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
|
|
||||||
0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
|
|
||||||
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
|
|
||||||
AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
|
|
||||||
fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
|
|
||||||
ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
|
|
||||||
P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
|
|
||||||
e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
EE Certification Centre Root CA
|
|
||||||
===============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
|
|
||||||
EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
|
|
||||||
dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
|
|
||||||
MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
|
|
||||||
UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
|
|
||||||
ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
|
|
||||||
DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
|
|
||||||
TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
|
|
||||||
rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
|
|
||||||
93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
|
|
||||||
P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
|
|
||||||
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
|
|
||||||
MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
|
|
||||||
BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
|
|
||||||
xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
|
|
||||||
lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
|
|
||||||
uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
|
|
||||||
3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
|
|
||||||
dcGWxZ0=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
D-TRUST Root Class 3 CA 2 2009
|
|
||||||
==============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK
|
|
||||||
DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe
|
|
||||||
Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE
|
|
||||||
LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw
|
|
||||||
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD
|
|
||||||
ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA
|
|
||||||
BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv
|
|
||||||
KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z
|
|
||||||
p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC
|
|
||||||
AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ
|
|
||||||
4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y
|
|
||||||
eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw
|
|
||||||
MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G
|
|
||||||
PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw
|
|
||||||
OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm
|
|
||||||
2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
|
|
||||||
o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV
|
|
||||||
dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph
|
|
||||||
X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
D-TRUST Root Class 3 CA 2 EV 2009
|
|
||||||
=================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
|
|
||||||
DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
|
|
||||||
OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
|
|
||||||
DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
|
|
||||||
OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS
|
|
||||||
egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh
|
|
||||||
zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T
|
|
||||||
7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60
|
|
||||||
sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35
|
|
||||||
11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv
|
|
||||||
cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v
|
|
||||||
ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El
|
|
||||||
MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp
|
|
||||||
b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh
|
|
||||||
c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+
|
|
||||||
PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
|
|
||||||
nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX
|
|
||||||
ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA
|
|
||||||
NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
|
|
||||||
w9y4AyHqnxbxLFS1
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
CA Disig Root R2
|
|
||||||
================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
7+ZtsH8tZ/3zbBt1RqPlShfppNcL
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
ACCVRAIZ1
|
|
||||||
=========
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB
|
|
||||||
SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1
|
|
||||||
MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH
|
|
||||||
UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
|
|
||||||
DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM
|
|
||||||
jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0
|
|
||||||
RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD
|
|
||||||
aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ
|
|
||||||
0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG
|
|
||||||
WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7
|
|
||||||
8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR
|
|
||||||
5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J
|
|
||||||
9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK
|
|
||||||
Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw
|
|
||||||
Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu
|
|
||||||
Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
|
|
||||||
VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM
|
|
||||||
Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA
|
|
||||||
QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh
|
|
||||||
AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA
|
|
||||||
YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj
|
|
||||||
AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA
|
|
||||||
IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk
|
|
||||||
aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0
|
|
||||||
dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2
|
|
||||||
MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI
|
|
||||||
hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E
|
|
||||||
R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN
|
|
||||||
YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49
|
|
||||||
nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ
|
|
||||||
TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3
|
|
||||||
sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
|
|
||||||
I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg
|
|
||||||
Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd
|
|
||||||
3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p
|
|
||||||
EfbRD0tVNEYqi4Y7
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
TWCA Global Root CA
|
|
||||||
===================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
TeliaSonera Root CA v1
|
|
||||||
======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
E-Tugra Certification Authority
|
|
||||||
===============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
|
|
||||||
DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
|
|
||||||
ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
|
|
||||||
ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
|
|
||||||
NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
|
|
||||||
QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
|
|
||||||
cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
|
|
||||||
DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
|
|
||||||
MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
|
|
||||||
hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
|
|
||||||
CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
|
|
||||||
ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
|
|
||||||
BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
|
|
||||||
E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
|
|
||||||
rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
|
|
||||||
jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
|
|
||||||
rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
|
|
||||||
dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
|
|
||||||
/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
|
|
||||||
MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
|
|
||||||
kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
|
|
||||||
XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
|
|
||||||
VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
|
|
||||||
a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
|
|
||||||
dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
|
|
||||||
KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
|
|
||||||
Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
|
|
||||||
8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
|
|
||||||
C7TbO6Orb1wdtn7os4I07QZcJA==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
T-TeleSec GlobalRoot Class 2
|
|
||||||
============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
|
|
||||||
IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
|
|
||||||
cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx
|
|
||||||
MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
|
|
||||||
dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
|
|
||||||
ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3
|
|
||||||
DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ
|
|
||||||
SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F
|
|
||||||
vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970
|
|
||||||
2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV
|
|
||||||
WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA
|
|
||||||
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy
|
|
||||||
YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4
|
|
||||||
r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf
|
|
||||||
vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR
|
|
||||||
3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
|
|
||||||
9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Atos TrustedRoot 2011
|
|
||||||
=====================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU
|
|
||||||
cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4
|
|
||||||
MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG
|
|
||||||
A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
|
|
||||||
hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr
|
|
||||||
54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+
|
|
||||||
DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320
|
|
||||||
HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR
|
|
||||||
z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R
|
|
||||||
l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ
|
|
||||||
bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
|
|
||||||
CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h
|
|
||||||
k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh
|
|
||||||
TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9
|
|
||||||
61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G
|
|
||||||
3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
QuoVadis Root CA 1 G3
|
|
||||||
=====================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
hMJKzRwuJIczYOXD
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
QuoVadis Root CA 2 G3
|
|
||||||
=====================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
O3jtZsSOeWmD3n+M
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
QuoVadis Root CA 3 G3
|
|
||||||
=====================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
PpxxVJkES/1Y+Zj0
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
DigiCert Assured ID Root G2
|
|
||||||
===========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG
|
|
||||||
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
|
|
||||||
IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw
|
|
||||||
MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
|
|
||||||
ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw
|
|
||||||
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH
|
|
||||||
35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq
|
|
||||||
bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw
|
|
||||||
VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP
|
|
||||||
YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn
|
|
||||||
lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO
|
|
||||||
w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv
|
|
||||||
0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz
|
|
||||||
d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW
|
|
||||||
hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M
|
|
||||||
jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
|
|
||||||
IhNzbM8m9Yop5w==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
DigiCert Assured ID Root G3
|
|
||||||
===========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV
|
|
||||||
UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD
|
|
||||||
VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
|
|
||||||
MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
|
||||||
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ
|
|
||||||
BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb
|
|
||||||
RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs
|
|
||||||
KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF
|
|
||||||
UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy
|
|
||||||
YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy
|
|
||||||
1vUhZscv6pZjamVFkpUBtA==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
DigiCert Global Root G2
|
|
||||||
=======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG
|
|
||||||
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
|
|
||||||
HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx
|
|
||||||
MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
|
|
||||||
dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq
|
|
||||||
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ
|
|
||||||
kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO
|
|
||||||
3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV
|
|
||||||
BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM
|
|
||||||
UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB
|
|
||||||
o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu
|
|
||||||
5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr
|
|
||||||
F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U
|
|
||||||
WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH
|
|
||||||
QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/
|
|
||||||
iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
|
|
||||||
MrY=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
DigiCert Global Root G3
|
|
||||||
=======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV
|
|
||||||
UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD
|
|
||||||
VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw
|
|
||||||
MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k
|
|
||||||
aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C
|
|
||||||
AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O
|
|
||||||
YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP
|
|
||||||
BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp
|
|
||||||
Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y
|
|
||||||
3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34
|
|
||||||
VOKa5Vt8sycX
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
DigiCert Trusted Root G4
|
|
||||||
========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
82Z+
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
COMODO RSA Certification Authority
|
|
||||||
==================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
LaZRfyHBNVOFBkpdn627G190
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
USERTrust RSA Certification Authority
|
|
||||||
=====================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
USERTrust ECC Certification Authority
|
|
||||||
=====================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC
|
|
||||||
VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
|
|
||||||
aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
|
|
||||||
biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC
|
|
||||||
VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
|
|
||||||
aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
|
|
||||||
biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2
|
|
||||||
0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez
|
|
||||||
nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV
|
|
||||||
HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB
|
|
||||||
HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu
|
|
||||||
9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GlobalSign ECC Root CA - R4
|
|
||||||
===========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb
|
|
||||||
R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
|
|
||||||
EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
|
|
||||||
R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
|
|
||||||
EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl
|
|
||||||
OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P
|
|
||||||
AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV
|
|
||||||
MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF
|
|
||||||
JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GlobalSign ECC Root CA - R5
|
|
||||||
===========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb
|
|
||||||
R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
|
|
||||||
EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
|
|
||||||
R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
|
|
||||||
EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6
|
|
||||||
SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS
|
|
||||||
h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
|
|
||||||
BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx
|
|
||||||
uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
|
|
||||||
yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Staat der Nederlanden Root CA - G3
|
|
||||||
==================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Staat der Nederlanden EV Root CA
|
|
||||||
================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
IdenTrust Commercial Root CA 1
|
|
||||||
==============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
cGzM7vRX+Bi6hG6H
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
IdenTrust Public Sector Root CA 1
|
|
||||||
=================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
3Wl9af0AVqW3rLatt8o+Ae+c
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Entrust Root Certification Authority - G2
|
|
||||||
=========================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV
|
|
||||||
BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy
|
|
||||||
bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug
|
|
||||||
b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw
|
|
||||||
HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT
|
|
||||||
DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx
|
|
||||||
OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s
|
|
||||||
eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi
|
|
||||||
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP
|
|
||||||
/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz
|
|
||||||
HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU
|
|
||||||
s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y
|
|
||||||
TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx
|
|
||||||
AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6
|
|
||||||
0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z
|
|
||||||
iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
|
|
||||||
Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi
|
|
||||||
nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+
|
|
||||||
vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO
|
|
||||||
e4pIb4tF9g==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Entrust Root Certification Authority - EC1
|
|
||||||
==========================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx
|
|
||||||
FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn
|
|
||||||
YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl
|
|
||||||
ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
|
||||||
IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw
|
|
||||||
FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs
|
|
||||||
LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg
|
|
||||||
dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
|
|
||||||
IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy
|
|
||||||
AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef
|
|
||||||
9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
|
||||||
FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h
|
|
||||||
vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8
|
|
||||||
kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
CFCA EV ROOT
|
|
||||||
============
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Certinomis - Root CA
|
|
||||||
====================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
hkIGuUE=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
OISTE WISeKey Global Root GB CA
|
|
||||||
===============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG
|
|
||||||
EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
|
|
||||||
ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw
|
|
||||||
MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD
|
|
||||||
VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds
|
|
||||||
b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX
|
|
||||||
scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP
|
|
||||||
rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk
|
|
||||||
9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o
|
|
||||||
Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg
|
|
||||||
GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
|
|
||||||
/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI
|
|
||||||
hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD
|
|
||||||
dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0
|
|
||||||
VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui
|
|
||||||
HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
|
|
||||||
Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
SZAFIR ROOT CA2
|
|
||||||
===============
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG
|
|
||||||
A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV
|
|
||||||
BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ
|
|
||||||
BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD
|
|
||||||
VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q
|
|
||||||
qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK
|
|
||||||
DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE
|
|
||||||
2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ
|
|
||||||
ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi
|
|
||||||
ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
|
|
||||||
AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC
|
|
||||||
AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5
|
|
||||||
O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67
|
|
||||||
oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul
|
|
||||||
4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6
|
|
||||||
+/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Certum Trusted Network CA 2
|
|
||||||
===========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE
|
|
||||||
BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1
|
|
||||||
bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y
|
|
||||||
ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ
|
|
||||||
TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl
|
|
||||||
cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB
|
|
||||||
IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9
|
|
||||||
7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o
|
|
||||||
CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b
|
|
||||||
Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p
|
|
||||||
uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130
|
|
||||||
GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ
|
|
||||||
9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB
|
|
||||||
Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye
|
|
||||||
hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM
|
|
||||||
BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
|
||||||
AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
|
|
||||||
hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW
|
|
||||||
Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA
|
|
||||||
L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo
|
|
||||||
clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM
|
|
||||||
pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb
|
|
||||||
w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo
|
|
||||||
J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm
|
|
||||||
ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX
|
|
||||||
is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7
|
|
||||||
zAYspsbiDrW5viSP
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Hellenic Academic and Research Institutions RootCA 2015
|
|
||||||
=======================================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT
|
|
||||||
BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0
|
|
||||||
aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl
|
|
||||||
YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx
|
|
||||||
MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg
|
|
||||||
QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV
|
|
||||||
BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw
|
|
||||||
MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv
|
|
||||||
bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh
|
|
||||||
iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+
|
|
||||||
6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd
|
|
||||||
FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr
|
|
||||||
i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F
|
|
||||||
GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2
|
|
||||||
fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu
|
|
||||||
iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc
|
|
||||||
Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
|
||||||
AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI
|
|
||||||
hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+
|
|
||||||
D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM
|
|
||||||
d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y
|
|
||||||
d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn
|
|
||||||
82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb
|
|
||||||
davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F
|
|
||||||
Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt
|
|
||||||
J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa
|
|
||||||
JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q
|
|
||||||
p/UsQu0yrbYhnr68
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Hellenic Academic and Research Institutions ECC RootCA 2015
|
|
||||||
===========================================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0
|
|
||||||
aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u
|
|
||||||
cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj
|
|
||||||
aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw
|
|
||||||
MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj
|
|
||||||
IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD
|
|
||||||
VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290
|
|
||||||
Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP
|
|
||||||
dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK
|
|
||||||
Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
|
|
||||||
BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA
|
|
||||||
GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn
|
|
||||||
dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
ISRG Root X1
|
|
||||||
============
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
m+kXQ99b21/+jh5Xos1AnX5iItreGCc=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
AC RAIZ FNMT-RCM
|
|
||||||
================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Amazon Root CA 1
|
|
||||||
================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD
|
|
||||||
VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1
|
|
||||||
MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv
|
|
||||||
bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
|
||||||
ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH
|
|
||||||
FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ
|
|
||||||
gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t
|
|
||||||
dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce
|
|
||||||
VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB
|
|
||||||
/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3
|
|
||||||
DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM
|
|
||||||
CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy
|
|
||||||
8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa
|
|
||||||
2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2
|
|
||||||
xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Amazon Root CA 2
|
|
||||||
================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Amazon Root CA 3
|
|
||||||
================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG
|
|
||||||
EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy
|
|
||||||
NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
|
|
||||||
MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB
|
|
||||||
f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr
|
|
||||||
Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43
|
|
||||||
rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc
|
|
||||||
eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Amazon Root CA 4
|
|
||||||
================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG
|
|
||||||
EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy
|
|
||||||
NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
|
|
||||||
MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN
|
|
||||||
/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri
|
|
||||||
83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
|
|
||||||
HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA
|
|
||||||
MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1
|
|
||||||
AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
LuxTrust Global Root 2
|
|
||||||
======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1
|
|
||||||
=============================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT
|
|
||||||
D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr
|
|
||||||
IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g
|
|
||||||
TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp
|
|
||||||
ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD
|
|
||||||
VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt
|
|
||||||
c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth
|
|
||||||
bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11
|
|
||||||
IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
|
||||||
MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8
|
|
||||||
6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc
|
|
||||||
wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0
|
|
||||||
3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9
|
|
||||||
WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU
|
|
||||||
ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ
|
|
||||||
KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh
|
|
||||||
AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc
|
|
||||||
lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R
|
|
||||||
e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j
|
|
||||||
q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GDCA TrustAUTH R5 ROOT
|
|
||||||
======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
TrustCor RootCert CA-1
|
|
||||||
======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP
|
|
||||||
MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
|
|
||||||
U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
|
|
||||||
dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx
|
|
||||||
MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu
|
|
||||||
YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe
|
|
||||||
VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy
|
|
||||||
dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq
|
|
||||||
jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4
|
|
||||||
pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0
|
|
||||||
JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h
|
|
||||||
gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw
|
|
||||||
/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j
|
|
||||||
BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
|
||||||
AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5
|
|
||||||
mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf
|
|
||||||
ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C
|
|
||||||
qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P
|
|
||||||
3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
TrustCor RootCert CA-2
|
|
||||||
======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBBMQ8w
|
|
||||||
DQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBT
|
|
||||||
eXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0
|
|
||||||
eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEy
|
|
||||||
MzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5h
|
|
||||||
bWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U
|
|
||||||
cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0
|
|
||||||
IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnIG7CKqJiJJWQdsg4foDSq8Gb
|
|
||||||
ZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9Nk
|
|
||||||
RvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1
|
|
||||||
oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOOb
|
|
||||||
XUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1
|
|
||||||
/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5q
|
|
||||||
jxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQP
|
|
||||||
eSghYA2FFn3XVDjxklb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+Ctg
|
|
||||||
rKAmrhQhJ8Z3mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh
|
|
||||||
8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU
|
|
||||||
2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD
|
|
||||||
VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/h
|
|
||||||
Osh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnp
|
|
||||||
kpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv
|
|
||||||
2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RXCI/hOWB3
|
|
||||||
S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYaZH9bDTMJBzN7Bj8RpFxw
|
|
||||||
PIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dv
|
|
||||||
DDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYU
|
|
||||||
RpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANE
|
|
||||||
xdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeX
|
|
||||||
RKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu1uwJ
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
TrustCor ECA-1
|
|
||||||
==============
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP
|
|
||||||
MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
|
|
||||||
U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
|
|
||||||
dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw
|
|
||||||
N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5
|
|
||||||
MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y
|
|
||||||
IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG
|
|
||||||
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR
|
|
||||||
MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23
|
|
||||||
xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc
|
|
||||||
p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+
|
|
||||||
fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj
|
|
||||||
YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL
|
|
||||||
f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
|
|
||||||
AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u
|
|
||||||
/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F
|
|
||||||
hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs
|
|
||||||
J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC
|
|
||||||
jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
SSL.com Root Certification Authority RSA
|
|
||||||
========================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
WuuA8ShYIc2wBlX7Jz9TkHCpBB5XJ7k=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
SSL.com Root Certification Authority ECC
|
|
||||||
========================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMCVVMxDjAMBgNV
|
|
||||||
BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xMTAv
|
|
||||||
BgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEy
|
|
||||||
MTgxNDAzWhcNNDEwMjEyMTgxNDAzWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO
|
|
||||||
BgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv
|
|
||||||
bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuBBAAiA2IA
|
|
||||||
BEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI7Z4INcgn64mMU1jrYor+
|
|
||||||
8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPgCemB+vNH06NjMGEwHQYDVR0OBBYEFILR
|
|
||||||
hXMw5zUE044CkvvlpNHEIejNMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTT
|
|
||||||
jgKS++Wk0cQh6M0wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCW
|
|
||||||
e+0F+S8Tkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+gA0z
|
|
||||||
5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
SSL.com EV Root Certification Authority RSA R2
|
|
||||||
==============================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAlVTMQ4w
|
|
||||||
DAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9u
|
|
||||||
MTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy
|
|
||||||
MB4XDTE3MDUzMTE4MTQzN1oXDTQyMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI
|
|
||||||
DAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYD
|
|
||||||
VQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMIICIjAN
|
|
||||||
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvqM0fNTPl9fb69LT3w23jh
|
|
||||||
hqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssufOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7w
|
|
||||||
cXHswxzpY6IXFJ3vG2fThVUCAtZJycxa4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTO
|
|
||||||
Zw+oz12WGQvE43LrrdF9HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+
|
|
||||||
B6KjBSYRaZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcAb9Zh
|
|
||||||
CBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQGp8hLH94t2S42Oim
|
|
||||||
9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQVPWKchjgGAGYS5Fl2WlPAApiiECto
|
|
||||||
RHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMOpgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+Slm
|
|
||||||
JuwgUHfbSguPvuUCYHBBXtSuUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48
|
|
||||||
+qvWBkofZ6aYMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV
|
|
||||||
HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa49QaAJadz20Zp
|
|
||||||
qJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBWs47LCp1Jjr+kxJG7ZhcFUZh1
|
|
||||||
++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nx
|
|
||||||
Y/hoLVUE0fKNsKTPvDxeH3jnpaAgcLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2G
|
|
||||||
guDKBAdRUNf/ktUM79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDz
|
|
||||||
OFSz/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXtll9ldDz7
|
|
||||||
CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEmKf7GUmG6sXP/wwyc5Wxq
|
|
||||||
lD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKKQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreR
|
|
||||||
rwU7ZcegbLHNYhLDkBvjJc40vG93drEQw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1
|
|
||||||
hlMYegouCRw2n5H9gooiS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX
|
|
||||||
9hwJ1C07mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
SSL.com EV Root Certification Authority ECC
|
|
||||||
===========================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxDjAMBgNV
|
|
||||||
BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xNDAy
|
|
||||||
BgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYw
|
|
||||||
MjEyMTgxNTIzWhcNNDEwMjEyMTgxNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx
|
|
||||||
EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM
|
|
||||||
LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB
|
|
||||||
BAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMAVIbc/R/fALhBYlzccBYy
|
|
||||||
3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1KthkuWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0O
|
|
||||||
BBYEFFvKXuXe0oGqzagtZFG22XKbl+ZPMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe
|
|
||||||
5d7SgarNqC1kUbbZcpuX5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJ
|
|
||||||
N+vp1RPZytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZgh5Mm
|
|
||||||
m7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GlobalSign Root CA - R6
|
|
||||||
=======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
OISTE WISeKey Global Root GC CA
|
|
||||||
===============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJD
|
|
||||||
SDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEo
|
|
||||||
MCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRa
|
|
||||||
Fw00MjA1MDkwOTU4MzNaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQL
|
|
||||||
ExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh
|
|
||||||
bCBSb290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4nieUqjFqdr
|
|
||||||
VCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4Wp2OQ0jnUsYd4XxiWD1Ab
|
|
||||||
NTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
|
|
||||||
BgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7TrYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0E
|
|
||||||
AwMDaAAwZQIwJsdpW9zV57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtk
|
|
||||||
AjEA2zQgMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GTS Root R1
|
|
||||||
===========
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
CFF1pkgl
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GTS Root R2
|
|
||||||
===========
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
o/DUhgkC
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GTS Root R3
|
|
||||||
===========
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV
|
|
||||||
UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg
|
|
||||||
UjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE
|
|
||||||
ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcq
|
|
||||||
hkjOPQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUU
|
|
||||||
Rout736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24Cej
|
|
||||||
QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP
|
|
||||||
0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFukfCPAlaUs3L6JbyO5o91lAFJekazInXJ0
|
|
||||||
glMLfalAvWhgxeG4VDvBNhcl2MG9AjEAnjWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOa
|
|
||||||
KaqW04MjyaR7YbPMAuhd
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GTS Root R4
|
|
||||||
===========
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV
|
|
||||||
UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg
|
|
||||||
UjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE
|
|
||||||
ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcq
|
|
||||||
hkjOPQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa
|
|
||||||
6zzuhXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqj
|
|
||||||
QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV
|
|
||||||
2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0CMRw3J5QdCHojXohw0+WbhXRIjVhLfoI
|
|
||||||
N+4Zba3bssx9BzT1YBkstTTZbyACMANxsbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11x
|
|
||||||
zPKwTdb+mciUqXWi4w==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
UCA Global G2 Root
|
|
||||||
==================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
UCA Extended Validation Root
|
|
||||||
============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
dhh2n1ax
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Certigna Root CA
|
|
||||||
================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
|
@ -1,308 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of composer/ca-bundle.
|
|
||||||
*
|
|
||||||
* (c) Composer <https://github.com/composer>
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please view
|
|
||||||
* the LICENSE file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Composer\CaBundle;
|
|
||||||
|
|
||||||
use Psr\Log\LoggerInterface;
|
|
||||||
use Symfony\Component\Process\PhpProcess;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Chris Smith <chris@cs278.org>
|
|
||||||
* @author Jordi Boggiano <j.boggiano@seld.be>
|
|
||||||
*/
|
|
||||||
class CaBundle
|
|
||||||
{
|
|
||||||
private static $caPath;
|
|
||||||
private static $caFileValidity = array();
|
|
||||||
private static $useOpensslParse;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the system CA bundle path, or a path to the bundled one
|
|
||||||
*
|
|
||||||
* This method was adapted from Sslurp.
|
|
||||||
* https://github.com/EvanDotPro/Sslurp
|
|
||||||
*
|
|
||||||
* (c) Evan Coury <me@evancoury.com>
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please see below:
|
|
||||||
*
|
|
||||||
* Copyright (c) 2013, Evan Coury
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* @param LoggerInterface $logger optional logger for information about which CA files were loaded
|
|
||||||
* @return string path to a CA bundle file or directory
|
|
||||||
*/
|
|
||||||
public static function getSystemCaRootBundlePath(LoggerInterface $logger = null)
|
|
||||||
{
|
|
||||||
if (self::$caPath !== null) {
|
|
||||||
return self::$caPath;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If SSL_CERT_FILE env variable points to a valid certificate/bundle, use that.
|
|
||||||
// This mimics how OpenSSL uses the SSL_CERT_FILE env variable.
|
|
||||||
$envCertFile = getenv('SSL_CERT_FILE');
|
|
||||||
if ($envCertFile && is_readable($envCertFile) && static::validateCaFile($envCertFile, $logger)) {
|
|
||||||
return self::$caPath = $envCertFile;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If SSL_CERT_DIR env variable points to a valid certificate/bundle, use that.
|
|
||||||
// This mimics how OpenSSL uses the SSL_CERT_FILE env variable.
|
|
||||||
$envCertDir = getenv('SSL_CERT_DIR');
|
|
||||||
if ($envCertDir && is_dir($envCertDir) && is_readable($envCertDir)) {
|
|
||||||
return self::$caPath = $envCertDir;
|
|
||||||
}
|
|
||||||
|
|
||||||
$configured = ini_get('openssl.cafile');
|
|
||||||
if ($configured && strlen($configured) > 0 && is_readable($configured) && static::validateCaFile($configured, $logger)) {
|
|
||||||
return self::$caPath = $configured;
|
|
||||||
}
|
|
||||||
|
|
||||||
$configured = ini_get('openssl.capath');
|
|
||||||
if ($configured && is_dir($configured) && is_readable($configured)) {
|
|
||||||
return self::$caPath = $configured;
|
|
||||||
}
|
|
||||||
|
|
||||||
$caBundlePaths = array(
|
|
||||||
'/etc/pki/tls/certs/ca-bundle.crt', // Fedora, RHEL, CentOS (ca-certificates package)
|
|
||||||
'/etc/ssl/certs/ca-certificates.crt', // Debian, Ubuntu, Gentoo, Arch Linux (ca-certificates package)
|
|
||||||
'/etc/ssl/ca-bundle.pem', // SUSE, openSUSE (ca-certificates package)
|
|
||||||
'/usr/local/share/certs/ca-root-nss.crt', // FreeBSD (ca_root_nss_package)
|
|
||||||
'/usr/ssl/certs/ca-bundle.crt', // Cygwin
|
|
||||||
'/opt/local/share/curl/curl-ca-bundle.crt', // OS X macports, curl-ca-bundle package
|
|
||||||
'/usr/local/share/curl/curl-ca-bundle.crt', // Default cURL CA bunde path (without --with-ca-bundle option)
|
|
||||||
'/usr/share/ssl/certs/ca-bundle.crt', // Really old RedHat?
|
|
||||||
'/etc/ssl/cert.pem', // OpenBSD
|
|
||||||
'/usr/local/etc/ssl/cert.pem', // FreeBSD 10.x
|
|
||||||
'/usr/local/etc/openssl/cert.pem', // OS X homebrew, openssl package
|
|
||||||
);
|
|
||||||
|
|
||||||
foreach ($caBundlePaths as $caBundle) {
|
|
||||||
if (@is_readable($caBundle) && static::validateCaFile($caBundle, $logger)) {
|
|
||||||
return self::$caPath = $caBundle;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($caBundlePaths as $caBundle) {
|
|
||||||
$caBundle = dirname($caBundle);
|
|
||||||
if (@is_dir($caBundle) && glob($caBundle.'/*')) {
|
|
||||||
return self::$caPath = $caBundle;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return self::$caPath = static::getBundledCaBundlePath(); // Bundled CA file, last resort
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the path to the bundled CA file
|
|
||||||
*
|
|
||||||
* In case you don't want to trust the user or the system, you can use this directly
|
|
||||||
*
|
|
||||||
* @return string path to a CA bundle file
|
|
||||||
*/
|
|
||||||
public static function getBundledCaBundlePath()
|
|
||||||
{
|
|
||||||
$caBundleFile = __DIR__.'/../res/cacert.pem';
|
|
||||||
|
|
||||||
// cURL does not understand 'phar://' paths
|
|
||||||
// see https://github.com/composer/ca-bundle/issues/10
|
|
||||||
if (0 === strpos($caBundleFile, 'phar://')) {
|
|
||||||
file_put_contents(
|
|
||||||
$tempCaBundleFile = tempnam(sys_get_temp_dir(), 'openssl-ca-bundle-'),
|
|
||||||
file_get_contents($caBundleFile)
|
|
||||||
);
|
|
||||||
|
|
||||||
register_shutdown_function(function() use ($tempCaBundleFile) {
|
|
||||||
@unlink($tempCaBundleFile);
|
|
||||||
});
|
|
||||||
|
|
||||||
$caBundleFile = $tempCaBundleFile;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $caBundleFile;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Validates a CA file using opensl_x509_parse only if it is safe to use
|
|
||||||
*
|
|
||||||
* @param string $filename
|
|
||||||
* @param LoggerInterface $logger optional logger for information about which CA files were loaded
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public static function validateCaFile($filename, LoggerInterface $logger = null)
|
|
||||||
{
|
|
||||||
static $warned = false;
|
|
||||||
|
|
||||||
if (isset(self::$caFileValidity[$filename])) {
|
|
||||||
return self::$caFileValidity[$filename];
|
|
||||||
}
|
|
||||||
|
|
||||||
$contents = file_get_contents($filename);
|
|
||||||
|
|
||||||
// assume the CA is valid if php is vulnerable to
|
|
||||||
// https://www.sektioneins.de/advisories/advisory-012013-php-openssl_x509_parse-memory-corruption-vulnerability.html
|
|
||||||
if (!static::isOpensslParseSafe()) {
|
|
||||||
if (!$warned && $logger) {
|
|
||||||
$logger->warning(sprintf(
|
|
||||||
'Your version of PHP, %s, is affected by CVE-2013-6420 and cannot safely perform certificate validation, we strongly suggest you upgrade.',
|
|
||||||
PHP_VERSION
|
|
||||||
));
|
|
||||||
$warned = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
$isValid = !empty($contents);
|
|
||||||
} else {
|
|
||||||
$isValid = (bool) openssl_x509_parse($contents);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($logger) {
|
|
||||||
$logger->debug('Checked CA file '.realpath($filename).': '.($isValid ? 'valid' : 'invalid'));
|
|
||||||
}
|
|
||||||
|
|
||||||
return self::$caFileValidity[$filename] = $isValid;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test if it is safe to use the PHP function openssl_x509_parse().
|
|
||||||
*
|
|
||||||
* This checks if OpenSSL extensions is vulnerable to remote code execution
|
|
||||||
* via the exploit documented as CVE-2013-6420.
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public static function isOpensslParseSafe()
|
|
||||||
{
|
|
||||||
if (null !== self::$useOpensslParse) {
|
|
||||||
return self::$useOpensslParse;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (PHP_VERSION_ID >= 50600) {
|
|
||||||
return self::$useOpensslParse = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Vulnerable:
|
|
||||||
// PHP 5.3.0 - PHP 5.3.27
|
|
||||||
// PHP 5.4.0 - PHP 5.4.22
|
|
||||||
// PHP 5.5.0 - PHP 5.5.6
|
|
||||||
if (
|
|
||||||
(PHP_VERSION_ID < 50400 && PHP_VERSION_ID >= 50328)
|
|
||||||
|| (PHP_VERSION_ID < 50500 && PHP_VERSION_ID >= 50423)
|
|
||||||
|| (PHP_VERSION_ID < 50600 && PHP_VERSION_ID >= 50507)
|
|
||||||
) {
|
|
||||||
// This version of PHP has the fix for CVE-2013-6420 applied.
|
|
||||||
return self::$useOpensslParse = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (defined('PHP_WINDOWS_VERSION_BUILD')) {
|
|
||||||
// Windows is probably insecure in this case.
|
|
||||||
return self::$useOpensslParse = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$compareDistroVersionPrefix = function ($prefix, $fixedVersion) {
|
|
||||||
$regex = '{^'.preg_quote($prefix).'([0-9]+)$}';
|
|
||||||
|
|
||||||
if (preg_match($regex, PHP_VERSION, $m)) {
|
|
||||||
return ((int) $m[1]) >= $fixedVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Hard coded list of PHP distributions with the fix backported.
|
|
||||||
if (
|
|
||||||
$compareDistroVersionPrefix('5.3.3-7+squeeze', 18) // Debian 6 (Squeeze)
|
|
||||||
|| $compareDistroVersionPrefix('5.4.4-14+deb7u', 7) // Debian 7 (Wheezy)
|
|
||||||
|| $compareDistroVersionPrefix('5.3.10-1ubuntu3.', 9) // Ubuntu 12.04 (Precise)
|
|
||||||
) {
|
|
||||||
return self::$useOpensslParse = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Symfony Process component is missing so we assume it is unsafe at this point
|
|
||||||
if (!class_exists('Symfony\Component\Process\PhpProcess')) {
|
|
||||||
return self::$useOpensslParse = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// This is where things get crazy, because distros backport security
|
|
||||||
// fixes the chances are on NIX systems the fix has been applied but
|
|
||||||
// it's not possible to verify that from the PHP version.
|
|
||||||
//
|
|
||||||
// To verify exec a new PHP process and run the issue testcase with
|
|
||||||
// known safe input that replicates the bug.
|
|
||||||
|
|
||||||
// Based on testcase in https://github.com/php/php-src/commit/c1224573c773b6845e83505f717fbf820fc18415
|
|
||||||
// changes in https://github.com/php/php-src/commit/76a7fd893b7d6101300cc656058704a73254d593
|
|
||||||
$cert = 'LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVwRENDQTR5Z0F3SUJBZ0lKQUp6dThyNnU2ZUJjTUEwR0NTcUdTSWIzRFFFQkJRVUFNSUhETVFzd0NRWUQKVlFRR0V3SkVSVEVjTUJvR0ExVUVDQXdUVG05eVpISm9aV2x1TFZkbGMzUm1ZV3hsYmpFUU1BNEdBMVVFQnd3SApTOE9Ed3Jac2JqRVVNQklHQTFVRUNnd0xVMlZyZEdsdmJrVnBibk14SHpBZEJnTlZCQXNNRmsxaGJHbGphVzkxCmN5QkRaWEowSUZObFkzUnBiMjR4SVRBZkJnTlZCQU1NR0cxaGJHbGphVzkxY3k1elpXdDBhVzl1WldsdWN5NWsKWlRFcU1DZ0dDU3FHU0liM0RRRUpBUlliYzNSbFptRnVMbVZ6YzJWeVFITmxhM1JwYjI1bGFXNXpMbVJsTUhVWQpaREU1TnpBd01UQXhNREF3TURBd1dnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQVhEVEUwTVRFeU9ERXhNemt6TlZvd2djTXhDekFKQmdOVkJBWVRBa1JGTVJ3d0dnWURWUVFJREJOTwpiM0prY21obGFXNHRWMlZ6ZEdaaGJHVnVNUkF3RGdZRFZRUUhEQWRMdzRQQ3RteHVNUlF3RWdZRFZRUUtEQXRUClpXdDBhVzl1UldsdWN6RWZNQjBHQTFVRUN3d1dUV0ZzYVdOcGIzVnpJRU5sY25RZ1UyVmpkR2x2YmpFaE1COEcKQTFVRUF3d1liV0ZzYVdOcGIzVnpMbk5sYTNScGIyNWxhVzV6TG1SbE1Tb3dLQVlKS29aSWh2Y05BUWtCRmh0egpkR1ZtWVc0dVpYTnpaWEpBYzJWcmRHbHZibVZwYm5NdVpHVXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCCkR3QXdnZ0VLQW9JQkFRRERBZjNobDdKWTBYY0ZuaXlFSnBTU0RxbjBPcUJyNlFQNjV1c0pQUnQvOFBhRG9xQnUKd0VZVC9OYSs2ZnNnUGpDMHVLOURaZ1dnMnRIV1dvYW5TYmxBTW96NVBINlorUzRTSFJaN2UyZERJalBqZGhqaAowbUxnMlVNTzV5cDBWNzk3R2dzOWxOdDZKUmZIODFNTjJvYlhXczROdHp0TE11RDZlZ3FwcjhkRGJyMzRhT3M4CnBrZHVpNVVhd1Raa3N5NXBMUEhxNWNNaEZHbTA2djY1Q0xvMFYyUGQ5K0tBb2tQclBjTjVLTEtlYno3bUxwazYKU01lRVhPS1A0aWRFcXh5UTdPN2ZCdUhNZWRzUWh1K3ByWTNzaTNCVXlLZlF0UDVDWm5YMmJwMHdLSHhYMTJEWAoxbmZGSXQ5RGJHdkhUY3lPdU4rblpMUEJtM3ZXeG50eUlJdlZBZ01CQUFHalFqQkFNQWtHQTFVZEV3UUNNQUF3CkVRWUpZSVpJQVliNFFnRUJCQVFEQWdlQU1Bc0dBMVVkRHdRRUF3SUZvREFUQmdOVkhTVUVEREFLQmdnckJnRUYKQlFjREFqQU5CZ2txaGtpRzl3MEJBUVVGQUFPQ0FRRUFHMGZaWVlDVGJkajFYWWMrMVNub2FQUit2SThDOENhRAo4KzBVWWhkbnlVNGdnYTBCQWNEclk5ZTk0ZUVBdTZacXljRjZGakxxWFhkQWJvcHBXb2NyNlQ2R0QxeDMzQ2tsClZBcnpHL0t4UW9oR0QySmVxa2hJTWxEb214SE83a2EzOStPYThpMnZXTFZ5alU4QVp2V01BcnVIYTRFRU55RzcKbFcyQWFnYUZLRkNyOVRuWFRmcmR4R1ZFYnY3S1ZRNmJkaGc1cDVTanBXSDErTXEwM3VSM1pYUEJZZHlWODMxOQpvMGxWajFLRkkyRENML2xpV2lzSlJvb2YrMWNSMzVDdGQwd1lCY3BCNlRac2xNY09QbDc2ZHdLd0pnZUpvMlFnClpzZm1jMnZDMS9xT2xOdU5xLzBUenprVkd2OEVUVDNDZ2FVK1VYZTRYT1Z2a2NjZWJKbjJkZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K';
|
|
||||||
$script = <<<'EOT'
|
|
||||||
|
|
||||||
error_reporting(-1);
|
|
||||||
$info = openssl_x509_parse(base64_decode('%s'));
|
|
||||||
var_dump(PHP_VERSION, $info['issuer']['emailAddress'], $info['validFrom_time_t']);
|
|
||||||
|
|
||||||
EOT;
|
|
||||||
$script = '<'."?php\n".sprintf($script, $cert);
|
|
||||||
|
|
||||||
try {
|
|
||||||
$process = new PhpProcess($script);
|
|
||||||
$process->mustRun();
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
// In the case of any exceptions just accept it is not possible to
|
|
||||||
// determine the safety of openssl_x509_parse and bail out.
|
|
||||||
return self::$useOpensslParse = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$output = preg_split('{\r?\n}', trim($process->getOutput()));
|
|
||||||
$errorOutput = trim($process->getErrorOutput());
|
|
||||||
|
|
||||||
if (
|
|
||||||
count($output) === 3
|
|
||||||
&& $output[0] === sprintf('string(%d) "%s"', strlen(PHP_VERSION), PHP_VERSION)
|
|
||||||
&& $output[1] === 'string(27) "stefan.esser@sektioneins.de"'
|
|
||||||
&& $output[2] === 'int(-1)'
|
|
||||||
&& preg_match('{openssl_x509_parse\(\): illegal (?:ASN1 data type for|length in) timestamp in - on line \d+}', $errorOutput)
|
|
||||||
) {
|
|
||||||
// This PHP has the fix backported probably by a distro security team.
|
|
||||||
return self::$useOpensslParse = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return self::$useOpensslParse = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Resets the static caches
|
|
||||||
*/
|
|
||||||
public static function reset()
|
|
||||||
{
|
|
||||||
self::$caFileValidity = array();
|
|
||||||
self::$caPath = null;
|
|
||||||
self::$useOpensslParse = null;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3897 +0,0 @@
|
||||||
[
|
|
||||||
{
|
|
||||||
"name": "ocramius/package-versions",
|
|
||||||
"version": "1.2.0",
|
|
||||||
"version_normalized": "1.2.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/Ocramius/PackageVersions.git",
|
|
||||||
"reference": "ad8a245decad4897cc6b432743913dad0d69753c"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/ad8a245decad4897cc6b432743913dad0d69753c",
|
|
||||||
"reference": "ad8a245decad4897cc6b432743913dad0d69753c",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"composer-plugin-api": "^1.0",
|
|
||||||
"php": "~7.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"composer/composer": "^1.3",
|
|
||||||
"ext-zip": "*",
|
|
||||||
"humbug/humbug": "dev-master",
|
|
||||||
"phpunit/phpunit": "^6.4"
|
|
||||||
},
|
|
||||||
"time": "2017-11-24 11:07:03",
|
|
||||||
"type": "composer-plugin",
|
|
||||||
"extra": {
|
|
||||||
"class": "PackageVersions\\Installer",
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.0.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"PackageVersions\\": "src/PackageVersions"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Marco Pivetta",
|
|
||||||
"email": "ocramius@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/lexer",
|
|
||||||
"version": "v1.0.1",
|
|
||||||
"version_normalized": "1.0.1.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/lexer.git",
|
|
||||||
"reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
|
|
||||||
"reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.2"
|
|
||||||
},
|
|
||||||
"time": "2014-09-09 13:34:57",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.0.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"Doctrine\\Common\\Lexer\\": "lib/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Roman Borschel",
|
|
||||||
"email": "roman@code-factory.org"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Guilherme Blanco",
|
|
||||||
"email": "guilhermeblanco@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Johannes Schmitt",
|
|
||||||
"email": "schmittjoh@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"keywords": [
|
|
||||||
"lexer",
|
|
||||||
"parser"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/annotations",
|
|
||||||
"version": "v1.4.0",
|
|
||||||
"version_normalized": "1.4.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/annotations.git",
|
|
||||||
"reference": "54cacc9b81758b14e3ce750f205a393d52339e97"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97",
|
|
||||||
"reference": "54cacc9b81758b14e3ce750f205a393d52339e97",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/lexer": "1.*",
|
|
||||||
"php": "^5.6 || ^7.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"doctrine/cache": "1.*",
|
|
||||||
"phpunit/phpunit": "^5.7"
|
|
||||||
},
|
|
||||||
"time": "2017-02-24 16:22:25",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.4.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Roman Borschel",
|
|
||||||
"email": "roman@code-factory.org"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Benjamin Eberlei",
|
|
||||||
"email": "kontakt@beberlei.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Guilherme Blanco",
|
|
||||||
"email": "guilhermeblanco@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jonathan Wage",
|
|
||||||
"email": "jonwage@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Johannes Schmitt",
|
|
||||||
"email": "schmittjoh@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Docblock Annotations Parser",
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"keywords": [
|
|
||||||
"annotations",
|
|
||||||
"docblock",
|
|
||||||
"parser"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/collections",
|
|
||||||
"version": "v1.4.0",
|
|
||||||
"version_normalized": "1.4.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/collections.git",
|
|
||||||
"reference": "1a4fb7e902202c33cce8c55989b945612943c2ba"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba",
|
|
||||||
"reference": "1a4fb7e902202c33cce8c55989b945612943c2ba",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^5.6 || ^7.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"doctrine/coding-standard": "~0.1@dev",
|
|
||||||
"phpunit/phpunit": "^5.7"
|
|
||||||
},
|
|
||||||
"time": "2017-01-03 10:49:41",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.3.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"Doctrine\\Common\\Collections\\": "lib/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Roman Borschel",
|
|
||||||
"email": "roman@code-factory.org"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Benjamin Eberlei",
|
|
||||||
"email": "kontakt@beberlei.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Guilherme Blanco",
|
|
||||||
"email": "guilhermeblanco@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jonathan Wage",
|
|
||||||
"email": "jonwage@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Johannes Schmitt",
|
|
||||||
"email": "schmittjoh@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Collections Abstraction library",
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"keywords": [
|
|
||||||
"array",
|
|
||||||
"collections",
|
|
||||||
"iterator"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"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-23 01:57:42",
|
|
||||||
"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": "psr/link",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"version_normalized": "1.0.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/php-fig/link.git",
|
|
||||||
"reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562",
|
|
||||||
"reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.0"
|
|
||||||
},
|
|
||||||
"time": "2016-10-28 16:06:13",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.0.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Psr\\Link\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "PHP-FIG",
|
|
||||||
"homepage": "http://www.php-fig.org/"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Common interfaces for HTTP links",
|
|
||||||
"keywords": [
|
|
||||||
"http",
|
|
||||||
"http-link",
|
|
||||||
"link",
|
|
||||||
"psr",
|
|
||||||
"psr-13",
|
|
||||||
"rest"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "psr/container",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"version_normalized": "1.0.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/php-fig/container.git",
|
|
||||||
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
|
|
||||||
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.0"
|
|
||||||
},
|
|
||||||
"time": "2017-02-14 16:28:37",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.0.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Psr\\Container\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "PHP-FIG",
|
|
||||||
"homepage": "http://www.php-fig.org/"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Common Container Interface (PHP FIG PSR-11)",
|
|
||||||
"homepage": "https://github.com/php-fig/container",
|
|
||||||
"keywords": [
|
|
||||||
"PSR-11",
|
|
||||||
"container",
|
|
||||||
"container-interface",
|
|
||||||
"container-interop",
|
|
||||||
"psr"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "psr/cache",
|
|
||||||
"version": "1.0.1",
|
|
||||||
"version_normalized": "1.0.1.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/php-fig/cache.git",
|
|
||||||
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
|
|
||||||
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.0"
|
|
||||||
},
|
|
||||||
"time": "2016-08-06 20:24:11",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.0.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Psr\\Cache\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "PHP-FIG",
|
|
||||||
"homepage": "http://www.php-fig.org/"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Common interface for caching libraries",
|
|
||||||
"keywords": [
|
|
||||||
"cache",
|
|
||||||
"psr",
|
|
||||||
"psr-6"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "fig/link-util",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"version_normalized": "1.0.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/php-fig/link-util.git",
|
|
||||||
"reference": "1a07821801a148be4add11ab0603e4af55a72fac"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac",
|
|
||||||
"reference": "1a07821801a148be4add11ab0603e4af55a72fac",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.5.0",
|
|
||||||
"psr/link": "~1.0@dev"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^5.1",
|
|
||||||
"squizlabs/php_codesniffer": "^2.3.1"
|
|
||||||
},
|
|
||||||
"time": "2016-10-17 18:31:11",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.0.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Fig\\Link\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "PHP-FIG",
|
|
||||||
"homepage": "http://www.php-fig.org/"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Common utility implementations for HTTP links",
|
|
||||||
"keywords": [
|
|
||||||
"http",
|
|
||||||
"http-link",
|
|
||||||
"link",
|
|
||||||
"psr",
|
|
||||||
"psr-13",
|
|
||||||
"rest"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/inflector",
|
|
||||||
"version": "v1.2.0",
|
|
||||||
"version_normalized": "1.2.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/inflector.git",
|
|
||||||
"reference": "e11d84c6e018beedd929cff5220969a3c6d1d462"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/inflector/zipball/e11d84c6e018beedd929cff5220969a3c6d1d462",
|
|
||||||
"reference": "e11d84c6e018beedd929cff5220969a3c6d1d462",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^7.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^6.2"
|
|
||||||
},
|
|
||||||
"time": "2017-07-22 12:18:28",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.2.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Roman Borschel",
|
|
||||||
"email": "roman@code-factory.org"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Benjamin Eberlei",
|
|
||||||
"email": "kontakt@beberlei.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Guilherme Blanco",
|
|
||||||
"email": "guilhermeblanco@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jonathan Wage",
|
|
||||||
"email": "jonwage@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Johannes Schmitt",
|
|
||||||
"email": "schmittjoh@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Common String Manipulations with regard to casing and singular/plural rules.",
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"keywords": [
|
|
||||||
"inflection",
|
|
||||||
"pluralize",
|
|
||||||
"singularize",
|
|
||||||
"string"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/cache",
|
|
||||||
"version": "v1.6.2",
|
|
||||||
"version_normalized": "1.6.2.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/cache.git",
|
|
||||||
"reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b",
|
|
||||||
"reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "~5.5|~7.0"
|
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"doctrine/common": ">2.2,<2.4"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "~4.8|~5.0",
|
|
||||||
"predis/predis": "~1.0",
|
|
||||||
"satooshi/php-coveralls": "~0.6"
|
|
||||||
},
|
|
||||||
"time": "2017-07-22 12:49:21",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.6.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Roman Borschel",
|
|
||||||
"email": "roman@code-factory.org"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Benjamin Eberlei",
|
|
||||||
"email": "kontakt@beberlei.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Guilherme Blanco",
|
|
||||||
"email": "guilhermeblanco@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jonathan Wage",
|
|
||||||
"email": "jonwage@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Johannes Schmitt",
|
|
||||||
"email": "schmittjoh@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Caching library offering an object-oriented API for many cache backends",
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"keywords": [
|
|
||||||
"cache",
|
|
||||||
"caching"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/common",
|
|
||||||
"version": "v2.7.3",
|
|
||||||
"version_normalized": "2.7.3.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/common.git",
|
|
||||||
"reference": "4acb8f89626baafede6ee5475bc5844096eba8a9"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9",
|
|
||||||
"reference": "4acb8f89626baafede6ee5475bc5844096eba8a9",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/annotations": "1.*",
|
|
||||||
"doctrine/cache": "1.*",
|
|
||||||
"doctrine/collections": "1.*",
|
|
||||||
"doctrine/inflector": "1.*",
|
|
||||||
"doctrine/lexer": "1.*",
|
|
||||||
"php": "~5.6|~7.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^5.4.6"
|
|
||||||
},
|
|
||||||
"time": "2017-07-22 08:35:12",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.7.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Doctrine\\Common\\": "lib/Doctrine/Common"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Roman Borschel",
|
|
||||||
"email": "roman@code-factory.org"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Benjamin Eberlei",
|
|
||||||
"email": "kontakt@beberlei.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Guilherme Blanco",
|
|
||||||
"email": "guilhermeblanco@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jonathan Wage",
|
|
||||||
"email": "jonwage@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Johannes Schmitt",
|
|
||||||
"email": "schmittjoh@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Common Library for Doctrine projects",
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"keywords": [
|
|
||||||
"annotations",
|
|
||||||
"collections",
|
|
||||||
"eventmanager",
|
|
||||||
"persistence",
|
|
||||||
"spl"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "jdorn/sql-formatter",
|
|
||||||
"version": "v1.2.17",
|
|
||||||
"version_normalized": "1.2.17.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/jdorn/sql-formatter.git",
|
|
||||||
"reference": "64990d96e0959dff8e059dfcdc1af130728d92bc"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc",
|
|
||||||
"reference": "64990d96e0959dff8e059dfcdc1af130728d92bc",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.2.4"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "3.7.*"
|
|
||||||
},
|
|
||||||
"time": "2014-01-12 16:20:24",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.3.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"lib"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Jeremy Dorn",
|
|
||||||
"email": "jeremy@jeremydorn.com",
|
|
||||||
"homepage": "http://jeremydorn.com/"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "a PHP SQL highlighting library",
|
|
||||||
"homepage": "https://github.com/jdorn/sql-formatter/",
|
|
||||||
"keywords": [
|
|
||||||
"highlight",
|
|
||||||
"sql"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/dbal",
|
|
||||||
"version": "v2.5.13",
|
|
||||||
"version_normalized": "2.5.13.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/dbal.git",
|
|
||||||
"reference": "729340d8d1eec8f01bff708e12e449a3415af873"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873",
|
|
||||||
"reference": "729340d8d1eec8f01bff708e12e449a3415af873",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/common": ">=2.4,<2.8-dev",
|
|
||||||
"php": ">=5.3.2"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "4.*",
|
|
||||||
"symfony/console": "2.*||^3.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"symfony/console": "For helpful console commands such as SQL execution and import of files."
|
|
||||||
},
|
|
||||||
"time": "2017-07-22 20:44:48",
|
|
||||||
"bin": [
|
|
||||||
"bin/doctrine-dbal"
|
|
||||||
],
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.5.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"Doctrine\\DBAL\\": "lib/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Roman Borschel",
|
|
||||||
"email": "roman@code-factory.org"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Benjamin Eberlei",
|
|
||||||
"email": "kontakt@beberlei.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Guilherme Blanco",
|
|
||||||
"email": "guilhermeblanco@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jonathan Wage",
|
|
||||||
"email": "jonwage@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Database Abstraction Layer",
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"keywords": [
|
|
||||||
"database",
|
|
||||||
"dbal",
|
|
||||||
"persistence",
|
|
||||||
"queryobject"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/data-fixtures",
|
|
||||||
"version": "v1.2.2",
|
|
||||||
"version_normalized": "1.2.2.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/data-fixtures.git",
|
|
||||||
"reference": "17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e",
|
|
||||||
"reference": "17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/common": "~2.2",
|
|
||||||
"php": "^5.6 || ^7.0"
|
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"doctrine/orm": "< 2.4"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"doctrine/dbal": "^2.5.4",
|
|
||||||
"doctrine/orm": "^2.5.4",
|
|
||||||
"phpunit/phpunit": "^5.4.6"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"doctrine/mongodb-odm": "For loading MongoDB ODM fixtures",
|
|
||||||
"doctrine/orm": "For loading ORM fixtures",
|
|
||||||
"doctrine/phpcr-odm": "For loading PHPCR ODM fixtures"
|
|
||||||
},
|
|
||||||
"time": "2016-09-20 10:07:57",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.3.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"Doctrine\\Common\\DataFixtures": "lib/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Jonathan Wage",
|
|
||||||
"email": "jonwage@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Data Fixtures for all Doctrine Object Managers",
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"keywords": [
|
|
||||||
"database"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/doctrine-fixtures-bundle",
|
|
||||||
"version": "v2.4.1",
|
|
||||||
"version_normalized": "2.4.1.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/DoctrineFixturesBundle.git",
|
|
||||||
"reference": "74b8cc70a4a25b774628ee59f4cdf3623a146273"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/74b8cc70a4a25b774628ee59f4cdf3623a146273",
|
|
||||||
"reference": "74b8cc70a4a25b774628ee59f4cdf3623a146273",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/data-fixtures": "~1.0",
|
|
||||||
"doctrine/doctrine-bundle": "~1.0",
|
|
||||||
"php": ">=5.3.2",
|
|
||||||
"symfony/doctrine-bridge": "~2.7|~3.0|~4.0"
|
|
||||||
},
|
|
||||||
"time": "2017-10-30 19:26:42",
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.4.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Doctrine\\Bundle\\FixturesBundle\\": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "http://symfony.com/contributors"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Doctrine Project",
|
|
||||||
"homepage": "http://www.doctrine-project.org"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien@symfony.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony DoctrineFixturesBundle",
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"keywords": [
|
|
||||||
"Fixture",
|
|
||||||
"persistence"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/instantiator",
|
|
||||||
"version": "1.0.5",
|
|
||||||
"version_normalized": "1.0.5.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/instantiator.git",
|
|
||||||
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
|
|
||||||
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3,<8.0-DEV"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"athletic/athletic": "~0.1.8",
|
|
||||||
"ext-pdo": "*",
|
|
||||||
"ext-phar": "*",
|
|
||||||
"phpunit/phpunit": "~4.0",
|
|
||||||
"squizlabs/php_codesniffer": "~2.0"
|
|
||||||
},
|
|
||||||
"time": "2015-06-14 21:17:01",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.0.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Marco Pivetta",
|
|
||||||
"email": "ocramius@gmail.com",
|
|
||||||
"homepage": "http://ocramius.github.com/"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
|
|
||||||
"homepage": "https://github.com/doctrine/instantiator",
|
|
||||||
"keywords": [
|
|
||||||
"constructor",
|
|
||||||
"instantiate"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "zendframework/zend-eventmanager",
|
|
||||||
"version": "3.2.1",
|
|
||||||
"version_normalized": "3.2.1.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/zendframework/zend-eventmanager.git",
|
|
||||||
"reference": "a5e2583a211f73604691586b8406ff7296a946dd"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd",
|
|
||||||
"reference": "a5e2583a211f73604691586b8406ff7296a946dd",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^5.6 || ^7.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"athletic/athletic": "^0.1",
|
|
||||||
"container-interop/container-interop": "^1.1.0",
|
|
||||||
"phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2",
|
|
||||||
"zendframework/zend-coding-standard": "~1.0.0",
|
|
||||||
"zendframework/zend-stdlib": "^2.7.3 || ^3.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"container-interop/container-interop": "^1.1.0, to use the lazy listeners feature",
|
|
||||||
"zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature"
|
|
||||||
},
|
|
||||||
"time": "2018-04-25 15:33:34",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "3.2-dev",
|
|
||||||
"dev-develop": "3.3-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Zend\\EventManager\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"description": "Trigger and listen to events within a PHP application",
|
|
||||||
"homepage": "https://github.com/zendframework/zend-eventmanager",
|
|
||||||
"keywords": [
|
|
||||||
"event",
|
|
||||||
"eventmanager",
|
|
||||||
"events",
|
|
||||||
"zf2"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "zendframework/zend-code",
|
|
||||||
"version": "3.1.0",
|
|
||||||
"version_normalized": "3.1.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/zendframework/zend-code.git",
|
|
||||||
"reference": "2899c17f83a7207f2d7f53ec2f421204d3beea27"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/zendframework/zend-code/zipball/2899c17f83a7207f2d7f53ec2f421204d3beea27",
|
|
||||||
"reference": "2899c17f83a7207f2d7f53ec2f421204d3beea27",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^5.6 || 7.0.0 - 7.0.4 || ^7.0.6",
|
|
||||||
"zendframework/zend-eventmanager": "^2.6 || ^3.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"doctrine/annotations": "~1.0",
|
|
||||||
"ext-phar": "*",
|
|
||||||
"phpunit/phpunit": "^4.8.21",
|
|
||||||
"squizlabs/php_codesniffer": "^2.5",
|
|
||||||
"zendframework/zend-stdlib": "^2.7 || ^3.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features",
|
|
||||||
"zendframework/zend-stdlib": "Zend\\Stdlib component"
|
|
||||||
},
|
|
||||||
"time": "2016-10-24 13:23:32",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "3.1-dev",
|
|
||||||
"dev-develop": "3.2-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Zend\\Code\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"description": "provides facilities to generate arbitrary code using an object oriented interface",
|
|
||||||
"homepage": "https://github.com/zendframework/zend-code",
|
|
||||||
"keywords": [
|
|
||||||
"code",
|
|
||||||
"zf2"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "ocramius/proxy-manager",
|
|
||||||
"version": "2.0.4",
|
|
||||||
"version_normalized": "2.0.4.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/Ocramius/ProxyManager.git",
|
|
||||||
"reference": "a55d08229f4f614bf335759ed0cf63378feeb2e6"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/a55d08229f4f614bf335759ed0cf63378feeb2e6",
|
|
||||||
"reference": "a55d08229f4f614bf335759ed0cf63378feeb2e6",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ocramius/package-versions": "^1.0",
|
|
||||||
"php": "7.0.0 - 7.0.5 || ^7.0.7",
|
|
||||||
"zendframework/zend-code": "3.0.0 - 3.0.2 || ^3.0.4"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"couscous/couscous": "^1.4.0",
|
|
||||||
"ext-phar": "*",
|
|
||||||
"phpbench/phpbench": "^0.11.2",
|
|
||||||
"phpunit/phpunit": "^5.4.6",
|
|
||||||
"squizlabs/php_codesniffer": "^2.6.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects",
|
|
||||||
"zendframework/zend-json": "To have the JsonRpc adapter (Remote Object feature)",
|
|
||||||
"zendframework/zend-soap": "To have the Soap adapter (Remote Object feature)",
|
|
||||||
"zendframework/zend-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)"
|
|
||||||
},
|
|
||||||
"time": "2016-11-04 15:53:15",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "3.0.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"ProxyManager\\": "src"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Marco Pivetta",
|
|
||||||
"email": "ocramius@gmail.com",
|
|
||||||
"homepage": "http://ocramius.github.io/"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies",
|
|
||||||
"homepage": "https://github.com/Ocramius/ProxyManager",
|
|
||||||
"keywords": [
|
|
||||||
"aop",
|
|
||||||
"lazy loading",
|
|
||||||
"proxy",
|
|
||||||
"proxy pattern",
|
|
||||||
"service proxies"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/migrations",
|
|
||||||
"version": "v1.5.0",
|
|
||||||
"version_normalized": "1.5.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/migrations.git",
|
|
||||||
"reference": "c81147c0f2938a6566594455367e095150547f72"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/migrations/zipball/c81147c0f2938a6566594455367e095150547f72",
|
|
||||||
"reference": "c81147c0f2938a6566594455367e095150547f72",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/dbal": "~2.2",
|
|
||||||
"ocramius/proxy-manager": "^1.0|^2.0",
|
|
||||||
"php": "^5.5|^7.0",
|
|
||||||
"symfony/console": "~2.3|~3.0",
|
|
||||||
"symfony/yaml": "~2.3|~3.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"doctrine/coding-standard": "dev-master",
|
|
||||||
"doctrine/orm": "2.*",
|
|
||||||
"jdorn/sql-formatter": "~1.1",
|
|
||||||
"johnkary/phpunit-speedtrap": "~1.0@dev",
|
|
||||||
"mikey179/vfsstream": "^1.6",
|
|
||||||
"mockery/mockery": "^0.9.4",
|
|
||||||
"phpunit/phpunit": "~4.7",
|
|
||||||
"satooshi/php-coveralls": "^1.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command."
|
|
||||||
},
|
|
||||||
"time": "2016-12-25 22:54:00",
|
|
||||||
"bin": [
|
|
||||||
"bin/doctrine-migrations"
|
|
||||||
],
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "v1.6.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Doctrine\\DBAL\\Migrations\\": "lib/Doctrine/DBAL/Migrations"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"LGPL-2.1"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Benjamin Eberlei",
|
|
||||||
"email": "kontakt@beberlei.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jonathan Wage",
|
|
||||||
"email": "jonwage@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Michael Simonson",
|
|
||||||
"email": "contact@mikesimonson.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Database Schema migrations using Doctrine DBAL",
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"keywords": [
|
|
||||||
"database",
|
|
||||||
"migrations"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "incenteev/composer-parameter-handler",
|
|
||||||
"version": "v2.1.3",
|
|
||||||
"version_normalized": "2.1.3.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/Incenteev/ParameterHandler.git",
|
|
||||||
"reference": "933c45a34814f27f2345c11c37d46b3ca7303550"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550",
|
|
||||||
"reference": "933c45a34814f27f2345c11c37d46b3ca7303550",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.3",
|
|
||||||
"symfony/yaml": "^2.3 || ^3.0 || ^4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"composer/composer": "^1.0@dev",
|
|
||||||
"symfony/filesystem": "^2.3 || ^3 || ^4",
|
|
||||||
"symfony/phpunit-bridge": "^4.0"
|
|
||||||
},
|
|
||||||
"time": "2018-02-13 18:05:56",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.1.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Incenteev\\ParameterHandler\\": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Christophe Coevoet",
|
|
||||||
"email": "stof@notk.org"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Composer script handling your ignored parameter file",
|
|
||||||
"homepage": "https://github.com/Incenteev/ParameterHandler",
|
|
||||||
"keywords": [
|
|
||||||
"parameters management"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "oneup/uploader-bundle",
|
|
||||||
"version": "1.9.2",
|
|
||||||
"version_normalized": "1.9.2.0",
|
|
||||||
"target-dir": "Oneup/UploaderBundle",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/1up-lab/OneupUploaderBundle.git",
|
|
||||||
"reference": "a32bc98019abfd51531d08cc79be19f849d87b84"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/1up-lab/OneupUploaderBundle/zipball/a32bc98019abfd51531d08cc79be19f849d87b84",
|
|
||||||
"reference": "a32bc98019abfd51531d08cc79be19f849d87b84",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"paragonie/random_compat": "^1.1|^2.0",
|
|
||||||
"php": ">=5.4",
|
|
||||||
"symfony/asset": "^2.4|^3.0",
|
|
||||||
"symfony/finder": "^2.4|^3.0",
|
|
||||||
"symfony/framework-bundle": "^2.4|^3.0",
|
|
||||||
"symfony/templating": "^2.4|^3.0",
|
|
||||||
"symfony/translation": "^2.4|^3.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"amazonwebservices/aws-sdk-for-php": "1.5.*",
|
|
||||||
"knplabs/gaufrette": "0.2.*@dev",
|
|
||||||
"oneup/flysystem-bundle": "^1.2",
|
|
||||||
"phpunit/phpunit": "^4.4",
|
|
||||||
"sensio/framework-extra-bundle": "2.*|^3.0",
|
|
||||||
"symfony/browser-kit": "2.*|^3.0",
|
|
||||||
"symfony/class-loader": "2.*|^3.0",
|
|
||||||
"symfony/security-bundle": "2.*|^3.0",
|
|
||||||
"twistor/flysystem-stream-wrapper": "^1.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"knplabs/knp-gaufrette-bundle": "0.1.*",
|
|
||||||
"oneup/flysystem-bundle": "^1.2",
|
|
||||||
"twistor/flysystem-stream-wrapper": "^1.0 (Required when using Flysystem)"
|
|
||||||
},
|
|
||||||
"time": "2017-12-18 12:41:59",
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"Oneup\\UploaderBundle": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Jim Schmid",
|
|
||||||
"email": "js@1up.io",
|
|
||||||
"homepage": "http://1up.io",
|
|
||||||
"role": "Developer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Handles multi file uploads in Symfony2. Features included: Chunked upload, Orphans management, Gaufrette support.",
|
|
||||||
"homepage": "http://1up.io",
|
|
||||||
"keywords": [
|
|
||||||
"FancyUpload",
|
|
||||||
"FineUploader",
|
|
||||||
"MooUpload",
|
|
||||||
"Uploadify",
|
|
||||||
"YUI3 Uploader",
|
|
||||||
"blueimp",
|
|
||||||
"dropzone",
|
|
||||||
"fileupload",
|
|
||||||
"jQuery File Uploader",
|
|
||||||
"plupload",
|
|
||||||
"upload"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "kriswallsmith/assetic",
|
|
||||||
"version": "v1.4.0",
|
|
||||||
"version_normalized": "1.4.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/kriswallsmith/assetic.git",
|
|
||||||
"reference": "e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/kriswallsmith/assetic/zipball/e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1",
|
|
||||||
"reference": "e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.1",
|
|
||||||
"symfony/process": "~2.1|~3.0"
|
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"twig/twig": "<1.27"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"leafo/lessphp": "^0.3.7",
|
|
||||||
"leafo/scssphp": "~0.1",
|
|
||||||
"meenie/javascript-packer": "^1.1",
|
|
||||||
"mrclay/minify": "<2.3",
|
|
||||||
"natxet/cssmin": "3.0.4",
|
|
||||||
"patchwork/jsqueeze": "~1.0|~2.0",
|
|
||||||
"phpunit/phpunit": "~4.8 || ^5.6",
|
|
||||||
"psr/log": "~1.0",
|
|
||||||
"ptachoire/cssembed": "~1.0",
|
|
||||||
"symfony/phpunit-bridge": "~2.7|~3.0",
|
|
||||||
"twig/twig": "~1.23|~2.0",
|
|
||||||
"yfix/packager": "dev-master"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"leafo/lessphp": "Assetic provides the integration with the lessphp LESS compiler",
|
|
||||||
"leafo/scssphp": "Assetic provides the integration with the scssphp SCSS compiler",
|
|
||||||
"leafo/scssphp-compass": "Assetic provides the integration with the SCSS compass plugin",
|
|
||||||
"patchwork/jsqueeze": "Assetic provides the integration with the JSqueeze JavaScript compressor",
|
|
||||||
"ptachoire/cssembed": "Assetic provides the integration with phpcssembed to embed data uris",
|
|
||||||
"twig/twig": "Assetic provides the integration with the Twig templating engine"
|
|
||||||
},
|
|
||||||
"time": "2016-11-11 18:43:20",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.4-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"Assetic": "src/"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"src/functions.php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Kris Wallsmith",
|
|
||||||
"email": "kris.wallsmith@gmail.com",
|
|
||||||
"homepage": "http://kriswallsmith.net/"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Asset Management for PHP",
|
|
||||||
"homepage": "https://github.com/kriswallsmith/assetic",
|
|
||||||
"keywords": [
|
|
||||||
"assets",
|
|
||||||
"compression",
|
|
||||||
"minification"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/assetic-bundle",
|
|
||||||
"version": "v2.8.2",
|
|
||||||
"version_normalized": "2.8.2.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/assetic-bundle.git",
|
|
||||||
"reference": "2e0a23a4874838e26de6f025e02fc63328921a4c"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/assetic-bundle/zipball/2e0a23a4874838e26de6f025e02fc63328921a4c",
|
|
||||||
"reference": "2e0a23a4874838e26de6f025e02fc63328921a4c",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"kriswallsmith/assetic": "~1.4",
|
|
||||||
"php": ">=5.3.0",
|
|
||||||
"symfony/console": "~2.3|~3.0",
|
|
||||||
"symfony/dependency-injection": "~2.3|~3.0",
|
|
||||||
"symfony/framework-bundle": "~2.3|~3.0",
|
|
||||||
"symfony/yaml": "~2.3|~3.0"
|
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"kriswallsmith/spork": "<=0.2",
|
|
||||||
"twig/twig": "<1.27"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"kriswallsmith/spork": "~0.3",
|
|
||||||
"patchwork/jsqueeze": "~1.0",
|
|
||||||
"symfony/class-loader": "~2.3|~3.0",
|
|
||||||
"symfony/css-selector": "~2.3|~3.0",
|
|
||||||
"symfony/dom-crawler": "~2.3|~3.0",
|
|
||||||
"symfony/phpunit-bridge": "~2.7|~3.0",
|
|
||||||
"symfony/twig-bundle": "~2.3|~3.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"kriswallsmith/spork": "to be able to dump assets in parallel",
|
|
||||||
"symfony/twig-bundle": "to use the Twig integration"
|
|
||||||
},
|
|
||||||
"time": "2017-07-14 07:26:46",
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.8-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Bundle\\AsseticBundle\\": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Kris Wallsmith",
|
|
||||||
"email": "kris.wallsmith@gmail.com",
|
|
||||||
"homepage": "http://kriswallsmith.net/"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Integrates Assetic into Symfony2",
|
|
||||||
"homepage": "https://github.com/symfony/AsseticBundle",
|
|
||||||
"keywords": [
|
|
||||||
"assets",
|
|
||||||
"compression",
|
|
||||||
"minification"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/orm",
|
|
||||||
"version": "v2.5.14",
|
|
||||||
"version_normalized": "2.5.14.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/orm.git",
|
|
||||||
"reference": "810a7baf81462a5ddf10e8baa8cb94b6eec02754"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/orm/zipball/810a7baf81462a5ddf10e8baa8cb94b6eec02754",
|
|
||||||
"reference": "810a7baf81462a5ddf10e8baa8cb94b6eec02754",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/cache": "~1.4",
|
|
||||||
"doctrine/collections": "~1.2",
|
|
||||||
"doctrine/common": ">=2.5-dev,<2.9-dev",
|
|
||||||
"doctrine/dbal": ">=2.5-dev,<2.7-dev",
|
|
||||||
"doctrine/instantiator": "^1.0.1",
|
|
||||||
"ext-pdo": "*",
|
|
||||||
"php": ">=5.4",
|
|
||||||
"symfony/console": "~2.5|~3.0|~4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "~4.0",
|
|
||||||
"symfony/yaml": "~2.3|~3.0|~4.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"symfony/yaml": "If you want to use YAML Metadata Mapping Driver"
|
|
||||||
},
|
|
||||||
"time": "2017-12-17 02:57:51",
|
|
||||||
"bin": [
|
|
||||||
"bin/doctrine",
|
|
||||||
"bin/doctrine.php"
|
|
||||||
],
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.6.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"Doctrine\\ORM\\": "lib/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Roman Borschel",
|
|
||||||
"email": "roman@code-factory.org"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Benjamin Eberlei",
|
|
||||||
"email": "kontakt@beberlei.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Guilherme Blanco",
|
|
||||||
"email": "guilhermeblanco@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jonathan Wage",
|
|
||||||
"email": "jonwage@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Object-Relational-Mapper for PHP",
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"keywords": [
|
|
||||||
"database",
|
|
||||||
"orm"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/swiftmailer-bundle",
|
|
||||||
"version": "v2.6.7",
|
|
||||||
"version_normalized": "2.6.7.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/swiftmailer-bundle.git",
|
|
||||||
"reference": "c4808f5169efc05567be983909d00f00521c53ec"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec",
|
|
||||||
"reference": "c4808f5169efc05567be983909d00f00521c53ec",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.2",
|
|
||||||
"swiftmailer/swiftmailer": "~4.2|~5.0",
|
|
||||||
"symfony/config": "~2.7|~3.0",
|
|
||||||
"symfony/dependency-injection": "~2.7|~3.0",
|
|
||||||
"symfony/http-kernel": "~2.7|~3.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"symfony/console": "~2.7|~3.0",
|
|
||||||
"symfony/framework-bundle": "~2.7|~3.0",
|
|
||||||
"symfony/phpunit-bridge": "~3.3@dev",
|
|
||||||
"symfony/yaml": "~2.7|~3.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"psr/log": "Allows logging"
|
|
||||||
},
|
|
||||||
"time": "2017-10-19 01:06:41",
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.6-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Bundle\\SwiftmailerBundle\\": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "http://symfony.com/contributors"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien@symfony.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony SwiftmailerBundle",
|
|
||||||
"homepage": "http://symfony.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "tetranz/select2entity-bundle",
|
|
||||||
"version": "v2.9.5",
|
|
||||||
"version_normalized": "2.9.5.0",
|
|
||||||
"target-dir": "Tetranz/Select2EntityBundle",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/tetranz/select2entity-bundle.git",
|
|
||||||
"reference": "c57281f4af06ca0c7e74c27fcc4bf8c95a1beaad"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/tetranz/select2entity-bundle/zipball/c57281f4af06ca0c7e74c27fcc4bf8c95a1beaad",
|
|
||||||
"reference": "c57281f4af06ca0c7e74c27fcc4bf8c95a1beaad",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/orm": ">=2.4",
|
|
||||||
"php": ">=5.4.0"
|
|
||||||
},
|
|
||||||
"time": "2018-03-05 02:52:46",
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": []
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"Tetranz\\Select2EntityBundle": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Ross Keatinge",
|
|
||||||
"email": "tetranz@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A Symfony2 bundle that integrates Select2 as a drop-in replacement for a standard entity field on a Symfony form.",
|
|
||||||
"keywords": [
|
|
||||||
"autocomplete",
|
|
||||||
"select2",
|
|
||||||
"symfony",
|
|
||||||
"typeahead"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sensio/generator-bundle",
|
|
||||||
"version": "v3.1.7",
|
|
||||||
"version_normalized": "3.1.7.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sensiolabs/SensioGeneratorBundle.git",
|
|
||||||
"reference": "28cbaa244bd0816fd8908b93f90380bcd7b67a65"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/28cbaa244bd0816fd8908b93f90380bcd7b67a65",
|
|
||||||
"reference": "28cbaa244bd0816fd8908b93f90380bcd7b67a65",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"symfony/console": "~2.7|~3.0",
|
|
||||||
"symfony/framework-bundle": "~2.7|~3.0",
|
|
||||||
"symfony/process": "~2.7|~3.0",
|
|
||||||
"symfony/yaml": "~2.7|~3.0",
|
|
||||||
"twig/twig": "^1.28.2|^2.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"doctrine/orm": "~2.4",
|
|
||||||
"symfony/doctrine-bridge": "~2.7|~3.0",
|
|
||||||
"symfony/filesystem": "~2.7|~3.0",
|
|
||||||
"symfony/phpunit-bridge": "^3.3"
|
|
||||||
},
|
|
||||||
"time": "2017-12-07 15:36:41",
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "3.1.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Sensio\\Bundle\\GeneratorBundle\\": ""
|
|
||||||
},
|
|
||||||
"exclude-from-classmap": [
|
|
||||||
"/Tests/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien@symfony.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "This bundle generates code for you"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/polyfill-mbstring",
|
|
||||||
"version": "v1.10.0",
|
|
||||||
"version_normalized": "1.10.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
|
||||||
"reference": "c79c051f5b3a46be09205c73b80b346e4153e494"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494",
|
|
||||||
"reference": "c79c051f5b3a46be09205c73b80b346e4153e494",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.3"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ext-mbstring": "For best performance"
|
|
||||||
},
|
|
||||||
"time": "2018-09-21 13:07:52",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.9-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Polyfill\\Mbstring\\": ""
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"bootstrap.php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Nicolas Grekas",
|
|
||||||
"email": "p@tchwork.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony polyfill for the Mbstring extension",
|
|
||||||
"homepage": "https://symfony.com",
|
|
||||||
"keywords": [
|
|
||||||
"compatibility",
|
|
||||||
"mbstring",
|
|
||||||
"polyfill",
|
|
||||||
"portable",
|
|
||||||
"shim"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/polyfill-ctype",
|
|
||||||
"version": "v1.10.0",
|
|
||||||
"version_normalized": "1.10.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
|
||||||
"reference": "e3d826245268269cd66f8326bd8bc066687b4a19"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19",
|
|
||||||
"reference": "e3d826245268269cd66f8326bd8bc066687b4a19",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.3"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ext-ctype": "For best performance"
|
|
||||||
},
|
|
||||||
"time": "2018-08-06 14:22:27",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.9-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Polyfill\\Ctype\\": ""
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"bootstrap.php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Gert de Pagter",
|
|
||||||
"email": "BackEndTea@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony polyfill for ctype functions",
|
|
||||||
"homepage": "https://symfony.com",
|
|
||||||
"keywords": [
|
|
||||||
"compatibility",
|
|
||||||
"ctype",
|
|
||||||
"polyfill",
|
|
||||||
"portable"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/polyfill-php70",
|
|
||||||
"version": "v1.10.0",
|
|
||||||
"version_normalized": "1.10.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/polyfill-php70.git",
|
|
||||||
"reference": "6b88000cdd431cd2e940caa2cb569201f3f84224"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/6b88000cdd431cd2e940caa2cb569201f3f84224",
|
|
||||||
"reference": "6b88000cdd431cd2e940caa2cb569201f3f84224",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"paragonie/random_compat": "~1.0|~2.0|~9.99",
|
|
||||||
"php": ">=5.3.3"
|
|
||||||
},
|
|
||||||
"time": "2018-09-21 06:26:08",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.9-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Polyfill\\Php70\\": ""
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"bootstrap.php"
|
|
||||||
],
|
|
||||||
"classmap": [
|
|
||||||
"Resources/stubs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Nicolas Grekas",
|
|
||||||
"email": "p@tchwork.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
|
|
||||||
"homepage": "https://symfony.com",
|
|
||||||
"keywords": [
|
|
||||||
"compatibility",
|
|
||||||
"polyfill",
|
|
||||||
"portable",
|
|
||||||
"shim"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/polyfill-util",
|
|
||||||
"version": "v1.10.0",
|
|
||||||
"version_normalized": "1.10.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/polyfill-util.git",
|
|
||||||
"reference": "3b58903eae668d348a7126f999b0da0f2f93611c"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-util/zipball/3b58903eae668d348a7126f999b0da0f2f93611c",
|
|
||||||
"reference": "3b58903eae668d348a7126f999b0da0f2f93611c",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.3"
|
|
||||||
},
|
|
||||||
"time": "2018-09-30 16:36:12",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.9-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Polyfill\\Util\\": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Nicolas Grekas",
|
|
||||||
"email": "p@tchwork.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony utilities for portability of PHP codes",
|
|
||||||
"homepage": "https://symfony.com",
|
|
||||||
"keywords": [
|
|
||||||
"compat",
|
|
||||||
"compatibility",
|
|
||||||
"polyfill",
|
|
||||||
"shim"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/polyfill-php56",
|
|
||||||
"version": "v1.10.0",
|
|
||||||
"version_normalized": "1.10.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/polyfill-php56.git",
|
|
||||||
"reference": "ff208829fe1aa48ab9af356992bb7199fed551af"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/ff208829fe1aa48ab9af356992bb7199fed551af",
|
|
||||||
"reference": "ff208829fe1aa48ab9af356992bb7199fed551af",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.3",
|
|
||||||
"symfony/polyfill-util": "~1.0"
|
|
||||||
},
|
|
||||||
"time": "2018-09-21 06:26:08",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.9-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Polyfill\\Php56\\": ""
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"bootstrap.php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Nicolas Grekas",
|
|
||||||
"email": "p@tchwork.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions",
|
|
||||||
"homepage": "https://symfony.com",
|
|
||||||
"keywords": [
|
|
||||||
"compatibility",
|
|
||||||
"polyfill",
|
|
||||||
"portable",
|
|
||||||
"shim"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/polyfill-intl-icu",
|
|
||||||
"version": "v1.10.0",
|
|
||||||
"version_normalized": "1.10.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/polyfill-intl-icu.git",
|
|
||||||
"reference": "f22a90256d577c7ef7efad8df1f0201663d57644"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/f22a90256d577c7ef7efad8df1f0201663d57644",
|
|
||||||
"reference": "f22a90256d577c7ef7efad8df1f0201663d57644",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.3",
|
|
||||||
"symfony/intl": "~2.3|~3.0|~4.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ext-intl": "For best performance"
|
|
||||||
},
|
|
||||||
"time": "2018-08-06 14:22:27",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.9-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"files": [
|
|
||||||
"bootstrap.php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Nicolas Grekas",
|
|
||||||
"email": "p@tchwork.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony polyfill for intl's ICU-related data and classes",
|
|
||||||
"homepage": "https://symfony.com",
|
|
||||||
"keywords": [
|
|
||||||
"compatibility",
|
|
||||||
"icu",
|
|
||||||
"intl",
|
|
||||||
"polyfill",
|
|
||||||
"portable",
|
|
||||||
"shim"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/polyfill-apcu",
|
|
||||||
"version": "v1.10.0",
|
|
||||||
"version_normalized": "1.10.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/polyfill-apcu.git",
|
|
||||||
"reference": "19e1b73bf255265ad0b568f81766ae2a3266d8d2"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/19e1b73bf255265ad0b568f81766ae2a3266d8d2",
|
|
||||||
"reference": "19e1b73bf255265ad0b568f81766ae2a3266d8d2",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.3"
|
|
||||||
},
|
|
||||||
"time": "2018-08-06 14:22:27",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.9-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Polyfill\\Apcu\\": ""
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"bootstrap.php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Nicolas Grekas",
|
|
||||||
"email": "p@tchwork.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony polyfill backporting apcu_* functions to lower PHP versions",
|
|
||||||
"homepage": "https://symfony.com",
|
|
||||||
"keywords": [
|
|
||||||
"apcu",
|
|
||||||
"compatibility",
|
|
||||||
"polyfill",
|
|
||||||
"portable",
|
|
||||||
"shim"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "psr/log",
|
|
||||||
"version": "1.1.0",
|
|
||||||
"version_normalized": "1.1.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/php-fig/log.git",
|
|
||||||
"reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
|
|
||||||
"reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.0"
|
|
||||||
},
|
|
||||||
"time": "2018-11-20 15:27:04",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.0.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Psr\\Log\\": "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",
|
|
||||||
"homepage": "https://github.com/php-fig/log",
|
|
||||||
"keywords": [
|
|
||||||
"log",
|
|
||||||
"psr",
|
|
||||||
"psr-3"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/doctrine-cache-bundle",
|
|
||||||
"version": "1.3.5",
|
|
||||||
"version_normalized": "1.3.5.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/DoctrineCacheBundle.git",
|
|
||||||
"reference": "5514c90d9fb595e1095e6d66ebb98ce9ef049927"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/5514c90d9fb595e1095e6d66ebb98ce9ef049927",
|
|
||||||
"reference": "5514c90d9fb595e1095e6d66ebb98ce9ef049927",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/cache": "^1.4.2",
|
|
||||||
"doctrine/inflector": "~1.0",
|
|
||||||
"php": ">=5.3.2",
|
|
||||||
"symfony/doctrine-bridge": "~2.7|~3.3|~4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"instaclick/coding-standard": "~1.1",
|
|
||||||
"instaclick/object-calisthenics-sniffs": "dev-master",
|
|
||||||
"instaclick/symfony2-coding-standard": "dev-remaster",
|
|
||||||
"phpunit/phpunit": "~4.8.36|~5.6|~6.5|~7.0",
|
|
||||||
"predis/predis": "~0.8",
|
|
||||||
"satooshi/php-coveralls": "^1.0",
|
|
||||||
"squizlabs/php_codesniffer": "~1.5",
|
|
||||||
"symfony/console": "~2.7|~3.3|~4.0",
|
|
||||||
"symfony/finder": "~2.7|~3.3|~4.0",
|
|
||||||
"symfony/framework-bundle": "~2.7|~3.3|~4.0",
|
|
||||||
"symfony/phpunit-bridge": "~2.7|~3.3|~4.0",
|
|
||||||
"symfony/security-acl": "~2.7|~3.3",
|
|
||||||
"symfony/validator": "~2.7|~3.3|~4.0",
|
|
||||||
"symfony/yaml": "~2.7|~3.3|~4.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"symfony/security-acl": "For using this bundle to cache ACLs"
|
|
||||||
},
|
|
||||||
"time": "2018-11-09 06:25:35",
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.3.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Doctrine\\Bundle\\DoctrineCacheBundle\\": ""
|
|
||||||
},
|
|
||||||
"exclude-from-classmap": [
|
|
||||||
"/Tests/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "http://symfony.com/contributors"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Benjamin Eberlei",
|
|
||||||
"email": "kontakt@beberlei.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Fabio B. Silva",
|
|
||||||
"email": "fabio.bat.silva@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Guilherme Blanco",
|
|
||||||
"email": "guilhermeblanco@hotmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Doctrine Project",
|
|
||||||
"homepage": "http://www.doctrine-project.org/"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien@symfony.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony Bundle for Doctrine Cache",
|
|
||||||
"homepage": "https://www.doctrine-project.org",
|
|
||||||
"keywords": [
|
|
||||||
"cache",
|
|
||||||
"caching"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "gregwar/captcha",
|
|
||||||
"version": "v1.1.7",
|
|
||||||
"version_normalized": "1.1.7.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/Gregwar/Captcha.git",
|
|
||||||
"reference": "cf953dd79748406e0292cea8c565399681e4d345"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/Gregwar/Captcha/zipball/cf953dd79748406e0292cea8c565399681e4d345",
|
|
||||||
"reference": "cf953dd79748406e0292cea8c565399681e4d345",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-gd": "*",
|
|
||||||
"ext-mbstring": "*",
|
|
||||||
"php": ">=5.3.0",
|
|
||||||
"symfony/finder": "*"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^6.4"
|
|
||||||
},
|
|
||||||
"time": "2018-08-17 22:57:28",
|
|
||||||
"type": "captcha",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Gregwar\\": "src/Gregwar"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Grégoire Passault",
|
|
||||||
"email": "g.passault@gmail.com",
|
|
||||||
"homepage": "http://www.gregwar.com/"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jeremy Livingston",
|
|
||||||
"email": "jeremy.j.livingston@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Captcha generator",
|
|
||||||
"homepage": "https://github.com/Gregwar/Captcha",
|
|
||||||
"keywords": [
|
|
||||||
"bot",
|
|
||||||
"captcha",
|
|
||||||
"spam"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "gregwar/captcha-bundle",
|
|
||||||
"version": "v2.0.6",
|
|
||||||
"version_normalized": "2.0.6.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/Gregwar/CaptchaBundle.git",
|
|
||||||
"reference": "c2d5468556890dd25e0b53bd345fc205562c86f7"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/Gregwar/CaptchaBundle/zipball/c2d5468556890dd25e0b53bd345fc205562c86f7",
|
|
||||||
"reference": "c2d5468556890dd25e0b53bd345fc205562c86f7",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"gregwar/captcha": "~1.1",
|
|
||||||
"php": ">=5.3.9",
|
|
||||||
"symfony/form": "~2.8|~3.0|~4.0",
|
|
||||||
"symfony/framework-bundle": "~2.8|~3.0|~4.0"
|
|
||||||
},
|
|
||||||
"time": "2018-11-20 10:41:34",
|
|
||||||
"type": "captcha-bundle",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Gregwar\\CaptchaBundle\\": "/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Grégoire Passault",
|
|
||||||
"email": "g.passault@gmail.com",
|
|
||||||
"homepage": "http://www.gregwar.com/"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jeremy Livingston",
|
|
||||||
"email": "jeremy.j.livingston@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Captcha bundle",
|
|
||||||
"homepage": "https://github.com/Gregwar/CaptchaBundle",
|
|
||||||
"keywords": [
|
|
||||||
"Symfony2",
|
|
||||||
"bot",
|
|
||||||
"captcha",
|
|
||||||
"code",
|
|
||||||
"security",
|
|
||||||
"spam",
|
|
||||||
"visual"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "ramsey/uuid",
|
|
||||||
"version": "3.8.0",
|
|
||||||
"version_normalized": "3.8.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/ramsey/uuid.git",
|
|
||||||
"reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/ramsey/uuid/zipball/d09ea80159c1929d75b3f9c60504d613aeb4a1e3",
|
|
||||||
"reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"paragonie/random_compat": "^1.0|^2.0|9.99.99",
|
|
||||||
"php": "^5.4 || ^7.0",
|
|
||||||
"symfony/polyfill-ctype": "^1.8"
|
|
||||||
},
|
|
||||||
"replace": {
|
|
||||||
"rhumsaa/uuid": "self.version"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"codeception/aspect-mock": "^1.0 | ~2.0.0",
|
|
||||||
"doctrine/annotations": "~1.2.0",
|
|
||||||
"goaop/framework": "1.0.0-alpha.2 | ^1.0 | ~2.1.0",
|
|
||||||
"ircmaxell/random-lib": "^1.1",
|
|
||||||
"jakub-onderka/php-parallel-lint": "^0.9.0",
|
|
||||||
"mockery/mockery": "^0.9.9",
|
|
||||||
"moontoast/math": "^1.1",
|
|
||||||
"php-mock/php-mock-phpunit": "^0.3|^1.1",
|
|
||||||
"phpunit/phpunit": "^4.7|^5.0|^6.5",
|
|
||||||
"squizlabs/php_codesniffer": "^2.3"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ext-ctype": "Provides support for PHP Ctype functions",
|
|
||||||
"ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator",
|
|
||||||
"ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator",
|
|
||||||
"ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
|
|
||||||
"moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).",
|
|
||||||
"ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid",
|
|
||||||
"ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
|
|
||||||
},
|
|
||||||
"time": "2018-07-19 23:38:55",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "3.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Ramsey\\Uuid\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Marijn Huizendveld",
|
|
||||||
"email": "marijn.huizendveld@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Thibaud Fabre",
|
|
||||||
"email": "thibaud@aztech.io"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Ben Ramsey",
|
|
||||||
"email": "ben@benramsey.com",
|
|
||||||
"homepage": "https://benramsey.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).",
|
|
||||||
"homepage": "https://github.com/ramsey/uuid",
|
|
||||||
"keywords": [
|
|
||||||
"guid",
|
|
||||||
"identifier",
|
|
||||||
"uuid"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "monolog/monolog",
|
|
||||||
"version": "1.24.0",
|
|
||||||
"version_normalized": "1.24.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/Seldaek/monolog.git",
|
|
||||||
"reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
|
|
||||||
"reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.0",
|
|
||||||
"psr/log": "~1.0"
|
|
||||||
},
|
|
||||||
"provide": {
|
|
||||||
"psr/log-implementation": "1.0.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"aws/aws-sdk-php": "^2.4.9 || ^3.0",
|
|
||||||
"doctrine/couchdb": "~1.0@dev",
|
|
||||||
"graylog2/gelf-php": "~1.0",
|
|
||||||
"jakub-onderka/php-parallel-lint": "0.9",
|
|
||||||
"php-amqplib/php-amqplib": "~2.4",
|
|
||||||
"php-console/php-console": "^3.1.3",
|
|
||||||
"phpunit/phpunit": "~4.5",
|
|
||||||
"phpunit/phpunit-mock-objects": "2.3.0",
|
|
||||||
"ruflin/elastica": ">=0.90 <3.0",
|
|
||||||
"sentry/sentry": "^0.13",
|
|
||||||
"swiftmailer/swiftmailer": "^5.3|^6.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
|
|
||||||
"doctrine/couchdb": "Allow sending log messages to a CouchDB server",
|
|
||||||
"ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
|
|
||||||
"ext-mongo": "Allow sending log messages to a MongoDB server",
|
|
||||||
"graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
|
|
||||||
"mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
|
|
||||||
"php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
|
|
||||||
"php-console/php-console": "Allow sending log messages to Google Chrome",
|
|
||||||
"rollbar/rollbar": "Allow sending log messages to Rollbar",
|
|
||||||
"ruflin/elastica": "Allow sending log messages to an Elastic Search server",
|
|
||||||
"sentry/sentry": "Allow sending log messages to a Sentry server"
|
|
||||||
},
|
|
||||||
"time": "2018-11-05 09:00:11",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.0.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Monolog\\": "src/Monolog"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Jordi Boggiano",
|
|
||||||
"email": "j.boggiano@seld.be",
|
|
||||||
"homepage": "http://seld.be"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Sends your logs to files, sockets, inboxes, databases and various web services",
|
|
||||||
"homepage": "http://github.com/Seldaek/monolog",
|
|
||||||
"keywords": [
|
|
||||||
"log",
|
|
||||||
"logging",
|
|
||||||
"psr-3"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/monolog-bundle",
|
|
||||||
"version": "v3.3.1",
|
|
||||||
"version_normalized": "3.3.1.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/monolog-bundle.git",
|
|
||||||
"reference": "572e143afc03419a75ab002c80a2fd99299195ff"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/572e143afc03419a75ab002c80a2fd99299195ff",
|
|
||||||
"reference": "572e143afc03419a75ab002c80a2fd99299195ff",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"monolog/monolog": "~1.22",
|
|
||||||
"php": ">=5.6",
|
|
||||||
"symfony/config": "~2.7|~3.3|~4.0",
|
|
||||||
"symfony/dependency-injection": "~2.7|~3.4.10|^4.0.10",
|
|
||||||
"symfony/http-kernel": "~2.7|~3.3|~4.0",
|
|
||||||
"symfony/monolog-bridge": "~2.7|~3.3|~4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"symfony/console": "~2.7|~3.3|~4.0",
|
|
||||||
"symfony/phpunit-bridge": "^3.3|^4.0",
|
|
||||||
"symfony/yaml": "~2.7|~3.3|~4.0"
|
|
||||||
},
|
|
||||||
"time": "2018-11-04 09:58:13",
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "3.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Bundle\\MonologBundle\\": ""
|
|
||||||
},
|
|
||||||
"exclude-from-classmap": [
|
|
||||||
"/Tests/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "http://symfony.com/contributors"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien@symfony.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony MonologBundle",
|
|
||||||
"homepage": "http://symfony.com",
|
|
||||||
"keywords": [
|
|
||||||
"log",
|
|
||||||
"logging"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "swiftmailer/swiftmailer",
|
|
||||||
"version": "v5.4.12",
|
|
||||||
"version_normalized": "5.4.12.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/swiftmailer/swiftmailer.git",
|
|
||||||
"reference": "181b89f18a90f8925ef805f950d47a7190e9b950"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/181b89f18a90f8925ef805f950d47a7190e9b950",
|
|
||||||
"reference": "181b89f18a90f8925ef805f950d47a7190e9b950",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"mockery/mockery": "~0.9.1",
|
|
||||||
"symfony/phpunit-bridge": "~3.2"
|
|
||||||
},
|
|
||||||
"time": "2018-07-31 09:26:32",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "5.4-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"files": [
|
|
||||||
"lib/swift_required.php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Chris Corbyn"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien@symfony.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Swiftmailer, free feature-rich PHP mailer",
|
|
||||||
"homepage": "https://swiftmailer.symfony.com",
|
|
||||||
"keywords": [
|
|
||||||
"email",
|
|
||||||
"mail",
|
|
||||||
"mailer"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "twig/twig",
|
|
||||||
"version": "v2.6.2",
|
|
||||||
"version_normalized": "2.6.2.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/twigphp/Twig.git",
|
|
||||||
"reference": "7d7342c8a4059fefb9b8d07db0cc14007021f9b7"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/7d7342c8a4059fefb9b8d07db0cc14007021f9b7",
|
|
||||||
"reference": "7d7342c8a4059fefb9b8d07db0cc14007021f9b7",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^7.0",
|
|
||||||
"symfony/polyfill-ctype": "^1.8",
|
|
||||||
"symfony/polyfill-mbstring": "^1.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"psr/container": "^1.0",
|
|
||||||
"symfony/debug": "^2.7",
|
|
||||||
"symfony/phpunit-bridge": "^3.4.19|^4.1.8"
|
|
||||||
},
|
|
||||||
"time": "2019-01-14 15:00:48",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.6-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"Twig_": "lib/"
|
|
||||||
},
|
|
||||||
"psr-4": {
|
|
||||||
"Twig\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien@symfony.com",
|
|
||||||
"homepage": "http://fabien.potencier.org",
|
|
||||||
"role": "Lead Developer"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Armin Ronacher",
|
|
||||||
"email": "armin.ronacher@active-4.com",
|
|
||||||
"role": "Project Founder"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Twig Team",
|
|
||||||
"homepage": "https://twig.symfony.com/contributors",
|
|
||||||
"role": "Contributors"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Twig, the flexible, fast, and secure template language for PHP",
|
|
||||||
"homepage": "https://twig.symfony.com",
|
|
||||||
"keywords": [
|
|
||||||
"templating"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "paragonie/random_compat",
|
|
||||||
"version": "v2.0.18",
|
|
||||||
"version_normalized": "2.0.18.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/paragonie/random_compat.git",
|
|
||||||
"reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/0a58ef6e3146256cc3dc7cc393927bcc7d1b72db",
|
|
||||||
"reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.2.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "4.*|5.*"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
|
|
||||||
},
|
|
||||||
"time": "2019-01-03 20:59:08",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"files": [
|
|
||||||
"lib/random.php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Paragon Initiative Enterprises",
|
|
||||||
"email": "security@paragonie.com",
|
|
||||||
"homepage": "https://paragonie.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
|
|
||||||
"keywords": [
|
|
||||||
"csprng",
|
|
||||||
"polyfill",
|
|
||||||
"pseudorandom",
|
|
||||||
"random"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/symfony",
|
|
||||||
"version": "v3.4.23",
|
|
||||||
"version_normalized": "3.4.23.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/symfony.git",
|
|
||||||
"reference": "336cf12e5e82d71874e8522e0879794340351b56"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/symfony/zipball/336cf12e5e82d71874e8522e0879794340351b56",
|
|
||||||
"reference": "336cf12e5e82d71874e8522e0879794340351b56",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/common": "~2.4",
|
|
||||||
"ext-xml": "*",
|
|
||||||
"fig/link-util": "^1.0",
|
|
||||||
"php": "^5.5.9|>=7.0.8",
|
|
||||||
"psr/cache": "~1.0",
|
|
||||||
"psr/container": "^1.0",
|
|
||||||
"psr/link": "^1.0",
|
|
||||||
"psr/log": "~1.0",
|
|
||||||
"psr/simple-cache": "^1.0",
|
|
||||||
"symfony/polyfill-apcu": "~1.1",
|
|
||||||
"symfony/polyfill-ctype": "~1.8",
|
|
||||||
"symfony/polyfill-intl-icu": "~1.0",
|
|
||||||
"symfony/polyfill-mbstring": "~1.0",
|
|
||||||
"symfony/polyfill-php56": "~1.0",
|
|
||||||
"symfony/polyfill-php70": "~1.6",
|
|
||||||
"twig/twig": "^1.35|^2.4.4"
|
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2",
|
|
||||||
"phpdocumentor/type-resolver": "<0.3.0",
|
|
||||||
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
|
|
||||||
},
|
|
||||||
"provide": {
|
|
||||||
"psr/cache-implementation": "1.0",
|
|
||||||
"psr/container-implementation": "1.0",
|
|
||||||
"psr/log-implementation": "1.0",
|
|
||||||
"psr/simple-cache-implementation": "1.0"
|
|
||||||
},
|
|
||||||
"replace": {
|
|
||||||
"symfony/asset": "self.version",
|
|
||||||
"symfony/browser-kit": "self.version",
|
|
||||||
"symfony/cache": "self.version",
|
|
||||||
"symfony/class-loader": "self.version",
|
|
||||||
"symfony/config": "self.version",
|
|
||||||
"symfony/console": "self.version",
|
|
||||||
"symfony/css-selector": "self.version",
|
|
||||||
"symfony/debug": "self.version",
|
|
||||||
"symfony/debug-bundle": "self.version",
|
|
||||||
"symfony/dependency-injection": "self.version",
|
|
||||||
"symfony/doctrine-bridge": "self.version",
|
|
||||||
"symfony/dom-crawler": "self.version",
|
|
||||||
"symfony/dotenv": "self.version",
|
|
||||||
"symfony/event-dispatcher": "self.version",
|
|
||||||
"symfony/expression-language": "self.version",
|
|
||||||
"symfony/filesystem": "self.version",
|
|
||||||
"symfony/finder": "self.version",
|
|
||||||
"symfony/form": "self.version",
|
|
||||||
"symfony/framework-bundle": "self.version",
|
|
||||||
"symfony/http-foundation": "self.version",
|
|
||||||
"symfony/http-kernel": "self.version",
|
|
||||||
"symfony/inflector": "self.version",
|
|
||||||
"symfony/intl": "self.version",
|
|
||||||
"symfony/ldap": "self.version",
|
|
||||||
"symfony/lock": "self.version",
|
|
||||||
"symfony/monolog-bridge": "self.version",
|
|
||||||
"symfony/options-resolver": "self.version",
|
|
||||||
"symfony/process": "self.version",
|
|
||||||
"symfony/property-access": "self.version",
|
|
||||||
"symfony/property-info": "self.version",
|
|
||||||
"symfony/proxy-manager-bridge": "self.version",
|
|
||||||
"symfony/routing": "self.version",
|
|
||||||
"symfony/security": "self.version",
|
|
||||||
"symfony/security-bundle": "self.version",
|
|
||||||
"symfony/security-core": "self.version",
|
|
||||||
"symfony/security-csrf": "self.version",
|
|
||||||
"symfony/security-guard": "self.version",
|
|
||||||
"symfony/security-http": "self.version",
|
|
||||||
"symfony/serializer": "self.version",
|
|
||||||
"symfony/stopwatch": "self.version",
|
|
||||||
"symfony/templating": "self.version",
|
|
||||||
"symfony/translation": "self.version",
|
|
||||||
"symfony/twig-bridge": "self.version",
|
|
||||||
"symfony/twig-bundle": "self.version",
|
|
||||||
"symfony/validator": "self.version",
|
|
||||||
"symfony/var-dumper": "self.version",
|
|
||||||
"symfony/web-link": "self.version",
|
|
||||||
"symfony/web-profiler-bundle": "self.version",
|
|
||||||
"symfony/web-server-bundle": "self.version",
|
|
||||||
"symfony/workflow": "self.version",
|
|
||||||
"symfony/yaml": "self.version"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"cache/integration-tests": "dev-master",
|
|
||||||
"doctrine/annotations": "~1.0",
|
|
||||||
"doctrine/cache": "~1.6",
|
|
||||||
"doctrine/data-fixtures": "1.0.*",
|
|
||||||
"doctrine/dbal": "~2.4",
|
|
||||||
"doctrine/doctrine-bundle": "~1.4",
|
|
||||||
"doctrine/orm": "~2.4,>=2.4.5",
|
|
||||||
"egulias/email-validator": "~1.2,>=1.2.8|~2.0",
|
|
||||||
"monolog/monolog": "~1.11",
|
|
||||||
"ocramius/proxy-manager": "~0.4|~1.0|~2.0",
|
|
||||||
"phpdocumentor/reflection-docblock": "^3.0|^4.0",
|
|
||||||
"predis/predis": "~1.0",
|
|
||||||
"symfony/phpunit-bridge": "~3.4|~4.0",
|
|
||||||
"symfony/security-acl": "~2.8|~3.0"
|
|
||||||
},
|
|
||||||
"time": "2019-03-03 18:52:48",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "3.4-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Bridge\\Doctrine\\": "src/Symfony/Bridge/Doctrine/",
|
|
||||||
"Symfony\\Bridge\\Monolog\\": "src/Symfony/Bridge/Monolog/",
|
|
||||||
"Symfony\\Bridge\\ProxyManager\\": "src/Symfony/Bridge/ProxyManager/",
|
|
||||||
"Symfony\\Bridge\\Twig\\": "src/Symfony/Bridge/Twig/",
|
|
||||||
"Symfony\\Bundle\\": "src/Symfony/Bundle/",
|
|
||||||
"Symfony\\Component\\": "src/Symfony/Component/"
|
|
||||||
},
|
|
||||||
"classmap": [
|
|
||||||
"src/Symfony/Component/Intl/Resources/stubs"
|
|
||||||
],
|
|
||||||
"exclude-from-classmap": [
|
|
||||||
"**/Tests/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien@symfony.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "The Symfony PHP framework",
|
|
||||||
"homepage": "https://symfony.com",
|
|
||||||
"keywords": [
|
|
||||||
"framework"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "composer/ca-bundle",
|
|
||||||
"version": "1.1.4",
|
|
||||||
"version_normalized": "1.1.4.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/composer/ca-bundle.git",
|
|
||||||
"reference": "558f321c52faeb4828c03e7dc0cfe39a09e09a2d"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/558f321c52faeb4828c03e7dc0cfe39a09e09a2d",
|
|
||||||
"reference": "558f321c52faeb4828c03e7dc0cfe39a09e09a2d",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-openssl": "*",
|
|
||||||
"ext-pcre": "*",
|
|
||||||
"php": "^5.3.2 || ^7.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5",
|
|
||||||
"psr/log": "^1.0",
|
|
||||||
"symfony/process": "^2.5 || ^3.0 || ^4.0"
|
|
||||||
},
|
|
||||||
"time": "2019-01-28 09:30:10",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Composer\\CaBundle\\": "src"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Jordi Boggiano",
|
|
||||||
"email": "j.boggiano@seld.be",
|
|
||||||
"homepage": "http://seld.be"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
|
|
||||||
"keywords": [
|
|
||||||
"cabundle",
|
|
||||||
"cacert",
|
|
||||||
"certificate",
|
|
||||||
"ssl",
|
|
||||||
"tls"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sensiolabs/security-checker",
|
|
||||||
"version": "v5.0.3",
|
|
||||||
"version_normalized": "5.0.3.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sensiolabs/security-checker.git",
|
|
||||||
"reference": "46be3f58adac13084497961e10eed9a7fb4d44d1"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/46be3f58adac13084497961e10eed9a7fb4d44d1",
|
|
||||||
"reference": "46be3f58adac13084497961e10eed9a7fb4d44d1",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"composer/ca-bundle": "^1.0",
|
|
||||||
"php": ">=5.5.9",
|
|
||||||
"symfony/console": "~2.7|~3.0|~4.0"
|
|
||||||
},
|
|
||||||
"time": "2018-12-19 17:14:59",
|
|
||||||
"bin": [
|
|
||||||
"security-checker"
|
|
||||||
],
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "5.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"SensioLabs\\Security\\": "SensioLabs/Security"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien.potencier@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A security checker for your composer.lock"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sensio/distribution-bundle",
|
|
||||||
"version": "v5.0.24",
|
|
||||||
"version_normalized": "5.0.24.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sensiolabs/SensioDistributionBundle.git",
|
|
||||||
"reference": "59eac70f15f97ee945924948a6f5e2f6f86b7a4b"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/59eac70f15f97ee945924948a6f5e2f6f86b7a4b",
|
|
||||||
"reference": "59eac70f15f97ee945924948a6f5e2f6f86b7a4b",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.9",
|
|
||||||
"sensiolabs/security-checker": "~5.0",
|
|
||||||
"symfony/class-loader": "~2.3|~3.0",
|
|
||||||
"symfony/config": "~2.3|~3.0",
|
|
||||||
"symfony/dependency-injection": "~2.3|~3.0",
|
|
||||||
"symfony/filesystem": "~2.3|~3.0",
|
|
||||||
"symfony/http-kernel": "~2.3|~3.0",
|
|
||||||
"symfony/process": "~2.3|~3.0"
|
|
||||||
},
|
|
||||||
"time": "2018-12-14 17:36:15",
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "5.0.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Sensio\\Bundle\\DistributionBundle\\": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien@symfony.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Base bundle for Symfony Distributions",
|
|
||||||
"keywords": [
|
|
||||||
"configuration",
|
|
||||||
"distribution"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sensio/framework-extra-bundle",
|
|
||||||
"version": "v5.2.4",
|
|
||||||
"version_normalized": "5.2.4.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git",
|
|
||||||
"reference": "1fdf591c4b388e62dbb2579de89c1560b33f865d"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/1fdf591c4b388e62dbb2579de89c1560b33f865d",
|
|
||||||
"reference": "1fdf591c4b388e62dbb2579de89c1560b33f865d",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/common": "^2.2",
|
|
||||||
"symfony/config": "^3.3|^4.0",
|
|
||||||
"symfony/dependency-injection": "^3.3|^4.0",
|
|
||||||
"symfony/framework-bundle": "^3.4|^4.0",
|
|
||||||
"symfony/http-kernel": "^3.3|^4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"doctrine/doctrine-bundle": "^1.6",
|
|
||||||
"doctrine/orm": "^2.5",
|
|
||||||
"symfony/browser-kit": "^3.3|^4.0",
|
|
||||||
"symfony/dom-crawler": "^3.3|^4.0",
|
|
||||||
"symfony/expression-language": "^3.3|^4.0",
|
|
||||||
"symfony/finder": "^3.3|^4.0",
|
|
||||||
"symfony/monolog-bridge": "^3.0|^4.0",
|
|
||||||
"symfony/monolog-bundle": "^3.2",
|
|
||||||
"symfony/phpunit-bridge": "^3.4.19|^4.1.8",
|
|
||||||
"symfony/psr-http-message-bridge": "^0.3",
|
|
||||||
"symfony/security-bundle": "^3.3|^4.0",
|
|
||||||
"symfony/twig-bundle": "^3.3|^4.0",
|
|
||||||
"symfony/yaml": "^3.3|^4.0",
|
|
||||||
"twig/twig": "~1.12|~2.0",
|
|
||||||
"zendframework/zend-diactoros": "^1.3"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"symfony/expression-language": "",
|
|
||||||
"symfony/psr-http-message-bridge": "To use the PSR-7 converters",
|
|
||||||
"symfony/security-bundle": ""
|
|
||||||
},
|
|
||||||
"time": "2018-12-11 16:59:23",
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "5.2.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Sensio\\Bundle\\FrameworkExtraBundle\\": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien@symfony.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "This bundle provides a way to configure your controllers with annotations",
|
|
||||||
"keywords": [
|
|
||||||
"annotations",
|
|
||||||
"controllers"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/doctrine-bundle",
|
|
||||||
"version": "1.10.2",
|
|
||||||
"version_normalized": "1.10.2.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/DoctrineBundle.git",
|
|
||||||
"reference": "1f99e6645030542079c57d4680601a4a8778a1bd"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/1f99e6645030542079c57d4680601a4a8778a1bd",
|
|
||||||
"reference": "1f99e6645030542079c57d4680601a4a8778a1bd",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/dbal": "^2.5.12",
|
|
||||||
"doctrine/doctrine-cache-bundle": "~1.2",
|
|
||||||
"jdorn/sql-formatter": "^1.2.16",
|
|
||||||
"php": "^5.5.9|^7.0",
|
|
||||||
"symfony/console": "~2.7|~3.0|~4.0",
|
|
||||||
"symfony/dependency-injection": "~2.7|~3.0|~4.0",
|
|
||||||
"symfony/doctrine-bridge": "~2.7|~3.0|~4.0",
|
|
||||||
"symfony/framework-bundle": "^2.7.22|~3.0|~4.0"
|
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"symfony/http-foundation": "<2.6"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"doctrine/orm": "~2.4",
|
|
||||||
"php-coveralls/php-coveralls": "^2.1",
|
|
||||||
"phpunit/phpunit": "^4.8.36|^5.7|^6.4",
|
|
||||||
"symfony/phpunit-bridge": "~2.7|~3.0|~4.0",
|
|
||||||
"symfony/property-info": "~2.8|~3.0|~4.0",
|
|
||||||
"symfony/validator": "~2.7|~3.0|~4.0",
|
|
||||||
"symfony/web-profiler-bundle": "~2.7|~3.0|~4.0",
|
|
||||||
"symfony/yaml": "~2.7|~3.0|~4.0",
|
|
||||||
"twig/twig": "~1.26|~2.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"doctrine/orm": "The Doctrine ORM integration is optional in the bundle.",
|
|
||||||
"symfony/web-profiler-bundle": "To use the data collector."
|
|
||||||
},
|
|
||||||
"time": "2019-02-06 13:18:04",
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.9.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Doctrine\\Bundle\\DoctrineBundle\\": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "http://symfony.com/contributors"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Benjamin Eberlei",
|
|
||||||
"email": "kontakt@beberlei.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Doctrine Project",
|
|
||||||
"homepage": "http://www.doctrine-project.org/"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien@symfony.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony DoctrineBundle",
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"keywords": [
|
|
||||||
"database",
|
|
||||||
"dbal",
|
|
||||||
"orm",
|
|
||||||
"persistence"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "doctrine/doctrine-migrations-bundle",
|
|
||||||
"version": "v1.3.2",
|
|
||||||
"version_normalized": "1.3.2.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/DoctrineMigrationsBundle.git",
|
|
||||||
"reference": "49fa399181db4bf4f9f725126bd1cb65c4398dce"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/49fa399181db4bf4f9f725126bd1cb65c4398dce",
|
|
||||||
"reference": "49fa399181db4bf4f9f725126bd1cb65c4398dce",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/doctrine-bundle": "~1.0",
|
|
||||||
"doctrine/migrations": "^1.1",
|
|
||||||
"php": ">=5.4.0",
|
|
||||||
"symfony/framework-bundle": "~2.7|~3.3|~4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^7.4"
|
|
||||||
},
|
|
||||||
"time": "2018-12-03 11:55:33",
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.3-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Doctrine\\Bundle\\MigrationsBundle\\": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "http://symfony.com/contributors"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Doctrine Project",
|
|
||||||
"homepage": "http://www.doctrine-project.org"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien@symfony.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony DoctrineMigrationsBundle",
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"keywords": [
|
|
||||||
"dbal",
|
|
||||||
"migrations",
|
|
||||||
"schema"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/orm-pack",
|
|
||||||
"version": "v1.0.6",
|
|
||||||
"version_normalized": "1.0.6.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/orm-pack.git",
|
|
||||||
"reference": "36c2a928482dc5f05c5c1c1b947242ae03ff1335"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/orm-pack/zipball/36c2a928482dc5f05c5c1c1b947242ae03ff1335",
|
|
||||||
"reference": "36c2a928482dc5f05c5c1c1b947242ae03ff1335",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/doctrine-bundle": "^1.6.10",
|
|
||||||
"doctrine/doctrine-migrations-bundle": "^1.3|^2.0",
|
|
||||||
"doctrine/orm": "^2.5.11",
|
|
||||||
"php": "^7.0"
|
|
||||||
},
|
|
||||||
"time": "2019-01-16 09:49:15",
|
|
||||||
"type": "symfony-pack",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"description": "A pack for the Doctrine ORM"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "nikic/php-parser",
|
|
||||||
"version": "v4.2.1",
|
|
||||||
"version_normalized": "4.2.1.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/nikic/PHP-Parser.git",
|
|
||||||
"reference": "5221f49a608808c1e4d436df32884cbc1b821ac0"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/5221f49a608808c1e4d436df32884cbc1b821ac0",
|
|
||||||
"reference": "5221f49a608808c1e4d436df32884cbc1b821ac0",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-tokenizer": "*",
|
|
||||||
"php": ">=7.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^6.5 || ^7.0"
|
|
||||||
},
|
|
||||||
"time": "2019-02-16 20:54:15",
|
|
||||||
"bin": [
|
|
||||||
"bin/php-parse"
|
|
||||||
],
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "4.2-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"PhpParser\\": "lib/PhpParser"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Nikita Popov"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A PHP parser written in PHP",
|
|
||||||
"keywords": [
|
|
||||||
"parser",
|
|
||||||
"php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/maker-bundle",
|
|
||||||
"version": "v1.11.4",
|
|
||||||
"version_normalized": "1.11.4.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/maker-bundle.git",
|
|
||||||
"reference": "540996bfdcc14ca38dfe4865c020d965020ae821"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/540996bfdcc14ca38dfe4865c020d965020ae821",
|
|
||||||
"reference": "540996bfdcc14ca38dfe4865c020d965020ae821",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/inflector": "^1.2",
|
|
||||||
"nikic/php-parser": "^4.0",
|
|
||||||
"php": "^7.0.8",
|
|
||||||
"symfony/config": "^3.4|^4.0",
|
|
||||||
"symfony/console": "^3.4|^4.0",
|
|
||||||
"symfony/dependency-injection": "^3.4|^4.0",
|
|
||||||
"symfony/filesystem": "^3.4|^4.0",
|
|
||||||
"symfony/finder": "^3.4|^4.0",
|
|
||||||
"symfony/framework-bundle": "^3.4|^4.0",
|
|
||||||
"symfony/http-kernel": "^3.4|^4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"allocine/twigcs": "^3.0",
|
|
||||||
"doctrine/doctrine-bundle": "^1.8",
|
|
||||||
"doctrine/orm": "^2.3",
|
|
||||||
"friendsofphp/php-cs-fixer": "^2.8",
|
|
||||||
"symfony/phpunit-bridge": "^3.4|^4.0",
|
|
||||||
"symfony/process": "^3.4|^4.0",
|
|
||||||
"symfony/yaml": "^3.4|^4.0"
|
|
||||||
},
|
|
||||||
"time": "2019-03-01 20:45:16",
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Bundle\\MakerBundle\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.",
|
|
||||||
"homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html",
|
|
||||||
"keywords": [
|
|
||||||
"code generator",
|
|
||||||
"generator",
|
|
||||||
"scaffold",
|
|
||||||
"scaffolding"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/phpunit-bridge",
|
|
||||||
"version": "v3.4.23",
|
|
||||||
"version_normalized": "3.4.23.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/phpunit-bridge.git",
|
|
||||||
"reference": "b539f37134c10edbf85dc0567be4151c56870f5e"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/b539f37134c10edbf85dc0567be4151c56870f5e",
|
|
||||||
"reference": "b539f37134c10edbf85dc0567be4151c56870f5e",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.3"
|
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
|
|
||||||
},
|
|
||||||
"time": "2019-02-16 18:50:26",
|
|
||||||
"bin": [
|
|
||||||
"bin/simple-phpunit"
|
|
||||||
],
|
|
||||||
"type": "symfony-bridge",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "3.4-dev"
|
|
||||||
},
|
|
||||||
"thanks": {
|
|
||||||
"name": "phpunit/phpunit",
|
|
||||||
"url": "https://github.com/sebastianbergmann/phpunit"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"files": [
|
|
||||||
"bootstrap.php"
|
|
||||||
],
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Bridge\\PhpUnit\\": ""
|
|
||||||
},
|
|
||||||
"exclude-from-classmap": [
|
|
||||||
"/Tests/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Nicolas Grekas",
|
|
||||||
"email": "p@tchwork.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony PHPUnit Bridge",
|
|
||||||
"homepage": "https://symfony.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "robrichards/xmlseclibs",
|
|
||||||
"version": "3.0.3",
|
|
||||||
"version_normalized": "3.0.3.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/robrichards/xmlseclibs.git",
|
|
||||||
"reference": "406c68ac9124db033d079284b719958b829cb830"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/406c68ac9124db033d079284b719958b829cb830",
|
|
||||||
"reference": "406c68ac9124db033d079284b719958b829cb830",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-openssl": "*",
|
|
||||||
"php": ">= 5.4"
|
|
||||||
},
|
|
||||||
"time": "2018-11-15 11:59:02",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"RobRichards\\XMLSecLibs\\": "src"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"description": "A PHP library for XML Security",
|
|
||||||
"homepage": "https://github.com/robrichards/xmlseclibs",
|
|
||||||
"keywords": [
|
|
||||||
"security",
|
|
||||||
"signature",
|
|
||||||
"xml",
|
|
||||||
"xmldsig"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "lightsaml/lightsaml",
|
|
||||||
"version": "1.4.1",
|
|
||||||
"version_normalized": "1.4.1.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/lightSAML/lightSAML.git",
|
|
||||||
"reference": "377f04d1fb25f2fb2e72dabeff10b336f1cbe4c5"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/lightSAML/lightSAML/zipball/377f04d1fb25f2fb2e72dabeff10b336f1cbe4c5",
|
|
||||||
"reference": "377f04d1fb25f2fb2e72dabeff10b336f1cbe4c5",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.6",
|
|
||||||
"robrichards/xmlseclibs": "~2.0|~3.0|~4.0",
|
|
||||||
"symfony/event-dispatcher": "~2.3|~3.0|~4.0",
|
|
||||||
"symfony/http-foundation": "~2.3|~3.0|~4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"monolog/monolog": "~1.3",
|
|
||||||
"phpunit/phpunit": ">=5.7",
|
|
||||||
"pimple/pimple": "~3.0",
|
|
||||||
"symfony/css-selector": "~2.3|~3.0|~4.0",
|
|
||||||
"symfony/dom-crawler": "~2.3|~3.0|~4.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"lightsaml/sp-bundle": "Symfony 2 SP security bundle",
|
|
||||||
"lightsaml/symfony-bridge": "Symfony 2 build container bridge"
|
|
||||||
},
|
|
||||||
"time": "2018-05-28 11:21:22",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"LightSaml\\Tests\\": "tests/",
|
|
||||||
"LightSaml\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Milos Tomic",
|
|
||||||
"email": "tmilos@gmail.com",
|
|
||||||
"homepage": "https://github.com/tmilos/",
|
|
||||||
"role": "Developer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Light SAML 2.0 PHP library",
|
|
||||||
"homepage": "https://www.lightsaml.com/",
|
|
||||||
"keywords": [
|
|
||||||
"SAML 2.0",
|
|
||||||
"Single Logout",
|
|
||||||
"Single SignOn",
|
|
||||||
"library",
|
|
||||||
"lightSAML",
|
|
||||||
"php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "lightsaml/symfony-bridge",
|
|
||||||
"version": "1.3.0",
|
|
||||||
"version_normalized": "1.3.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/lightSAML/SymfonyBridgeBundle.git",
|
|
||||||
"reference": "8d3120825032a7468e894d0ae68630f21cd6035b"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/lightSAML/SymfonyBridgeBundle/zipball/8d3120825032a7468e894d0ae68630f21cd6035b",
|
|
||||||
"reference": "8d3120825032a7468e894d0ae68630f21cd6035b",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"lightsaml/lightsaml": "~1.1",
|
|
||||||
"php": ">=5.5.1",
|
|
||||||
"symfony/dependency-injection": "~2.7|~3.0|~4.0",
|
|
||||||
"symfony/framework-bundle": "~2.7|~3.0|~4.0",
|
|
||||||
"symfony/yaml": "~2.7|~3.0|~4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"php-coveralls/php-coveralls": "~2.0",
|
|
||||||
"phpunit/phpunit": "^5.7",
|
|
||||||
"symfony/browser-kit": "~2.7|~3.0|~4.0",
|
|
||||||
"symfony/filesystem": "~2.7|~3.0|~4.0",
|
|
||||||
"symfony/finder": "~2.7|~3.0|~4.0",
|
|
||||||
"symfony/routing": "~2.7|~3.0|~4.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"lightsaml/lightsamp-idp": "If you will be using IDP LightSAML services"
|
|
||||||
},
|
|
||||||
"time": "2018-05-23 08:11:59",
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"LightSaml\\SymfonyBridgeBundle\\Tests\\": "tests/",
|
|
||||||
"LightSaml\\SymfonyBridgeBundle\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Milos Tomic",
|
|
||||||
"email": "tmilos@gmail.com",
|
|
||||||
"homepage": "http://github.com/tmilos",
|
|
||||||
"role": "Developer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Light SAML Symfony bridge bundle",
|
|
||||||
"homepage": "http://www.lightsaml.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "lightsaml/sp-bundle",
|
|
||||||
"version": "1.2.0",
|
|
||||||
"version_normalized": "1.2.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/lightSAML/SpBundle.git",
|
|
||||||
"reference": "b31182d23d93b696305f57f9a66d6770a53d5f8e"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/lightSAML/SpBundle/zipball/b31182d23d93b696305f57f9a66d6770a53d5f8e",
|
|
||||||
"reference": "b31182d23d93b696305f57f9a66d6770a53d5f8e",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"lightsaml/symfony-bridge": "~1.3",
|
|
||||||
"php": ">=5.6",
|
|
||||||
"symfony/framework-bundle": "~2.7|~3.0|~4.0",
|
|
||||||
"symfony/security-bundle": "~2.7|~3.0|~4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^5.7",
|
|
||||||
"sebastian/comparator": "^1.2.4|~2.0|~3.0",
|
|
||||||
"symfony/monolog-bundle": "~2.7|~3.0|~4.0",
|
|
||||||
"symfony/symfony": "~2.7|~3.0|~4.0"
|
|
||||||
},
|
|
||||||
"time": "2018-05-23 09:11:16",
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"LightSaml\\SpBundle\\Tests\\": "tests/",
|
|
||||||
"LightSaml\\SpBundle\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Milos Tomic",
|
|
||||||
"email": "tmilos@gmail.com",
|
|
||||||
"homepage": "http://github.com/tmilos",
|
|
||||||
"role": "Developer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Light SAML2 SP Symfony Bundle",
|
|
||||||
"homepage": "http://www.lightsaml.com/SP-Bundle/"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "jasig/phpcas",
|
|
||||||
"version": "1.3.6",
|
|
||||||
"version_normalized": "1.3.6.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/apereo/phpCAS.git",
|
|
||||||
"reference": "7972833e84f6ee5fa41f1479eab5d855109627f5"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/apereo/phpCAS/zipball/7972833e84f6ee5fa41f1479eab5d855109627f5",
|
|
||||||
"reference": "7972833e84f6ee5fa41f1479eab5d855109627f5",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-curl": "*",
|
|
||||||
"php": ">=5.4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "~3.7.10"
|
|
||||||
},
|
|
||||||
"time": "2018-10-25 20:22:09",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.3.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"source/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"Apache-2.0"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Joachim Fritschi",
|
|
||||||
"homepage": "https://wiki.jasig.org/display/~fritschi"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Adam Franco",
|
|
||||||
"homepage": "https://wiki.jasig.org/display/~adamfranco"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Provides a simple API for authenticating users against a CAS server",
|
|
||||||
"homepage": "https://wiki.jasig.org/display/CASC/phpCAS",
|
|
||||||
"keywords": [
|
|
||||||
"apereo",
|
|
||||||
"cas",
|
|
||||||
"jasig"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
|
@ -1,115 +0,0 @@
|
||||||
## Changelog
|
|
||||||
|
|
||||||
|
|
||||||
### 1.4.0
|
|
||||||
|
|
||||||
This release fix an issue were some annotations could be not loaded if the namespace in the use statement started with a backslash.
|
|
||||||
It also update the tests and drop the support for php 5.X
|
|
||||||
|
|
||||||
- [115: Missing annotations with the latest composer version](https://github.com/doctrine/annotations/issues/115) thanks to @pascalporedda
|
|
||||||
- [120: Missing annotations with the latest composer version](https://github.com/doctrine/annotations/pull/120) thanks to @gnat42
|
|
||||||
- [121: Adding a more detailed explanation of the test](https://github.com/doctrine/annotations/pull/121) thanks to @mikeSimonson
|
|
||||||
- [101: Test annotation parameters containing space](https://github.com/doctrine/annotations/pull/101) thanks to @mikeSimonson
|
|
||||||
- [111: Cleanup: move to correct phpunit assertions](https://github.com/doctrine/annotations/pull/111) thanks to @Ocramius
|
|
||||||
- [112: Removes support for PHP 5.x](https://github.com/doctrine/annotations/pull/112) thanks to @railto
|
|
||||||
- [113: bumped phpunit version to 5.7](https://github.com/doctrine/annotations/pull/113) thanks to @gabbydgab
|
|
||||||
- [114: Enhancement: Use SVG Travis build badge](https://github.com/doctrine/annotations/pull/114) thanks to @localheinz
|
|
||||||
- [118: Integrating PHPStan](https://github.com/doctrine/annotations/pull/118) thanks to @ondrejmirtes
|
|
||||||
|
|
||||||
### 1.3.1 - 2016-12-30
|
|
||||||
|
|
||||||
This release fixes an issue with ignored annotations that were already
|
|
||||||
autoloaded, causing the `SimpleAnnotationReader` to pick them up
|
|
||||||
anyway. [#110](https://github.com/doctrine/annotations/pull/110)
|
|
||||||
|
|
||||||
Additionally, an issue was fixed in the `CachedReader`, which was
|
|
||||||
not correctly checking the freshness of cached annotations when
|
|
||||||
traits were defined on a class. [#105](https://github.com/doctrine/annotations/pull/105)
|
|
||||||
|
|
||||||
Total issues resolved: **2**
|
|
||||||
|
|
||||||
- [105: Return single max timestamp](https://github.com/doctrine/annotations/pull/105)
|
|
||||||
- [110: setIgnoreNotImportedAnnotations(true) didn’t work for existing classes](https://github.com/doctrine/annotations/pull/110)
|
|
||||||
|
|
||||||
### 1.3.0
|
|
||||||
|
|
||||||
This release introduces a PHP version bump. `doctrine/annotations` now requires PHP
|
|
||||||
5.6 or later to be installed.
|
|
||||||
|
|
||||||
A series of additional improvements have been introduced:
|
|
||||||
|
|
||||||
* support for PHP 7 "grouped use statements"
|
|
||||||
* support for ignoring entire namespace names
|
|
||||||
via `Doctrine\Common\Annotations\AnnotationReader::addGlobalIgnoredNamespace()` and
|
|
||||||
`Doctrine\Common\Annotations\DocParser::setIgnoredAnnotationNamespaces()`. This will
|
|
||||||
allow you to ignore annotations from namespaces that you cannot autoload
|
|
||||||
* testing all parent classes and interfaces when checking if the annotation cache
|
|
||||||
in the `CachedReader` is fresh
|
|
||||||
* simplifying the cache keys used by the `CachedReader`: keys are no longer artificially
|
|
||||||
namespaced, since `Doctrine\Common\Cache` already supports that
|
|
||||||
* corrected parsing of multibyte strings when `mbstring.func_overload` is enabled
|
|
||||||
* corrected parsing of annotations when `"\t"` is put before the first annotation
|
|
||||||
in a docblock
|
|
||||||
* allow skipping non-imported annotations when a custom `DocParser` is passed to
|
|
||||||
the `AnnotationReader` constructor
|
|
||||||
|
|
||||||
Total issues resolved: **15**
|
|
||||||
|
|
||||||
- [45: DocParser can now ignore whole namespaces](https://github.com/doctrine/annotations/pull/45)
|
|
||||||
- [57: Switch to the docker-based infrastructure on Travis](https://github.com/doctrine/annotations/pull/57)
|
|
||||||
- [59: opcache.load_comments has been removed from PHP 7](https://github.com/doctrine/annotations/pull/59)
|
|
||||||
- [62: [CachedReader\ Test traits and parent class to see if cache is fresh](https://github.com/doctrine/annotations/pull/62)
|
|
||||||
- [65: Remove cache salt making key unnecessarily long](https://github.com/doctrine/annotations/pull/65)
|
|
||||||
- [66: Fix of incorrect parsing multibyte strings](https://github.com/doctrine/annotations/pull/66)
|
|
||||||
- [68: Annotations that are indented by tab are not processed.](https://github.com/doctrine/annotations/issues/68)
|
|
||||||
- [69: Support for Group Use Statements](https://github.com/doctrine/annotations/pull/69)
|
|
||||||
- [70: Allow tab character before first annotation in DocBlock](https://github.com/doctrine/annotations/pull/70)
|
|
||||||
- [74: Ignore not registered annotations fix](https://github.com/doctrine/annotations/pull/74)
|
|
||||||
- [92: Added tests for AnnotationRegistry class.](https://github.com/doctrine/annotations/pull/92)
|
|
||||||
- [96: Fix/#62 check trait and parent class ttl in annotations](https://github.com/doctrine/annotations/pull/96)
|
|
||||||
- [97: Feature - #45 - allow ignoring entire namespaces](https://github.com/doctrine/annotations/pull/97)
|
|
||||||
- [98: Enhancement/#65 remove cache salt from cached reader](https://github.com/doctrine/annotations/pull/98)
|
|
||||||
- [99: Fix - #70 - allow tab character before first annotation in docblock](https://github.com/doctrine/annotations/pull/99)
|
|
||||||
|
|
||||||
### 1.2.4
|
|
||||||
|
|
||||||
Total issues resolved: **1**
|
|
||||||
|
|
||||||
- [51: FileCacheReader::saveCacheFile::unlink fix](https://github.com/doctrine/annotations/pull/51)
|
|
||||||
|
|
||||||
### 1.2.3
|
|
||||||
|
|
||||||
Total issues resolved: [**2**](https://github.com/doctrine/annotations/milestones/v1.2.3)
|
|
||||||
|
|
||||||
- [49: #46 - applying correct `chmod()` to generated cache file](https://github.com/doctrine/annotations/pull/49)
|
|
||||||
- [50: Hotfix: match escaped quotes (revert #44)](https://github.com/doctrine/annotations/pull/50)
|
|
||||||
|
|
||||||
### 1.2.2
|
|
||||||
|
|
||||||
Total issues resolved: **4**
|
|
||||||
|
|
||||||
- [43: Exclude files from distribution with .gitattributes](https://github.com/doctrine/annotations/pull/43)
|
|
||||||
- [44: Update DocLexer.php](https://github.com/doctrine/annotations/pull/44)
|
|
||||||
- [46: A plain "file_put_contents" can cause havoc](https://github.com/doctrine/annotations/pull/46)
|
|
||||||
- [48: Deprecating the `FileCacheReader` in 1.2.2: will be removed in 2.0.0](https://github.com/doctrine/annotations/pull/48)
|
|
||||||
|
|
||||||
### 1.2.1
|
|
||||||
|
|
||||||
Total issues resolved: **4**
|
|
||||||
|
|
||||||
- [38: fixes doctrine/common#326](https://github.com/doctrine/annotations/pull/38)
|
|
||||||
- [39: Remove superfluous NS](https://github.com/doctrine/annotations/pull/39)
|
|
||||||
- [41: Warn if load_comments is not enabled.](https://github.com/doctrine/annotations/pull/41)
|
|
||||||
- [42: Clean up unused uses](https://github.com/doctrine/annotations/pull/42)
|
|
||||||
|
|
||||||
### 1.2.0
|
|
||||||
|
|
||||||
* HHVM support
|
|
||||||
* Allowing dangling comma in annotations
|
|
||||||
* Excluded annotations are no longer autoloaded
|
|
||||||
* Importing namespaces also in traits
|
|
||||||
* Added support for `::class` 5.5-style constant, works also in 5.3 and 5.4
|
|
||||||
|
|
||||||
### 1.1.0
|
|
||||||
|
|
||||||
* Add Exception when ZendOptimizer+ or Opcache is configured to drop comments
|
|
|
@ -1,19 +0,0 @@
|
||||||
Copyright (c) 2006-2013 Doctrine Project
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
||||||
this software and associated documentation files (the "Software"), to deal in
|
|
||||||
the Software without restriction, including without limitation the rights to
|
|
||||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
||||||
of the Software, and to permit persons to whom the Software is furnished to do
|
|
||||||
so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
|
@ -1,17 +0,0 @@
|
||||||
# Doctrine Annotations
|
|
||||||
|
|
||||||
[![Build Status](https://travis-ci.org/doctrine/annotations.svg?branch=master)](https://travis-ci.org/doctrine/annotations)
|
|
||||||
[![Dependency Status](https://www.versioneye.com/package/php--doctrine--annotations/badge.png)](https://www.versioneye.com/package/php--doctrine--annotations)
|
|
||||||
[![Reference Status](https://www.versioneye.com/php/doctrine:annotations/reference_badge.svg)](https://www.versioneye.com/php/doctrine:annotations/references)
|
|
||||||
[![Total Downloads](https://poser.pugx.org/doctrine/annotations/downloads.png)](https://packagist.org/packages/doctrine/annotations)
|
|
||||||
[![Latest Stable Version](https://poser.pugx.org/doctrine/annotations/v/stable.png)](https://packagist.org/packages/doctrine/annotations)
|
|
||||||
|
|
||||||
Docblock Annotations Parser library (extracted from [Doctrine Common](https://github.com/doctrine/common)).
|
|
||||||
|
|
||||||
## Documentation
|
|
||||||
|
|
||||||
See the [doctrine-project website](http://docs.doctrine-project.org/projects/doctrine-common/en/latest/reference/annotations.html).
|
|
||||||
|
|
||||||
## Changelog
|
|
||||||
|
|
||||||
See [CHANGELOG.md](CHANGELOG.md).
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "doctrine/annotations",
|
|
||||||
"type": "library",
|
|
||||||
"description": "Docblock Annotations Parser",
|
|
||||||
"keywords": ["annotations", "docblock", "parser"],
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"license": "MIT",
|
|
||||||
"authors": [
|
|
||||||
{"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
|
|
||||||
{"name": "Roman Borschel", "email": "roman@code-factory.org"},
|
|
||||||
{"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"},
|
|
||||||
{"name": "Jonathan Wage", "email": "jonwage@gmail.com"},
|
|
||||||
{"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"}
|
|
||||||
],
|
|
||||||
"require": {
|
|
||||||
"php": "^5.6 || ^7.0",
|
|
||||||
"doctrine/lexer": "1.*"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"doctrine/cache": "1.*",
|
|
||||||
"phpunit/phpunit": "^5.7"
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": { "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" }
|
|
||||||
},
|
|
||||||
"autoload-dev": {
|
|
||||||
"psr-4": { "Doctrine\\Tests\\Common\\Annotations\\": "tests/Doctrine/Tests/Common/Annotations" }
|
|
||||||
},
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.4.x-dev"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,79 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Annotations class.
|
|
||||||
*
|
|
||||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
|
||||||
* @author Jonathan Wage <jonwage@gmail.com>
|
|
||||||
* @author Roman Borschel <roman@code-factory.org>
|
|
||||||
*/
|
|
||||||
class Annotation
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Value property. Common among all derived classes.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
public $value;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* @param array $data Key-value for properties to be defined in this class.
|
|
||||||
*/
|
|
||||||
public final function __construct(array $data)
|
|
||||||
{
|
|
||||||
foreach ($data as $key => $value) {
|
|
||||||
$this->$key = $value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Error handler for unknown property accessor in Annotation class.
|
|
||||||
*
|
|
||||||
* @param string $name Unknown property name.
|
|
||||||
*
|
|
||||||
* @throws \BadMethodCallException
|
|
||||||
*/
|
|
||||||
public function __get($name)
|
|
||||||
{
|
|
||||||
throw new \BadMethodCallException(
|
|
||||||
sprintf("Unknown property '%s' on annotation '%s'.", $name, get_class($this))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Error handler for unknown property mutator in Annotation class.
|
|
||||||
*
|
|
||||||
* @param string $name Unknown property name.
|
|
||||||
* @param mixed $value Property value.
|
|
||||||
*
|
|
||||||
* @throws \BadMethodCallException
|
|
||||||
*/
|
|
||||||
public function __set($name, $value)
|
|
||||||
{
|
|
||||||
throw new \BadMethodCallException(
|
|
||||||
sprintf("Unknown property '%s' on annotation '%s'.", $name, get_class($this))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations\Annotation;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Annotation that can be used to signal to the parser
|
|
||||||
* to check the attribute type during the parsing process.
|
|
||||||
*
|
|
||||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
|
||||||
*
|
|
||||||
* @Annotation
|
|
||||||
*/
|
|
||||||
final class Attribute
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
public $name;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
public $type;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var boolean
|
|
||||||
*/
|
|
||||||
public $required = false;
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations\Annotation;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Annotation that can be used to signal to the parser
|
|
||||||
* to check the types of all declared attributes during the parsing process.
|
|
||||||
*
|
|
||||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
|
||||||
*
|
|
||||||
* @Annotation
|
|
||||||
*/
|
|
||||||
final class Attributes
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var array<Doctrine\Common\Annotations\Annotation\Attribute>
|
|
||||||
*/
|
|
||||||
public $value;
|
|
||||||
}
|
|
|
@ -1,84 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations\Annotation;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Annotation that can be used to signal to the parser
|
|
||||||
* to check the available values during the parsing process.
|
|
||||||
*
|
|
||||||
* @since 2.4
|
|
||||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
|
||||||
*
|
|
||||||
* @Annotation
|
|
||||||
* @Attributes({
|
|
||||||
* @Attribute("value", required = true, type = "array"),
|
|
||||||
* @Attribute("literal", required = false, type = "array")
|
|
||||||
* })
|
|
||||||
*/
|
|
||||||
final class Enum
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
public $value;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Literal target declaration.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
public $literal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Annotation constructor.
|
|
||||||
*
|
|
||||||
* @param array $values
|
|
||||||
*
|
|
||||||
* @throws \InvalidArgumentException
|
|
||||||
*/
|
|
||||||
public function __construct(array $values)
|
|
||||||
{
|
|
||||||
if ( ! isset($values['literal'])) {
|
|
||||||
$values['literal'] = array();
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($values['value'] as $var) {
|
|
||||||
if( ! is_scalar($var)) {
|
|
||||||
throw new \InvalidArgumentException(sprintf(
|
|
||||||
'@Enum supports only scalar values "%s" given.',
|
|
||||||
is_object($var) ? get_class($var) : gettype($var)
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($values['literal'] as $key => $var) {
|
|
||||||
if( ! in_array($key, $values['value'])) {
|
|
||||||
throw new \InvalidArgumentException(sprintf(
|
|
||||||
'Undefined enumerator value "%s" for literal "%s".',
|
|
||||||
$key , $var
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->value = $values['value'];
|
|
||||||
$this->literal = $values['literal'];
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations\Annotation;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Annotation that can be used to signal to the parser to ignore specific
|
|
||||||
* annotations during the parsing process.
|
|
||||||
*
|
|
||||||
* @Annotation
|
|
||||||
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
|
|
||||||
*/
|
|
||||||
final class IgnoreAnnotation
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
public $names;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* @param array $values
|
|
||||||
*
|
|
||||||
* @throws \RuntimeException
|
|
||||||
*/
|
|
||||||
public function __construct(array $values)
|
|
||||||
{
|
|
||||||
if (is_string($values['value'])) {
|
|
||||||
$values['value'] = array($values['value']);
|
|
||||||
}
|
|
||||||
if (!is_array($values['value'])) {
|
|
||||||
throw new \RuntimeException(sprintf('@IgnoreAnnotation expects either a string name, or an array of strings, but got %s.', json_encode($values['value'])));
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->names = $values['value'];
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,33 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations\Annotation;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Annotation that can be used to signal to the parser
|
|
||||||
* to check if that attribute is required during the parsing process.
|
|
||||||
*
|
|
||||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
|
||||||
*
|
|
||||||
* @Annotation
|
|
||||||
*/
|
|
||||||
final class Required
|
|
||||||
{
|
|
||||||
}
|
|
|
@ -1,107 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations\Annotation;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Annotation that can be used to signal to the parser
|
|
||||||
* to check the annotation target during the parsing process.
|
|
||||||
*
|
|
||||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
|
||||||
*
|
|
||||||
* @Annotation
|
|
||||||
*/
|
|
||||||
final class Target
|
|
||||||
{
|
|
||||||
const TARGET_CLASS = 1;
|
|
||||||
const TARGET_METHOD = 2;
|
|
||||||
const TARGET_PROPERTY = 4;
|
|
||||||
const TARGET_ANNOTATION = 8;
|
|
||||||
const TARGET_ALL = 15;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private static $map = array(
|
|
||||||
'ALL' => self::TARGET_ALL,
|
|
||||||
'CLASS' => self::TARGET_CLASS,
|
|
||||||
'METHOD' => self::TARGET_METHOD,
|
|
||||||
'PROPERTY' => self::TARGET_PROPERTY,
|
|
||||||
'ANNOTATION' => self::TARGET_ANNOTATION,
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
public $value;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Targets as bitmask.
|
|
||||||
*
|
|
||||||
* @var integer
|
|
||||||
*/
|
|
||||||
public $targets;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Literal target declaration.
|
|
||||||
*
|
|
||||||
* @var integer
|
|
||||||
*/
|
|
||||||
public $literal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Annotation constructor.
|
|
||||||
*
|
|
||||||
* @param array $values
|
|
||||||
*
|
|
||||||
* @throws \InvalidArgumentException
|
|
||||||
*/
|
|
||||||
public function __construct(array $values)
|
|
||||||
{
|
|
||||||
if (!isset($values['value'])){
|
|
||||||
$values['value'] = null;
|
|
||||||
}
|
|
||||||
if (is_string($values['value'])){
|
|
||||||
$values['value'] = array($values['value']);
|
|
||||||
}
|
|
||||||
if (!is_array($values['value'])){
|
|
||||||
throw new \InvalidArgumentException(
|
|
||||||
sprintf('@Target expects either a string value, or an array of strings, "%s" given.',
|
|
||||||
is_object($values['value']) ? get_class($values['value']) : gettype($values['value'])
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$bitmask = 0;
|
|
||||||
foreach ($values['value'] as $literal) {
|
|
||||||
if(!isset(self::$map[$literal])){
|
|
||||||
throw new \InvalidArgumentException(
|
|
||||||
sprintf('Invalid Target "%s". Available targets: [%s]',
|
|
||||||
$literal, implode(', ', array_keys(self::$map)))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
$bitmask |= self::$map[$literal];
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->targets = $bitmask;
|
|
||||||
$this->value = $values['value'];
|
|
||||||
$this->literal = implode(', ', $this->value);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,197 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Description of AnnotationException
|
|
||||||
*
|
|
||||||
* @since 2.0
|
|
||||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
|
||||||
* @author Jonathan Wage <jonwage@gmail.com>
|
|
||||||
* @author Roman Borschel <roman@code-factory.org>
|
|
||||||
*/
|
|
||||||
class AnnotationException extends \Exception
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Creates a new AnnotationException describing a Syntax error.
|
|
||||||
*
|
|
||||||
* @param string $message Exception message
|
|
||||||
*
|
|
||||||
* @return AnnotationException
|
|
||||||
*/
|
|
||||||
public static function syntaxError($message)
|
|
||||||
{
|
|
||||||
return new self('[Syntax Error] ' . $message);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new AnnotationException describing a Semantical error.
|
|
||||||
*
|
|
||||||
* @param string $message Exception message
|
|
||||||
*
|
|
||||||
* @return AnnotationException
|
|
||||||
*/
|
|
||||||
public static function semanticalError($message)
|
|
||||||
{
|
|
||||||
return new self('[Semantical Error] ' . $message);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new AnnotationException describing an error which occurred during
|
|
||||||
* the creation of the annotation.
|
|
||||||
*
|
|
||||||
* @since 2.2
|
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
*
|
|
||||||
* @return AnnotationException
|
|
||||||
*/
|
|
||||||
public static function creationError($message)
|
|
||||||
{
|
|
||||||
return new self('[Creation Error] ' . $message);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new AnnotationException describing a type error.
|
|
||||||
*
|
|
||||||
* @since 1.1
|
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
*
|
|
||||||
* @return AnnotationException
|
|
||||||
*/
|
|
||||||
public static function typeError($message)
|
|
||||||
{
|
|
||||||
return new self('[Type Error] ' . $message);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new AnnotationException describing a constant semantical error.
|
|
||||||
*
|
|
||||||
* @since 2.3
|
|
||||||
*
|
|
||||||
* @param string $identifier
|
|
||||||
* @param string $context
|
|
||||||
*
|
|
||||||
* @return AnnotationException
|
|
||||||
*/
|
|
||||||
public static function semanticalErrorConstants($identifier, $context = null)
|
|
||||||
{
|
|
||||||
return self::semanticalError(sprintf(
|
|
||||||
"Couldn't find constant %s%s.",
|
|
||||||
$identifier,
|
|
||||||
$context ? ', ' . $context : ''
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new AnnotationException describing an type error of an attribute.
|
|
||||||
*
|
|
||||||
* @since 2.2
|
|
||||||
*
|
|
||||||
* @param string $attributeName
|
|
||||||
* @param string $annotationName
|
|
||||||
* @param string $context
|
|
||||||
* @param string $expected
|
|
||||||
* @param mixed $actual
|
|
||||||
*
|
|
||||||
* @return AnnotationException
|
|
||||||
*/
|
|
||||||
public static function attributeTypeError($attributeName, $annotationName, $context, $expected, $actual)
|
|
||||||
{
|
|
||||||
return self::typeError(sprintf(
|
|
||||||
'Attribute "%s" of @%s declared on %s expects %s, but got %s.',
|
|
||||||
$attributeName,
|
|
||||||
$annotationName,
|
|
||||||
$context,
|
|
||||||
$expected,
|
|
||||||
is_object($actual) ? 'an instance of ' . get_class($actual) : gettype($actual)
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new AnnotationException describing an required error of an attribute.
|
|
||||||
*
|
|
||||||
* @since 2.2
|
|
||||||
*
|
|
||||||
* @param string $attributeName
|
|
||||||
* @param string $annotationName
|
|
||||||
* @param string $context
|
|
||||||
* @param string $expected
|
|
||||||
*
|
|
||||||
* @return AnnotationException
|
|
||||||
*/
|
|
||||||
public static function requiredError($attributeName, $annotationName, $context, $expected)
|
|
||||||
{
|
|
||||||
return self::typeError(sprintf(
|
|
||||||
'Attribute "%s" of @%s declared on %s expects %s. This value should not be null.',
|
|
||||||
$attributeName,
|
|
||||||
$annotationName,
|
|
||||||
$context,
|
|
||||||
$expected
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new AnnotationException describing a invalid enummerator.
|
|
||||||
*
|
|
||||||
* @since 2.4
|
|
||||||
*
|
|
||||||
* @param string $attributeName
|
|
||||||
* @param string $annotationName
|
|
||||||
* @param string $context
|
|
||||||
* @param array $available
|
|
||||||
* @param mixed $given
|
|
||||||
*
|
|
||||||
* @return AnnotationException
|
|
||||||
*/
|
|
||||||
public static function enumeratorError($attributeName, $annotationName, $context, $available, $given)
|
|
||||||
{
|
|
||||||
return new self(sprintf(
|
|
||||||
'[Enum Error] Attribute "%s" of @%s declared on %s accept only [%s], but got %s.',
|
|
||||||
$attributeName,
|
|
||||||
$annotationName,
|
|
||||||
$context,
|
|
||||||
implode(', ', $available),
|
|
||||||
is_object($given) ? get_class($given) : $given
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return AnnotationException
|
|
||||||
*/
|
|
||||||
public static function optimizerPlusSaveComments()
|
|
||||||
{
|
|
||||||
return new self(
|
|
||||||
"You have to enable opcache.save_comments=1 or zend_optimizerplus.save_comments=1."
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return AnnotationException
|
|
||||||
*/
|
|
||||||
public static function optimizerPlusLoadComments()
|
|
||||||
{
|
|
||||||
return new self(
|
|
||||||
"You have to enable opcache.load_comments=1 or zend_optimizerplus.load_comments=1."
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,421 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations;
|
|
||||||
|
|
||||||
use Doctrine\Common\Annotations\Annotation\IgnoreAnnotation;
|
|
||||||
use Doctrine\Common\Annotations\Annotation\Target;
|
|
||||||
use ReflectionClass;
|
|
||||||
use ReflectionMethod;
|
|
||||||
use ReflectionProperty;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A reader for docblock annotations.
|
|
||||||
*
|
|
||||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
|
||||||
* @author Jonathan Wage <jonwage@gmail.com>
|
|
||||||
* @author Roman Borschel <roman@code-factory.org>
|
|
||||||
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
|
|
||||||
*/
|
|
||||||
class AnnotationReader implements Reader
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Global map for imports.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private static $globalImports = array(
|
|
||||||
'ignoreannotation' => 'Doctrine\Common\Annotations\Annotation\IgnoreAnnotation',
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A list with annotations that are not causing exceptions when not resolved to an annotation class.
|
|
||||||
*
|
|
||||||
* The names are case sensitive.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private static $globalIgnoredNames = array(
|
|
||||||
// Annotation tags
|
|
||||||
'Annotation' => true, 'Attribute' => true, 'Attributes' => true,
|
|
||||||
/* Can we enable this? 'Enum' => true, */
|
|
||||||
'Required' => true,
|
|
||||||
'Target' => true,
|
|
||||||
// Widely used tags (but not existent in phpdoc)
|
|
||||||
'fix' => true , 'fixme' => true,
|
|
||||||
'override' => true,
|
|
||||||
// PHPDocumentor 1 tags
|
|
||||||
'abstract'=> true, 'access'=> true,
|
|
||||||
'code' => true,
|
|
||||||
'deprec'=> true,
|
|
||||||
'endcode' => true, 'exception'=> true,
|
|
||||||
'final'=> true,
|
|
||||||
'ingroup' => true, 'inheritdoc'=> true, 'inheritDoc'=> true,
|
|
||||||
'magic' => true,
|
|
||||||
'name'=> true,
|
|
||||||
'toc' => true, 'tutorial'=> true,
|
|
||||||
'private' => true,
|
|
||||||
'static'=> true, 'staticvar'=> true, 'staticVar'=> true,
|
|
||||||
'throw' => true,
|
|
||||||
// PHPDocumentor 2 tags.
|
|
||||||
'api' => true, 'author'=> true,
|
|
||||||
'category'=> true, 'copyright'=> true,
|
|
||||||
'deprecated'=> true,
|
|
||||||
'example'=> true,
|
|
||||||
'filesource'=> true,
|
|
||||||
'global'=> true,
|
|
||||||
'ignore'=> true, /* Can we enable this? 'index' => true, */ 'internal'=> true,
|
|
||||||
'license'=> true, 'link'=> true,
|
|
||||||
'method' => true,
|
|
||||||
'package'=> true, 'param'=> true, 'property' => true, 'property-read' => true, 'property-write' => true,
|
|
||||||
'return'=> true,
|
|
||||||
'see'=> true, 'since'=> true, 'source' => true, 'subpackage'=> true,
|
|
||||||
'throws'=> true, 'todo'=> true, 'TODO'=> true,
|
|
||||||
'usedby'=> true, 'uses' => true,
|
|
||||||
'var'=> true, 'version'=> true,
|
|
||||||
// PHPUnit tags
|
|
||||||
'codeCoverageIgnore' => true, 'codeCoverageIgnoreStart' => true, 'codeCoverageIgnoreEnd' => true,
|
|
||||||
// PHPCheckStyle
|
|
||||||
'SuppressWarnings' => true,
|
|
||||||
// PHPStorm
|
|
||||||
'noinspection' => true,
|
|
||||||
// PEAR
|
|
||||||
'package_version' => true,
|
|
||||||
// PlantUML
|
|
||||||
'startuml' => true, 'enduml' => true,
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A list with annotations that are not causing exceptions when not resolved to an annotation class.
|
|
||||||
*
|
|
||||||
* The names are case sensitive.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private static $globalIgnoredNamespaces = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add a new annotation to the globally ignored annotation names with regard to exception handling.
|
|
||||||
*
|
|
||||||
* @param string $name
|
|
||||||
*/
|
|
||||||
static public function addGlobalIgnoredName($name)
|
|
||||||
{
|
|
||||||
self::$globalIgnoredNames[$name] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add a new annotation to the globally ignored annotation namespaces with regard to exception handling.
|
|
||||||
*
|
|
||||||
* @param string $namespace
|
|
||||||
*/
|
|
||||||
static public function addGlobalIgnoredNamespace($namespace)
|
|
||||||
{
|
|
||||||
self::$globalIgnoredNamespaces[$namespace] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Annotations parser.
|
|
||||||
*
|
|
||||||
* @var \Doctrine\Common\Annotations\DocParser
|
|
||||||
*/
|
|
||||||
private $parser;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Annotations parser used to collect parsing metadata.
|
|
||||||
*
|
|
||||||
* @var \Doctrine\Common\Annotations\DocParser
|
|
||||||
*/
|
|
||||||
private $preParser;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* PHP parser used to collect imports.
|
|
||||||
*
|
|
||||||
* @var \Doctrine\Common\Annotations\PhpParser
|
|
||||||
*/
|
|
||||||
private $phpParser;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* In-memory cache mechanism to store imported annotations per class.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private $imports = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* In-memory cache mechanism to store ignored annotations per class.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private $ignoredAnnotationNames = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* Initializes a new AnnotationReader.
|
|
||||||
*
|
|
||||||
* @param DocParser $parser
|
|
||||||
*/
|
|
||||||
public function __construct(DocParser $parser = null)
|
|
||||||
{
|
|
||||||
if (extension_loaded('Zend Optimizer+') && (ini_get('zend_optimizerplus.save_comments') === "0" || ini_get('opcache.save_comments') === "0")) {
|
|
||||||
throw AnnotationException::optimizerPlusSaveComments();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (extension_loaded('Zend OPcache') && ini_get('opcache.save_comments') == 0) {
|
|
||||||
throw AnnotationException::optimizerPlusSaveComments();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (PHP_VERSION_ID < 70000) {
|
|
||||||
if (extension_loaded('Zend Optimizer+') && (ini_get('zend_optimizerplus.load_comments') === "0" || ini_get('opcache.load_comments') === "0")) {
|
|
||||||
throw AnnotationException::optimizerPlusLoadComments();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (extension_loaded('Zend OPcache') && ini_get('opcache.load_comments') == 0) {
|
|
||||||
throw AnnotationException::optimizerPlusLoadComments();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
AnnotationRegistry::registerFile(__DIR__ . '/Annotation/IgnoreAnnotation.php');
|
|
||||||
|
|
||||||
$this->parser = $parser ?: new DocParser();
|
|
||||||
|
|
||||||
$this->preParser = new DocParser;
|
|
||||||
|
|
||||||
$this->preParser->setImports(self::$globalImports);
|
|
||||||
$this->preParser->setIgnoreNotImportedAnnotations(true);
|
|
||||||
|
|
||||||
$this->phpParser = new PhpParser;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getClassAnnotations(ReflectionClass $class)
|
|
||||||
{
|
|
||||||
$this->parser->setTarget(Target::TARGET_CLASS);
|
|
||||||
$this->parser->setImports($this->getClassImports($class));
|
|
||||||
$this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class));
|
|
||||||
$this->parser->setIgnoredAnnotationNamespaces(self::$globalIgnoredNamespaces);
|
|
||||||
|
|
||||||
return $this->parser->parse($class->getDocComment(), 'class ' . $class->getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getClassAnnotation(ReflectionClass $class, $annotationName)
|
|
||||||
{
|
|
||||||
$annotations = $this->getClassAnnotations($class);
|
|
||||||
|
|
||||||
foreach ($annotations as $annotation) {
|
|
||||||
if ($annotation instanceof $annotationName) {
|
|
||||||
return $annotation;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getPropertyAnnotations(ReflectionProperty $property)
|
|
||||||
{
|
|
||||||
$class = $property->getDeclaringClass();
|
|
||||||
$context = 'property ' . $class->getName() . "::\$" . $property->getName();
|
|
||||||
|
|
||||||
$this->parser->setTarget(Target::TARGET_PROPERTY);
|
|
||||||
$this->parser->setImports($this->getPropertyImports($property));
|
|
||||||
$this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class));
|
|
||||||
$this->parser->setIgnoredAnnotationNamespaces(self::$globalIgnoredNamespaces);
|
|
||||||
|
|
||||||
return $this->parser->parse($property->getDocComment(), $context);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getPropertyAnnotation(ReflectionProperty $property, $annotationName)
|
|
||||||
{
|
|
||||||
$annotations = $this->getPropertyAnnotations($property);
|
|
||||||
|
|
||||||
foreach ($annotations as $annotation) {
|
|
||||||
if ($annotation instanceof $annotationName) {
|
|
||||||
return $annotation;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getMethodAnnotations(ReflectionMethod $method)
|
|
||||||
{
|
|
||||||
$class = $method->getDeclaringClass();
|
|
||||||
$context = 'method ' . $class->getName() . '::' . $method->getName() . '()';
|
|
||||||
|
|
||||||
$this->parser->setTarget(Target::TARGET_METHOD);
|
|
||||||
$this->parser->setImports($this->getMethodImports($method));
|
|
||||||
$this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class));
|
|
||||||
$this->parser->setIgnoredAnnotationNamespaces(self::$globalIgnoredNamespaces);
|
|
||||||
|
|
||||||
return $this->parser->parse($method->getDocComment(), $context);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getMethodAnnotation(ReflectionMethod $method, $annotationName)
|
|
||||||
{
|
|
||||||
$annotations = $this->getMethodAnnotations($method);
|
|
||||||
|
|
||||||
foreach ($annotations as $annotation) {
|
|
||||||
if ($annotation instanceof $annotationName) {
|
|
||||||
return $annotation;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the ignored annotations for the given class.
|
|
||||||
*
|
|
||||||
* @param \ReflectionClass $class
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private function getIgnoredAnnotationNames(ReflectionClass $class)
|
|
||||||
{
|
|
||||||
$name = $class->getName();
|
|
||||||
if (isset($this->ignoredAnnotationNames[$name])) {
|
|
||||||
return $this->ignoredAnnotationNames[$name];
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->collectParsingMetadata($class);
|
|
||||||
|
|
||||||
return $this->ignoredAnnotationNames[$name];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves imports.
|
|
||||||
*
|
|
||||||
* @param \ReflectionClass $class
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private function getClassImports(ReflectionClass $class)
|
|
||||||
{
|
|
||||||
$name = $class->getName();
|
|
||||||
if (isset($this->imports[$name])) {
|
|
||||||
return $this->imports[$name];
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->collectParsingMetadata($class);
|
|
||||||
|
|
||||||
return $this->imports[$name];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves imports for methods.
|
|
||||||
*
|
|
||||||
* @param \ReflectionMethod $method
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private function getMethodImports(ReflectionMethod $method)
|
|
||||||
{
|
|
||||||
$class = $method->getDeclaringClass();
|
|
||||||
$classImports = $this->getClassImports($class);
|
|
||||||
if (!method_exists($class, 'getTraits')) {
|
|
||||||
return $classImports;
|
|
||||||
}
|
|
||||||
|
|
||||||
$traitImports = array();
|
|
||||||
|
|
||||||
foreach ($class->getTraits() as $trait) {
|
|
||||||
if ($trait->hasMethod($method->getName())
|
|
||||||
&& $trait->getFileName() === $method->getFileName()
|
|
||||||
) {
|
|
||||||
$traitImports = array_merge($traitImports, $this->phpParser->parseClass($trait));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return array_merge($classImports, $traitImports);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves imports for properties.
|
|
||||||
*
|
|
||||||
* @param \ReflectionProperty $property
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private function getPropertyImports(ReflectionProperty $property)
|
|
||||||
{
|
|
||||||
$class = $property->getDeclaringClass();
|
|
||||||
$classImports = $this->getClassImports($class);
|
|
||||||
if (!method_exists($class, 'getTraits')) {
|
|
||||||
return $classImports;
|
|
||||||
}
|
|
||||||
|
|
||||||
$traitImports = array();
|
|
||||||
|
|
||||||
foreach ($class->getTraits() as $trait) {
|
|
||||||
if ($trait->hasProperty($property->getName())) {
|
|
||||||
$traitImports = array_merge($traitImports, $this->phpParser->parseClass($trait));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return array_merge($classImports, $traitImports);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Collects parsing metadata for a given class.
|
|
||||||
*
|
|
||||||
* @param \ReflectionClass $class
|
|
||||||
*/
|
|
||||||
private function collectParsingMetadata(ReflectionClass $class)
|
|
||||||
{
|
|
||||||
$ignoredAnnotationNames = self::$globalIgnoredNames;
|
|
||||||
$annotations = $this->preParser->parse($class->getDocComment(), 'class ' . $class->name);
|
|
||||||
|
|
||||||
foreach ($annotations as $annotation) {
|
|
||||||
if ($annotation instanceof IgnoreAnnotation) {
|
|
||||||
foreach ($annotation->names AS $annot) {
|
|
||||||
$ignoredAnnotationNames[$annot] = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$name = $class->getName();
|
|
||||||
|
|
||||||
$this->imports[$name] = array_merge(
|
|
||||||
self::$globalImports,
|
|
||||||
$this->phpParser->parseClass($class),
|
|
||||||
array('__NAMESPACE__' => $class->getNamespaceName())
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->ignoredAnnotationNames[$name] = $ignoredAnnotationNames;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,151 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* AnnotationRegistry.
|
|
||||||
*/
|
|
||||||
final class AnnotationRegistry
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* A map of namespaces to use for autoloading purposes based on a PSR-0 convention.
|
|
||||||
*
|
|
||||||
* Contains the namespace as key and an array of directories as value. If the value is NULL
|
|
||||||
* the include path is used for checking for the corresponding file.
|
|
||||||
*
|
|
||||||
* This autoloading mechanism does not utilize the PHP autoloading but implements autoloading on its own.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
static private $autoloadNamespaces = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A map of autoloader callables.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
static private $loaders = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
static public function reset()
|
|
||||||
{
|
|
||||||
self::$autoloadNamespaces = array();
|
|
||||||
self::$loaders = array();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers file.
|
|
||||||
*
|
|
||||||
* @param string $file
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
static public function registerFile($file)
|
|
||||||
{
|
|
||||||
require_once $file;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds a namespace with one or many directories to look for files or null for the include path.
|
|
||||||
*
|
|
||||||
* Loading of this namespaces will be done with a PSR-0 namespace loading algorithm.
|
|
||||||
*
|
|
||||||
* @param string $namespace
|
|
||||||
* @param string|array|null $dirs
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
static public function registerAutoloadNamespace($namespace, $dirs = null)
|
|
||||||
{
|
|
||||||
self::$autoloadNamespaces[$namespace] = $dirs;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers multiple namespaces.
|
|
||||||
*
|
|
||||||
* Loading of this namespaces will be done with a PSR-0 namespace loading algorithm.
|
|
||||||
*
|
|
||||||
* @param array $namespaces
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
static public function registerAutoloadNamespaces(array $namespaces)
|
|
||||||
{
|
|
||||||
self::$autoloadNamespaces = array_merge(self::$autoloadNamespaces, $namespaces);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers an autoloading callable for annotations, much like spl_autoload_register().
|
|
||||||
*
|
|
||||||
* NOTE: These class loaders HAVE to be silent when a class was not found!
|
|
||||||
* IMPORTANT: Loaders have to return true if they loaded a class that could contain the searched annotation class.
|
|
||||||
*
|
|
||||||
* @param callable $callable
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @throws \InvalidArgumentException
|
|
||||||
*/
|
|
||||||
static public function registerLoader($callable)
|
|
||||||
{
|
|
||||||
if (!is_callable($callable)) {
|
|
||||||
throw new \InvalidArgumentException("A callable is expected in AnnotationRegistry::registerLoader().");
|
|
||||||
}
|
|
||||||
self::$loaders[] = $callable;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Autoloads an annotation class silently.
|
|
||||||
*
|
|
||||||
* @param string $class
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
static public function loadAnnotationClass($class)
|
|
||||||
{
|
|
||||||
foreach (self::$autoloadNamespaces AS $namespace => $dirs) {
|
|
||||||
if (strpos($class, $namespace) === 0) {
|
|
||||||
$file = str_replace("\\", DIRECTORY_SEPARATOR, $class) . ".php";
|
|
||||||
if ($dirs === null) {
|
|
||||||
if ($path = stream_resolve_include_path($file)) {
|
|
||||||
require $path;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
foreach((array)$dirs AS $dir) {
|
|
||||||
if (is_file($dir . DIRECTORY_SEPARATOR . $file)) {
|
|
||||||
require $dir . DIRECTORY_SEPARATOR . $file;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (self::$loaders AS $loader) {
|
|
||||||
if (call_user_func($loader, $class) === true) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,262 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\Cache;
|
|
||||||
use ReflectionClass;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A cache aware annotation reader.
|
|
||||||
*
|
|
||||||
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
|
|
||||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
|
||||||
*/
|
|
||||||
final class CachedReader implements Reader
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var Reader
|
|
||||||
*/
|
|
||||||
private $delegate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var Cache
|
|
||||||
*/
|
|
||||||
private $cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var boolean
|
|
||||||
*/
|
|
||||||
private $debug;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private $loadedAnnotations = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* @param Reader $reader
|
|
||||||
* @param Cache $cache
|
|
||||||
* @param bool $debug
|
|
||||||
*/
|
|
||||||
public function __construct(Reader $reader, Cache $cache, $debug = false)
|
|
||||||
{
|
|
||||||
$this->delegate = $reader;
|
|
||||||
$this->cache = $cache;
|
|
||||||
$this->debug = (boolean) $debug;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getClassAnnotations(ReflectionClass $class)
|
|
||||||
{
|
|
||||||
$cacheKey = $class->getName();
|
|
||||||
|
|
||||||
if (isset($this->loadedAnnotations[$cacheKey])) {
|
|
||||||
return $this->loadedAnnotations[$cacheKey];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (false === ($annots = $this->fetchFromCache($cacheKey, $class))) {
|
|
||||||
$annots = $this->delegate->getClassAnnotations($class);
|
|
||||||
$this->saveToCache($cacheKey, $annots);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->loadedAnnotations[$cacheKey] = $annots;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getClassAnnotation(ReflectionClass $class, $annotationName)
|
|
||||||
{
|
|
||||||
foreach ($this->getClassAnnotations($class) as $annot) {
|
|
||||||
if ($annot instanceof $annotationName) {
|
|
||||||
return $annot;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getPropertyAnnotations(\ReflectionProperty $property)
|
|
||||||
{
|
|
||||||
$class = $property->getDeclaringClass();
|
|
||||||
$cacheKey = $class->getName().'$'.$property->getName();
|
|
||||||
|
|
||||||
if (isset($this->loadedAnnotations[$cacheKey])) {
|
|
||||||
return $this->loadedAnnotations[$cacheKey];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (false === ($annots = $this->fetchFromCache($cacheKey, $class))) {
|
|
||||||
$annots = $this->delegate->getPropertyAnnotations($property);
|
|
||||||
$this->saveToCache($cacheKey, $annots);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->loadedAnnotations[$cacheKey] = $annots;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName)
|
|
||||||
{
|
|
||||||
foreach ($this->getPropertyAnnotations($property) as $annot) {
|
|
||||||
if ($annot instanceof $annotationName) {
|
|
||||||
return $annot;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getMethodAnnotations(\ReflectionMethod $method)
|
|
||||||
{
|
|
||||||
$class = $method->getDeclaringClass();
|
|
||||||
$cacheKey = $class->getName().'#'.$method->getName();
|
|
||||||
|
|
||||||
if (isset($this->loadedAnnotations[$cacheKey])) {
|
|
||||||
return $this->loadedAnnotations[$cacheKey];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (false === ($annots = $this->fetchFromCache($cacheKey, $class))) {
|
|
||||||
$annots = $this->delegate->getMethodAnnotations($method);
|
|
||||||
$this->saveToCache($cacheKey, $annots);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->loadedAnnotations[$cacheKey] = $annots;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getMethodAnnotation(\ReflectionMethod $method, $annotationName)
|
|
||||||
{
|
|
||||||
foreach ($this->getMethodAnnotations($method) as $annot) {
|
|
||||||
if ($annot instanceof $annotationName) {
|
|
||||||
return $annot;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Clears loaded annotations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function clearLoadedAnnotations()
|
|
||||||
{
|
|
||||||
$this->loadedAnnotations = array();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fetches a value from the cache.
|
|
||||||
*
|
|
||||||
* @param string $cacheKey The cache key.
|
|
||||||
* @param ReflectionClass $class The related class.
|
|
||||||
*
|
|
||||||
* @return mixed The cached value or false when the value is not in cache.
|
|
||||||
*/
|
|
||||||
private function fetchFromCache($cacheKey, ReflectionClass $class)
|
|
||||||
{
|
|
||||||
if (($data = $this->cache->fetch($cacheKey)) !== false) {
|
|
||||||
if (!$this->debug || $this->isCacheFresh($cacheKey, $class)) {
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Saves a value to the cache.
|
|
||||||
*
|
|
||||||
* @param string $cacheKey The cache key.
|
|
||||||
* @param mixed $value The value.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
private function saveToCache($cacheKey, $value)
|
|
||||||
{
|
|
||||||
$this->cache->save($cacheKey, $value);
|
|
||||||
if ($this->debug) {
|
|
||||||
$this->cache->save('[C]'.$cacheKey, time());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if the cache is fresh.
|
|
||||||
*
|
|
||||||
* @param string $cacheKey
|
|
||||||
* @param ReflectionClass $class
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
private function isCacheFresh($cacheKey, ReflectionClass $class)
|
|
||||||
{
|
|
||||||
if (null === $lastModification = $this->getLastModification($class)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->cache->fetch('[C]'.$cacheKey) >= $lastModification;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the time the class was last modified, testing traits and parents
|
|
||||||
*
|
|
||||||
* @param ReflectionClass $class
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
private function getLastModification(ReflectionClass $class)
|
|
||||||
{
|
|
||||||
$filename = $class->getFileName();
|
|
||||||
$parent = $class->getParentClass();
|
|
||||||
|
|
||||||
return max(array_merge(
|
|
||||||
[$filename ? filemtime($filename) : 0],
|
|
||||||
array_map([$this, 'getTraitLastModificationTime'], $class->getTraits()),
|
|
||||||
array_map([$this, 'getLastModification'], $class->getInterfaces()),
|
|
||||||
$parent ? [$this->getLastModification($parent)] : []
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param ReflectionClass $reflectionTrait
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
private function getTraitLastModificationTime(ReflectionClass $reflectionTrait)
|
|
||||||
{
|
|
||||||
$fileName = $reflectionTrait->getFileName();
|
|
||||||
|
|
||||||
return max(array_merge(
|
|
||||||
[$fileName ? filemtime($fileName) : 0],
|
|
||||||
array_map([$this, 'getTraitLastModificationTime'], $reflectionTrait->getTraits())
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,134 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations;
|
|
||||||
|
|
||||||
use Doctrine\Common\Lexer\AbstractLexer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Simple lexer for docblock annotations.
|
|
||||||
*
|
|
||||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
|
||||||
* @author Jonathan Wage <jonwage@gmail.com>
|
|
||||||
* @author Roman Borschel <roman@code-factory.org>
|
|
||||||
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
|
|
||||||
*/
|
|
||||||
final class DocLexer extends AbstractLexer
|
|
||||||
{
|
|
||||||
const T_NONE = 1;
|
|
||||||
const T_INTEGER = 2;
|
|
||||||
const T_STRING = 3;
|
|
||||||
const T_FLOAT = 4;
|
|
||||||
|
|
||||||
// All tokens that are also identifiers should be >= 100
|
|
||||||
const T_IDENTIFIER = 100;
|
|
||||||
const T_AT = 101;
|
|
||||||
const T_CLOSE_CURLY_BRACES = 102;
|
|
||||||
const T_CLOSE_PARENTHESIS = 103;
|
|
||||||
const T_COMMA = 104;
|
|
||||||
const T_EQUALS = 105;
|
|
||||||
const T_FALSE = 106;
|
|
||||||
const T_NAMESPACE_SEPARATOR = 107;
|
|
||||||
const T_OPEN_CURLY_BRACES = 108;
|
|
||||||
const T_OPEN_PARENTHESIS = 109;
|
|
||||||
const T_TRUE = 110;
|
|
||||||
const T_NULL = 111;
|
|
||||||
const T_COLON = 112;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected $noCase = array(
|
|
||||||
'@' => self::T_AT,
|
|
||||||
',' => self::T_COMMA,
|
|
||||||
'(' => self::T_OPEN_PARENTHESIS,
|
|
||||||
')' => self::T_CLOSE_PARENTHESIS,
|
|
||||||
'{' => self::T_OPEN_CURLY_BRACES,
|
|
||||||
'}' => self::T_CLOSE_CURLY_BRACES,
|
|
||||||
'=' => self::T_EQUALS,
|
|
||||||
':' => self::T_COLON,
|
|
||||||
'\\' => self::T_NAMESPACE_SEPARATOR
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected $withCase = array(
|
|
||||||
'true' => self::T_TRUE,
|
|
||||||
'false' => self::T_FALSE,
|
|
||||||
'null' => self::T_NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function getCatchablePatterns()
|
|
||||||
{
|
|
||||||
return array(
|
|
||||||
'[a-z_\\\][a-z0-9_\:\\\]*[a-z_][a-z0-9_]*',
|
|
||||||
'(?:[+-]?[0-9]+(?:[\.][0-9]+)*)(?:[eE][+-]?[0-9]+)?',
|
|
||||||
'"(?:""|[^"])*+"',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function getNonCatchablePatterns()
|
|
||||||
{
|
|
||||||
return array('\s+', '\*+', '(.)');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function getType(&$value)
|
|
||||||
{
|
|
||||||
$type = self::T_NONE;
|
|
||||||
|
|
||||||
if ($value[0] === '"') {
|
|
||||||
$value = str_replace('""', '"', substr($value, 1, strlen($value) - 2));
|
|
||||||
|
|
||||||
return self::T_STRING;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($this->noCase[$value])) {
|
|
||||||
return $this->noCase[$value];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($value[0] === '_' || $value[0] === '\\' || ctype_alpha($value[0])) {
|
|
||||||
return self::T_IDENTIFIER;
|
|
||||||
}
|
|
||||||
|
|
||||||
$lowerValue = strtolower($value);
|
|
||||||
|
|
||||||
if (isset($this->withCase[$lowerValue])) {
|
|
||||||
return $this->withCase[$lowerValue];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Checking numeric value
|
|
||||||
if (is_numeric($value)) {
|
|
||||||
return (strpos($value, '.') !== false || stripos($value, 'e') !== false)
|
|
||||||
? self::T_FLOAT : self::T_INTEGER;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $type;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,1190 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations;
|
|
||||||
|
|
||||||
use Doctrine\Common\Annotations\Annotation\Attribute;
|
|
||||||
use ReflectionClass;
|
|
||||||
use Doctrine\Common\Annotations\Annotation\Enum;
|
|
||||||
use Doctrine\Common\Annotations\Annotation\Target;
|
|
||||||
use Doctrine\Common\Annotations\Annotation\Attributes;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A parser for docblock annotations.
|
|
||||||
*
|
|
||||||
* It is strongly discouraged to change the default annotation parsing process.
|
|
||||||
*
|
|
||||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
|
||||||
* @author Jonathan Wage <jonwage@gmail.com>
|
|
||||||
* @author Roman Borschel <roman@code-factory.org>
|
|
||||||
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
|
|
||||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
|
||||||
*/
|
|
||||||
final class DocParser
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* An array of all valid tokens for a class name.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private static $classIdentifiers = array(
|
|
||||||
DocLexer::T_IDENTIFIER,
|
|
||||||
DocLexer::T_TRUE,
|
|
||||||
DocLexer::T_FALSE,
|
|
||||||
DocLexer::T_NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The lexer.
|
|
||||||
*
|
|
||||||
* @var \Doctrine\Common\Annotations\DocLexer
|
|
||||||
*/
|
|
||||||
private $lexer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Current target context.
|
|
||||||
*
|
|
||||||
* @var integer
|
|
||||||
*/
|
|
||||||
private $target;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Doc parser used to collect annotation target.
|
|
||||||
*
|
|
||||||
* @var \Doctrine\Common\Annotations\DocParser
|
|
||||||
*/
|
|
||||||
private static $metadataParser;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Flag to control if the current annotation is nested or not.
|
|
||||||
*
|
|
||||||
* @var boolean
|
|
||||||
*/
|
|
||||||
private $isNestedAnnotation = false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hashmap containing all use-statements that are to be used when parsing
|
|
||||||
* the given doc block.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private $imports = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This hashmap is used internally to cache results of class_exists()
|
|
||||||
* look-ups.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private $classExists = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether annotations that have not been imported should be ignored.
|
|
||||||
*
|
|
||||||
* @var boolean
|
|
||||||
*/
|
|
||||||
private $ignoreNotImportedAnnotations = false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An array of default namespaces if operating in simple mode.
|
|
||||||
*
|
|
||||||
* @var string[]
|
|
||||||
*/
|
|
||||||
private $namespaces = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A list with annotations that are not causing exceptions when not resolved to an annotation class.
|
|
||||||
*
|
|
||||||
* The names must be the raw names as used in the class, not the fully qualified
|
|
||||||
* class names.
|
|
||||||
*
|
|
||||||
* @var bool[] indexed by annotation name
|
|
||||||
*/
|
|
||||||
private $ignoredAnnotationNames = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A list with annotations in namespaced format
|
|
||||||
* that are not causing exceptions when not resolved to an annotation class.
|
|
||||||
*
|
|
||||||
* @var bool[] indexed by namespace name
|
|
||||||
*/
|
|
||||||
private $ignoredAnnotationNamespaces = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $context = '';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hash-map for caching annotation metadata.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private static $annotationMetadata = array(
|
|
||||||
'Doctrine\Common\Annotations\Annotation\Target' => array(
|
|
||||||
'is_annotation' => true,
|
|
||||||
'has_constructor' => true,
|
|
||||||
'properties' => array(),
|
|
||||||
'targets_literal' => 'ANNOTATION_CLASS',
|
|
||||||
'targets' => Target::TARGET_CLASS,
|
|
||||||
'default_property' => 'value',
|
|
||||||
'attribute_types' => array(
|
|
||||||
'value' => array(
|
|
||||||
'required' => false,
|
|
||||||
'type' =>'array',
|
|
||||||
'array_type'=>'string',
|
|
||||||
'value' =>'array<string>'
|
|
||||||
)
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'Doctrine\Common\Annotations\Annotation\Attribute' => array(
|
|
||||||
'is_annotation' => true,
|
|
||||||
'has_constructor' => false,
|
|
||||||
'targets_literal' => 'ANNOTATION_ANNOTATION',
|
|
||||||
'targets' => Target::TARGET_ANNOTATION,
|
|
||||||
'default_property' => 'name',
|
|
||||||
'properties' => array(
|
|
||||||
'name' => 'name',
|
|
||||||
'type' => 'type',
|
|
||||||
'required' => 'required'
|
|
||||||
),
|
|
||||||
'attribute_types' => array(
|
|
||||||
'value' => array(
|
|
||||||
'required' => true,
|
|
||||||
'type' =>'string',
|
|
||||||
'value' =>'string'
|
|
||||||
),
|
|
||||||
'type' => array(
|
|
||||||
'required' =>true,
|
|
||||||
'type' =>'string',
|
|
||||||
'value' =>'string'
|
|
||||||
),
|
|
||||||
'required' => array(
|
|
||||||
'required' =>false,
|
|
||||||
'type' =>'boolean',
|
|
||||||
'value' =>'boolean'
|
|
||||||
)
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'Doctrine\Common\Annotations\Annotation\Attributes' => array(
|
|
||||||
'is_annotation' => true,
|
|
||||||
'has_constructor' => false,
|
|
||||||
'targets_literal' => 'ANNOTATION_CLASS',
|
|
||||||
'targets' => Target::TARGET_CLASS,
|
|
||||||
'default_property' => 'value',
|
|
||||||
'properties' => array(
|
|
||||||
'value' => 'value'
|
|
||||||
),
|
|
||||||
'attribute_types' => array(
|
|
||||||
'value' => array(
|
|
||||||
'type' =>'array',
|
|
||||||
'required' =>true,
|
|
||||||
'array_type'=>'Doctrine\Common\Annotations\Annotation\Attribute',
|
|
||||||
'value' =>'array<Doctrine\Common\Annotations\Annotation\Attribute>'
|
|
||||||
)
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'Doctrine\Common\Annotations\Annotation\Enum' => array(
|
|
||||||
'is_annotation' => true,
|
|
||||||
'has_constructor' => true,
|
|
||||||
'targets_literal' => 'ANNOTATION_PROPERTY',
|
|
||||||
'targets' => Target::TARGET_PROPERTY,
|
|
||||||
'default_property' => 'value',
|
|
||||||
'properties' => array(
|
|
||||||
'value' => 'value'
|
|
||||||
),
|
|
||||||
'attribute_types' => array(
|
|
||||||
'value' => array(
|
|
||||||
'type' => 'array',
|
|
||||||
'required' => true,
|
|
||||||
),
|
|
||||||
'literal' => array(
|
|
||||||
'type' => 'array',
|
|
||||||
'required' => false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hash-map for handle types declaration.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private static $typeMap = array(
|
|
||||||
'float' => 'double',
|
|
||||||
'bool' => 'boolean',
|
|
||||||
// allow uppercase Boolean in honor of George Boole
|
|
||||||
'Boolean' => 'boolean',
|
|
||||||
'int' => 'integer',
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs a new DocParser.
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->lexer = new DocLexer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the annotation names that are ignored during the parsing process.
|
|
||||||
*
|
|
||||||
* The names are supposed to be the raw names as used in the class, not the
|
|
||||||
* fully qualified class names.
|
|
||||||
*
|
|
||||||
* @param bool[] $names indexed by annotation name
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function setIgnoredAnnotationNames(array $names)
|
|
||||||
{
|
|
||||||
$this->ignoredAnnotationNames = $names;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the annotation namespaces that are ignored during the parsing process.
|
|
||||||
*
|
|
||||||
* @param bool[] $ignoredAnnotationNamespaces indexed by annotation namespace name
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function setIgnoredAnnotationNamespaces($ignoredAnnotationNamespaces)
|
|
||||||
{
|
|
||||||
$this->ignoredAnnotationNamespaces = $ignoredAnnotationNamespaces;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets ignore on not-imported annotations.
|
|
||||||
*
|
|
||||||
* @param boolean $bool
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function setIgnoreNotImportedAnnotations($bool)
|
|
||||||
{
|
|
||||||
$this->ignoreNotImportedAnnotations = (boolean) $bool;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the default namespaces.
|
|
||||||
*
|
|
||||||
* @param string $namespace
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @throws \RuntimeException
|
|
||||||
*/
|
|
||||||
public function addNamespace($namespace)
|
|
||||||
{
|
|
||||||
if ($this->imports) {
|
|
||||||
throw new \RuntimeException('You must either use addNamespace(), or setImports(), but not both.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->namespaces[] = $namespace;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the imports.
|
|
||||||
*
|
|
||||||
* @param array $imports
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @throws \RuntimeException
|
|
||||||
*/
|
|
||||||
public function setImports(array $imports)
|
|
||||||
{
|
|
||||||
if ($this->namespaces) {
|
|
||||||
throw new \RuntimeException('You must either use addNamespace(), or setImports(), but not both.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->imports = $imports;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets current target context as bitmask.
|
|
||||||
*
|
|
||||||
* @param integer $target
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function setTarget($target)
|
|
||||||
{
|
|
||||||
$this->target = $target;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parses the given docblock string for annotations.
|
|
||||||
*
|
|
||||||
* @param string $input The docblock string to parse.
|
|
||||||
* @param string $context The parsing context.
|
|
||||||
*
|
|
||||||
* @return array Array of annotations. If no annotations are found, an empty array is returned.
|
|
||||||
*/
|
|
||||||
public function parse($input, $context = '')
|
|
||||||
{
|
|
||||||
$pos = $this->findInitialTokenPosition($input);
|
|
||||||
if ($pos === null) {
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->context = $context;
|
|
||||||
|
|
||||||
$this->lexer->setInput(trim(substr($input, $pos), '* /'));
|
|
||||||
$this->lexer->moveNext();
|
|
||||||
|
|
||||||
return $this->Annotations();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Finds the first valid annotation
|
|
||||||
*
|
|
||||||
* @param string $input The docblock string to parse
|
|
||||||
*
|
|
||||||
* @return int|null
|
|
||||||
*/
|
|
||||||
private function findInitialTokenPosition($input)
|
|
||||||
{
|
|
||||||
$pos = 0;
|
|
||||||
|
|
||||||
// search for first valid annotation
|
|
||||||
while (($pos = strpos($input, '@', $pos)) !== false) {
|
|
||||||
$preceding = substr($input, $pos - 1, 1);
|
|
||||||
|
|
||||||
// if the @ is preceded by a space, a tab or * it is valid
|
|
||||||
if ($pos === 0 || $preceding === ' ' || $preceding === '*' || $preceding === "\t") {
|
|
||||||
return $pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
$pos++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Attempts to match the given token with the current lookahead token.
|
|
||||||
* If they match, updates the lookahead token; otherwise raises a syntax error.
|
|
||||||
*
|
|
||||||
* @param integer $token Type of token.
|
|
||||||
*
|
|
||||||
* @return boolean True if tokens match; false otherwise.
|
|
||||||
*/
|
|
||||||
private function match($token)
|
|
||||||
{
|
|
||||||
if ( ! $this->lexer->isNextToken($token) ) {
|
|
||||||
$this->syntaxError($this->lexer->getLiteral($token));
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->lexer->moveNext();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Attempts to match the current lookahead token with any of the given tokens.
|
|
||||||
*
|
|
||||||
* If any of them matches, this method updates the lookahead token; otherwise
|
|
||||||
* a syntax error is raised.
|
|
||||||
*
|
|
||||||
* @param array $tokens
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
private function matchAny(array $tokens)
|
|
||||||
{
|
|
||||||
if ( ! $this->lexer->isNextTokenAny($tokens)) {
|
|
||||||
$this->syntaxError(implode(' or ', array_map(array($this->lexer, 'getLiteral'), $tokens)));
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->lexer->moveNext();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generates a new syntax error.
|
|
||||||
*
|
|
||||||
* @param string $expected Expected string.
|
|
||||||
* @param array|null $token Optional token.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @throws AnnotationException
|
|
||||||
*/
|
|
||||||
private function syntaxError($expected, $token = null)
|
|
||||||
{
|
|
||||||
if ($token === null) {
|
|
||||||
$token = $this->lexer->lookahead;
|
|
||||||
}
|
|
||||||
|
|
||||||
$message = sprintf('Expected %s, got ', $expected);
|
|
||||||
$message .= ($this->lexer->lookahead === null)
|
|
||||||
? 'end of string'
|
|
||||||
: sprintf("'%s' at position %s", $token['value'], $token['position']);
|
|
||||||
|
|
||||||
if (strlen($this->context)) {
|
|
||||||
$message .= ' in ' . $this->context;
|
|
||||||
}
|
|
||||||
|
|
||||||
$message .= '.';
|
|
||||||
|
|
||||||
throw AnnotationException::syntaxError($message);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Attempts to check if a class exists or not. This never goes through the PHP autoloading mechanism
|
|
||||||
* but uses the {@link AnnotationRegistry} to load classes.
|
|
||||||
*
|
|
||||||
* @param string $fqcn
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
private function classExists($fqcn)
|
|
||||||
{
|
|
||||||
if (isset($this->classExists[$fqcn])) {
|
|
||||||
return $this->classExists[$fqcn];
|
|
||||||
}
|
|
||||||
|
|
||||||
// first check if the class already exists, maybe loaded through another AnnotationReader
|
|
||||||
if (class_exists($fqcn, false)) {
|
|
||||||
return $this->classExists[$fqcn] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// final check, does this class exist?
|
|
||||||
return $this->classExists[$fqcn] = AnnotationRegistry::loadAnnotationClass($fqcn);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Collects parsing metadata for a given annotation class
|
|
||||||
*
|
|
||||||
* @param string $name The annotation name
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
private function collectAnnotationMetadata($name)
|
|
||||||
{
|
|
||||||
if (self::$metadataParser === null) {
|
|
||||||
self::$metadataParser = new self();
|
|
||||||
|
|
||||||
self::$metadataParser->setIgnoreNotImportedAnnotations(true);
|
|
||||||
self::$metadataParser->setIgnoredAnnotationNames($this->ignoredAnnotationNames);
|
|
||||||
self::$metadataParser->setImports(array(
|
|
||||||
'enum' => 'Doctrine\Common\Annotations\Annotation\Enum',
|
|
||||||
'target' => 'Doctrine\Common\Annotations\Annotation\Target',
|
|
||||||
'attribute' => 'Doctrine\Common\Annotations\Annotation\Attribute',
|
|
||||||
'attributes' => 'Doctrine\Common\Annotations\Annotation\Attributes'
|
|
||||||
));
|
|
||||||
|
|
||||||
AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Enum.php');
|
|
||||||
AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Target.php');
|
|
||||||
AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Attribute.php');
|
|
||||||
AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Attributes.php');
|
|
||||||
}
|
|
||||||
|
|
||||||
$class = new \ReflectionClass($name);
|
|
||||||
$docComment = $class->getDocComment();
|
|
||||||
|
|
||||||
// Sets default values for annotation metadata
|
|
||||||
$metadata = array(
|
|
||||||
'default_property' => null,
|
|
||||||
'has_constructor' => (null !== $constructor = $class->getConstructor()) && $constructor->getNumberOfParameters() > 0,
|
|
||||||
'properties' => array(),
|
|
||||||
'property_types' => array(),
|
|
||||||
'attribute_types' => array(),
|
|
||||||
'targets_literal' => null,
|
|
||||||
'targets' => Target::TARGET_ALL,
|
|
||||||
'is_annotation' => false !== strpos($docComment, '@Annotation'),
|
|
||||||
);
|
|
||||||
|
|
||||||
// verify that the class is really meant to be an annotation
|
|
||||||
if ($metadata['is_annotation']) {
|
|
||||||
self::$metadataParser->setTarget(Target::TARGET_CLASS);
|
|
||||||
|
|
||||||
foreach (self::$metadataParser->parse($docComment, 'class @' . $name) as $annotation) {
|
|
||||||
if ($annotation instanceof Target) {
|
|
||||||
$metadata['targets'] = $annotation->targets;
|
|
||||||
$metadata['targets_literal'] = $annotation->literal;
|
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($annotation instanceof Attributes) {
|
|
||||||
foreach ($annotation->value as $attribute) {
|
|
||||||
$this->collectAttributeTypeMetadata($metadata, $attribute);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// if not has a constructor will inject values into public properties
|
|
||||||
if (false === $metadata['has_constructor']) {
|
|
||||||
// collect all public properties
|
|
||||||
foreach ($class->getProperties(\ReflectionProperty::IS_PUBLIC) as $property) {
|
|
||||||
$metadata['properties'][$property->name] = $property->name;
|
|
||||||
|
|
||||||
if (false === ($propertyComment = $property->getDocComment())) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$attribute = new Attribute();
|
|
||||||
|
|
||||||
$attribute->required = (false !== strpos($propertyComment, '@Required'));
|
|
||||||
$attribute->name = $property->name;
|
|
||||||
$attribute->type = (false !== strpos($propertyComment, '@var') && preg_match('/@var\s+([^\s]+)/',$propertyComment, $matches))
|
|
||||||
? $matches[1]
|
|
||||||
: 'mixed';
|
|
||||||
|
|
||||||
$this->collectAttributeTypeMetadata($metadata, $attribute);
|
|
||||||
|
|
||||||
// checks if the property has @Enum
|
|
||||||
if (false !== strpos($propertyComment, '@Enum')) {
|
|
||||||
$context = 'property ' . $class->name . "::\$" . $property->name;
|
|
||||||
|
|
||||||
self::$metadataParser->setTarget(Target::TARGET_PROPERTY);
|
|
||||||
|
|
||||||
foreach (self::$metadataParser->parse($propertyComment, $context) as $annotation) {
|
|
||||||
if ( ! $annotation instanceof Enum) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$metadata['enum'][$property->name]['value'] = $annotation->value;
|
|
||||||
$metadata['enum'][$property->name]['literal'] = ( ! empty($annotation->literal))
|
|
||||||
? $annotation->literal
|
|
||||||
: $annotation->value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// choose the first property as default property
|
|
||||||
$metadata['default_property'] = reset($metadata['properties']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
self::$annotationMetadata[$name] = $metadata;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Collects parsing metadata for a given attribute.
|
|
||||||
*
|
|
||||||
* @param array $metadata
|
|
||||||
* @param Attribute $attribute
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
private function collectAttributeTypeMetadata(&$metadata, Attribute $attribute)
|
|
||||||
{
|
|
||||||
// handle internal type declaration
|
|
||||||
$type = isset(self::$typeMap[$attribute->type])
|
|
||||||
? self::$typeMap[$attribute->type]
|
|
||||||
: $attribute->type;
|
|
||||||
|
|
||||||
// handle the case if the property type is mixed
|
|
||||||
if ('mixed' === $type) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Evaluate type
|
|
||||||
switch (true) {
|
|
||||||
// Checks if the property has array<type>
|
|
||||||
case (false !== $pos = strpos($type, '<')):
|
|
||||||
$arrayType = substr($type, $pos + 1, -1);
|
|
||||||
$type = 'array';
|
|
||||||
|
|
||||||
if (isset(self::$typeMap[$arrayType])) {
|
|
||||||
$arrayType = self::$typeMap[$arrayType];
|
|
||||||
}
|
|
||||||
|
|
||||||
$metadata['attribute_types'][$attribute->name]['array_type'] = $arrayType;
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Checks if the property has type[]
|
|
||||||
case (false !== $pos = strrpos($type, '[')):
|
|
||||||
$arrayType = substr($type, 0, $pos);
|
|
||||||
$type = 'array';
|
|
||||||
|
|
||||||
if (isset(self::$typeMap[$arrayType])) {
|
|
||||||
$arrayType = self::$typeMap[$arrayType];
|
|
||||||
}
|
|
||||||
|
|
||||||
$metadata['attribute_types'][$attribute->name]['array_type'] = $arrayType;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$metadata['attribute_types'][$attribute->name]['type'] = $type;
|
|
||||||
$metadata['attribute_types'][$attribute->name]['value'] = $attribute->type;
|
|
||||||
$metadata['attribute_types'][$attribute->name]['required'] = $attribute->required;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Annotations ::= Annotation {[ "*" ]* [Annotation]}*
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private function Annotations()
|
|
||||||
{
|
|
||||||
$annotations = array();
|
|
||||||
|
|
||||||
while (null !== $this->lexer->lookahead) {
|
|
||||||
if (DocLexer::T_AT !== $this->lexer->lookahead['type']) {
|
|
||||||
$this->lexer->moveNext();
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// make sure the @ is preceded by non-catchable pattern
|
|
||||||
if (null !== $this->lexer->token && $this->lexer->lookahead['position'] === $this->lexer->token['position'] + strlen($this->lexer->token['value'])) {
|
|
||||||
$this->lexer->moveNext();
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// make sure the @ is followed by either a namespace separator, or
|
|
||||||
// an identifier token
|
|
||||||
if ((null === $peek = $this->lexer->glimpse())
|
|
||||||
|| (DocLexer::T_NAMESPACE_SEPARATOR !== $peek['type'] && !in_array($peek['type'], self::$classIdentifiers, true))
|
|
||||||
|| $peek['position'] !== $this->lexer->lookahead['position'] + 1) {
|
|
||||||
$this->lexer->moveNext();
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->isNestedAnnotation = false;
|
|
||||||
if (false !== $annot = $this->Annotation()) {
|
|
||||||
$annotations[] = $annot;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $annotations;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Annotation ::= "@" AnnotationName MethodCall
|
|
||||||
* AnnotationName ::= QualifiedName | SimpleName
|
|
||||||
* QualifiedName ::= NameSpacePart "\" {NameSpacePart "\"}* SimpleName
|
|
||||||
* NameSpacePart ::= identifier | null | false | true
|
|
||||||
* SimpleName ::= identifier | null | false | true
|
|
||||||
*
|
|
||||||
* @return mixed False if it is not a valid annotation.
|
|
||||||
*
|
|
||||||
* @throws AnnotationException
|
|
||||||
*/
|
|
||||||
private function Annotation()
|
|
||||||
{
|
|
||||||
$this->match(DocLexer::T_AT);
|
|
||||||
|
|
||||||
// check if we have an annotation
|
|
||||||
$name = $this->Identifier();
|
|
||||||
|
|
||||||
// only process names which are not fully qualified, yet
|
|
||||||
// fully qualified names must start with a \
|
|
||||||
$originalName = $name;
|
|
||||||
|
|
||||||
if ('\\' !== $name[0]) {
|
|
||||||
$pos = strpos($name, '\\');
|
|
||||||
$alias = (false === $pos)? $name : substr($name, 0, $pos);
|
|
||||||
$found = false;
|
|
||||||
$loweredAlias = strtolower($alias);
|
|
||||||
|
|
||||||
if ($this->namespaces) {
|
|
||||||
foreach ($this->namespaces as $namespace) {
|
|
||||||
if ($this->classExists($namespace.'\\'.$name)) {
|
|
||||||
$name = $namespace.'\\'.$name;
|
|
||||||
$found = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} elseif (isset($this->imports[$loweredAlias])) {
|
|
||||||
$found = true;
|
|
||||||
$name = (false !== $pos)
|
|
||||||
? $this->imports[$loweredAlias] . substr($name, $pos)
|
|
||||||
: $this->imports[$loweredAlias];
|
|
||||||
} elseif ( ! isset($this->ignoredAnnotationNames[$name])
|
|
||||||
&& isset($this->imports['__NAMESPACE__'])
|
|
||||||
&& $this->classExists($this->imports['__NAMESPACE__'] . '\\' . $name)
|
|
||||||
) {
|
|
||||||
$name = $this->imports['__NAMESPACE__'].'\\'.$name;
|
|
||||||
$found = true;
|
|
||||||
} elseif (! isset($this->ignoredAnnotationNames[$name]) && $this->classExists($name)) {
|
|
||||||
$found = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( ! $found) {
|
|
||||||
if ($this->isIgnoredAnnotation($name)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
throw AnnotationException::semanticalError(sprintf('The annotation "@%s" in %s was never imported. Did you maybe forget to add a "use" statement for this annotation?', $name, $this->context));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$name = ltrim($name,'\\');
|
|
||||||
|
|
||||||
if ( ! $this->classExists($name)) {
|
|
||||||
throw AnnotationException::semanticalError(sprintf('The annotation "@%s" in %s does not exist, or could not be auto-loaded.', $name, $this->context));
|
|
||||||
}
|
|
||||||
|
|
||||||
// at this point, $name contains the fully qualified class name of the
|
|
||||||
// annotation, and it is also guaranteed that this class exists, and
|
|
||||||
// that it is loaded
|
|
||||||
|
|
||||||
|
|
||||||
// collects the metadata annotation only if there is not yet
|
|
||||||
if ( ! isset(self::$annotationMetadata[$name])) {
|
|
||||||
$this->collectAnnotationMetadata($name);
|
|
||||||
}
|
|
||||||
|
|
||||||
// verify that the class is really meant to be an annotation and not just any ordinary class
|
|
||||||
if (self::$annotationMetadata[$name]['is_annotation'] === false) {
|
|
||||||
if ($this->ignoreNotImportedAnnotations || isset($this->ignoredAnnotationNames[$originalName])) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
throw AnnotationException::semanticalError(sprintf('The class "%s" is not annotated with @Annotation. Are you sure this class can be used as annotation? If so, then you need to add @Annotation to the _class_ doc comment of "%s". If it is indeed no annotation, then you need to add @IgnoreAnnotation("%s") to the _class_ doc comment of %s.', $name, $name, $originalName, $this->context));
|
|
||||||
}
|
|
||||||
|
|
||||||
//if target is nested annotation
|
|
||||||
$target = $this->isNestedAnnotation ? Target::TARGET_ANNOTATION : $this->target;
|
|
||||||
|
|
||||||
// Next will be nested
|
|
||||||
$this->isNestedAnnotation = true;
|
|
||||||
|
|
||||||
//if annotation does not support current target
|
|
||||||
if (0 === (self::$annotationMetadata[$name]['targets'] & $target) && $target) {
|
|
||||||
throw AnnotationException::semanticalError(
|
|
||||||
sprintf('Annotation @%s is not allowed to be declared on %s. You may only use this annotation on these code elements: %s.',
|
|
||||||
$originalName, $this->context, self::$annotationMetadata[$name]['targets_literal'])
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$values = $this->MethodCall();
|
|
||||||
|
|
||||||
if (isset(self::$annotationMetadata[$name]['enum'])) {
|
|
||||||
// checks all declared attributes
|
|
||||||
foreach (self::$annotationMetadata[$name]['enum'] as $property => $enum) {
|
|
||||||
// checks if the attribute is a valid enumerator
|
|
||||||
if (isset($values[$property]) && ! in_array($values[$property], $enum['value'])) {
|
|
||||||
throw AnnotationException::enumeratorError($property, $name, $this->context, $enum['literal'], $values[$property]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// checks all declared attributes
|
|
||||||
foreach (self::$annotationMetadata[$name]['attribute_types'] as $property => $type) {
|
|
||||||
if ($property === self::$annotationMetadata[$name]['default_property']
|
|
||||||
&& !isset($values[$property]) && isset($values['value'])) {
|
|
||||||
$property = 'value';
|
|
||||||
}
|
|
||||||
|
|
||||||
// handle a not given attribute or null value
|
|
||||||
if (!isset($values[$property])) {
|
|
||||||
if ($type['required']) {
|
|
||||||
throw AnnotationException::requiredError($property, $originalName, $this->context, 'a(n) '.$type['value']);
|
|
||||||
}
|
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($type['type'] === 'array') {
|
|
||||||
// handle the case of a single value
|
|
||||||
if ( ! is_array($values[$property])) {
|
|
||||||
$values[$property] = array($values[$property]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// checks if the attribute has array type declaration, such as "array<string>"
|
|
||||||
if (isset($type['array_type'])) {
|
|
||||||
foreach ($values[$property] as $item) {
|
|
||||||
if (gettype($item) !== $type['array_type'] && !$item instanceof $type['array_type']) {
|
|
||||||
throw AnnotationException::attributeTypeError($property, $originalName, $this->context, 'either a(n) '.$type['array_type'].', or an array of '.$type['array_type'].'s', $item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} elseif (gettype($values[$property]) !== $type['type'] && !$values[$property] instanceof $type['type']) {
|
|
||||||
throw AnnotationException::attributeTypeError($property, $originalName, $this->context, 'a(n) '.$type['value'], $values[$property]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// check if the annotation expects values via the constructor,
|
|
||||||
// or directly injected into public properties
|
|
||||||
if (self::$annotationMetadata[$name]['has_constructor'] === true) {
|
|
||||||
return new $name($values);
|
|
||||||
}
|
|
||||||
|
|
||||||
$instance = new $name();
|
|
||||||
|
|
||||||
foreach ($values as $property => $value) {
|
|
||||||
if (!isset(self::$annotationMetadata[$name]['properties'][$property])) {
|
|
||||||
if ('value' !== $property) {
|
|
||||||
throw AnnotationException::creationError(sprintf('The annotation @%s declared on %s does not have a property named "%s". Available properties: %s', $originalName, $this->context, $property, implode(', ', self::$annotationMetadata[$name]['properties'])));
|
|
||||||
}
|
|
||||||
|
|
||||||
// handle the case if the property has no annotations
|
|
||||||
if ( ! $property = self::$annotationMetadata[$name]['default_property']) {
|
|
||||||
throw AnnotationException::creationError(sprintf('The annotation @%s declared on %s does not accept any values, but got %s.', $originalName, $this->context, json_encode($values)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$instance->{$property} = $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* MethodCall ::= ["(" [Values] ")"]
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private function MethodCall()
|
|
||||||
{
|
|
||||||
$values = array();
|
|
||||||
|
|
||||||
if ( ! $this->lexer->isNextToken(DocLexer::T_OPEN_PARENTHESIS)) {
|
|
||||||
return $values;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->match(DocLexer::T_OPEN_PARENTHESIS);
|
|
||||||
|
|
||||||
if ( ! $this->lexer->isNextToken(DocLexer::T_CLOSE_PARENTHESIS)) {
|
|
||||||
$values = $this->Values();
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->match(DocLexer::T_CLOSE_PARENTHESIS);
|
|
||||||
|
|
||||||
return $values;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Values ::= Array | Value {"," Value}* [","]
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private function Values()
|
|
||||||
{
|
|
||||||
$values = array($this->Value());
|
|
||||||
|
|
||||||
while ($this->lexer->isNextToken(DocLexer::T_COMMA)) {
|
|
||||||
$this->match(DocLexer::T_COMMA);
|
|
||||||
|
|
||||||
if ($this->lexer->isNextToken(DocLexer::T_CLOSE_PARENTHESIS)) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$token = $this->lexer->lookahead;
|
|
||||||
$value = $this->Value();
|
|
||||||
|
|
||||||
if ( ! is_object($value) && ! is_array($value)) {
|
|
||||||
$this->syntaxError('Value', $token);
|
|
||||||
}
|
|
||||||
|
|
||||||
$values[] = $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($values as $k => $value) {
|
|
||||||
if (is_object($value) && $value instanceof \stdClass) {
|
|
||||||
$values[$value->name] = $value->value;
|
|
||||||
} else if ( ! isset($values['value'])){
|
|
||||||
$values['value'] = $value;
|
|
||||||
} else {
|
|
||||||
if ( ! is_array($values['value'])) {
|
|
||||||
$values['value'] = array($values['value']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$values['value'][] = $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
unset($values[$k]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $values;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constant ::= integer | string | float | boolean
|
|
||||||
*
|
|
||||||
* @return mixed
|
|
||||||
*
|
|
||||||
* @throws AnnotationException
|
|
||||||
*/
|
|
||||||
private function Constant()
|
|
||||||
{
|
|
||||||
$identifier = $this->Identifier();
|
|
||||||
|
|
||||||
if ( ! defined($identifier) && false !== strpos($identifier, '::') && '\\' !== $identifier[0]) {
|
|
||||||
list($className, $const) = explode('::', $identifier);
|
|
||||||
|
|
||||||
$pos = strpos($className, '\\');
|
|
||||||
$alias = (false === $pos) ? $className : substr($className, 0, $pos);
|
|
||||||
$found = false;
|
|
||||||
$loweredAlias = strtolower($alias);
|
|
||||||
|
|
||||||
switch (true) {
|
|
||||||
case !empty ($this->namespaces):
|
|
||||||
foreach ($this->namespaces as $ns) {
|
|
||||||
if (class_exists($ns.'\\'.$className) || interface_exists($ns.'\\'.$className)) {
|
|
||||||
$className = $ns.'\\'.$className;
|
|
||||||
$found = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case isset($this->imports[$loweredAlias]):
|
|
||||||
$found = true;
|
|
||||||
$className = (false !== $pos)
|
|
||||||
? $this->imports[$loweredAlias] . substr($className, $pos)
|
|
||||||
: $this->imports[$loweredAlias];
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
if(isset($this->imports['__NAMESPACE__'])) {
|
|
||||||
$ns = $this->imports['__NAMESPACE__'];
|
|
||||||
|
|
||||||
if (class_exists($ns.'\\'.$className) || interface_exists($ns.'\\'.$className)) {
|
|
||||||
$className = $ns.'\\'.$className;
|
|
||||||
$found = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($found) {
|
|
||||||
$identifier = $className . '::' . $const;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// checks if identifier ends with ::class, \strlen('::class') === 7
|
|
||||||
$classPos = stripos($identifier, '::class');
|
|
||||||
if ($classPos === strlen($identifier) - 7) {
|
|
||||||
return substr($identifier, 0, $classPos);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!defined($identifier)) {
|
|
||||||
throw AnnotationException::semanticalErrorConstants($identifier, $this->context);
|
|
||||||
}
|
|
||||||
|
|
||||||
return constant($identifier);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Identifier ::= string
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
private function Identifier()
|
|
||||||
{
|
|
||||||
// check if we have an annotation
|
|
||||||
if ( ! $this->lexer->isNextTokenAny(self::$classIdentifiers)) {
|
|
||||||
$this->syntaxError('namespace separator or identifier');
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->lexer->moveNext();
|
|
||||||
|
|
||||||
$className = $this->lexer->token['value'];
|
|
||||||
|
|
||||||
while ($this->lexer->lookahead['position'] === ($this->lexer->token['position'] + strlen($this->lexer->token['value']))
|
|
||||||
&& $this->lexer->isNextToken(DocLexer::T_NAMESPACE_SEPARATOR)) {
|
|
||||||
|
|
||||||
$this->match(DocLexer::T_NAMESPACE_SEPARATOR);
|
|
||||||
$this->matchAny(self::$classIdentifiers);
|
|
||||||
|
|
||||||
$className .= '\\' . $this->lexer->token['value'];
|
|
||||||
}
|
|
||||||
|
|
||||||
return $className;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Value ::= PlainValue | FieldAssignment
|
|
||||||
*
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
private function Value()
|
|
||||||
{
|
|
||||||
$peek = $this->lexer->glimpse();
|
|
||||||
|
|
||||||
if (DocLexer::T_EQUALS === $peek['type']) {
|
|
||||||
return $this->FieldAssignment();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->PlainValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* PlainValue ::= integer | string | float | boolean | Array | Annotation
|
|
||||||
*
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
private function PlainValue()
|
|
||||||
{
|
|
||||||
if ($this->lexer->isNextToken(DocLexer::T_OPEN_CURLY_BRACES)) {
|
|
||||||
return $this->Arrayx();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->lexer->isNextToken(DocLexer::T_AT)) {
|
|
||||||
return $this->Annotation();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->lexer->isNextToken(DocLexer::T_IDENTIFIER)) {
|
|
||||||
return $this->Constant();
|
|
||||||
}
|
|
||||||
|
|
||||||
switch ($this->lexer->lookahead['type']) {
|
|
||||||
case DocLexer::T_STRING:
|
|
||||||
$this->match(DocLexer::T_STRING);
|
|
||||||
return $this->lexer->token['value'];
|
|
||||||
|
|
||||||
case DocLexer::T_INTEGER:
|
|
||||||
$this->match(DocLexer::T_INTEGER);
|
|
||||||
return (int)$this->lexer->token['value'];
|
|
||||||
|
|
||||||
case DocLexer::T_FLOAT:
|
|
||||||
$this->match(DocLexer::T_FLOAT);
|
|
||||||
return (float)$this->lexer->token['value'];
|
|
||||||
|
|
||||||
case DocLexer::T_TRUE:
|
|
||||||
$this->match(DocLexer::T_TRUE);
|
|
||||||
return true;
|
|
||||||
|
|
||||||
case DocLexer::T_FALSE:
|
|
||||||
$this->match(DocLexer::T_FALSE);
|
|
||||||
return false;
|
|
||||||
|
|
||||||
case DocLexer::T_NULL:
|
|
||||||
$this->match(DocLexer::T_NULL);
|
|
||||||
return null;
|
|
||||||
|
|
||||||
default:
|
|
||||||
$this->syntaxError('PlainValue');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* FieldAssignment ::= FieldName "=" PlainValue
|
|
||||||
* FieldName ::= identifier
|
|
||||||
*
|
|
||||||
* @return \stdClass
|
|
||||||
*/
|
|
||||||
private function FieldAssignment()
|
|
||||||
{
|
|
||||||
$this->match(DocLexer::T_IDENTIFIER);
|
|
||||||
$fieldName = $this->lexer->token['value'];
|
|
||||||
|
|
||||||
$this->match(DocLexer::T_EQUALS);
|
|
||||||
|
|
||||||
$item = new \stdClass();
|
|
||||||
$item->name = $fieldName;
|
|
||||||
$item->value = $this->PlainValue();
|
|
||||||
|
|
||||||
return $item;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Array ::= "{" ArrayEntry {"," ArrayEntry}* [","] "}"
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private function Arrayx()
|
|
||||||
{
|
|
||||||
$array = $values = array();
|
|
||||||
|
|
||||||
$this->match(DocLexer::T_OPEN_CURLY_BRACES);
|
|
||||||
|
|
||||||
// If the array is empty, stop parsing and return.
|
|
||||||
if ($this->lexer->isNextToken(DocLexer::T_CLOSE_CURLY_BRACES)) {
|
|
||||||
$this->match(DocLexer::T_CLOSE_CURLY_BRACES);
|
|
||||||
|
|
||||||
return $array;
|
|
||||||
}
|
|
||||||
|
|
||||||
$values[] = $this->ArrayEntry();
|
|
||||||
|
|
||||||
while ($this->lexer->isNextToken(DocLexer::T_COMMA)) {
|
|
||||||
$this->match(DocLexer::T_COMMA);
|
|
||||||
|
|
||||||
// optional trailing comma
|
|
||||||
if ($this->lexer->isNextToken(DocLexer::T_CLOSE_CURLY_BRACES)) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$values[] = $this->ArrayEntry();
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->match(DocLexer::T_CLOSE_CURLY_BRACES);
|
|
||||||
|
|
||||||
foreach ($values as $value) {
|
|
||||||
list ($key, $val) = $value;
|
|
||||||
|
|
||||||
if ($key !== null) {
|
|
||||||
$array[$key] = $val;
|
|
||||||
} else {
|
|
||||||
$array[] = $val;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $array;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ArrayEntry ::= Value | KeyValuePair
|
|
||||||
* KeyValuePair ::= Key ("=" | ":") PlainValue | Constant
|
|
||||||
* Key ::= string | integer | Constant
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private function ArrayEntry()
|
|
||||||
{
|
|
||||||
$peek = $this->lexer->glimpse();
|
|
||||||
|
|
||||||
if (DocLexer::T_EQUALS === $peek['type']
|
|
||||||
|| DocLexer::T_COLON === $peek['type']) {
|
|
||||||
|
|
||||||
if ($this->lexer->isNextToken(DocLexer::T_IDENTIFIER)) {
|
|
||||||
$key = $this->Constant();
|
|
||||||
} else {
|
|
||||||
$this->matchAny(array(DocLexer::T_INTEGER, DocLexer::T_STRING));
|
|
||||||
$key = $this->lexer->token['value'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->matchAny(array(DocLexer::T_EQUALS, DocLexer::T_COLON));
|
|
||||||
|
|
||||||
return array($key, $this->PlainValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
return array(null, $this->Value());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks whether the given $name matches any ignored annotation name or namespace
|
|
||||||
*
|
|
||||||
* @param string $name
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
private function isIgnoredAnnotation($name)
|
|
||||||
{
|
|
||||||
if ($this->ignoreNotImportedAnnotations || isset($this->ignoredAnnotationNames[$name])) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (array_keys($this->ignoredAnnotationNamespaces) as $ignoredAnnotationNamespace) {
|
|
||||||
$ignoredAnnotationNamespace = rtrim($ignoredAnnotationNamespace, '\\') . '\\';
|
|
||||||
|
|
||||||
if (0 === stripos(rtrim($name, '\\') . '\\', $ignoredAnnotationNamespace)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,290 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* File cache reader for annotations.
|
|
||||||
*
|
|
||||||
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
|
|
||||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
|
||||||
*
|
|
||||||
* @deprecated the FileCacheReader is deprecated and will be removed
|
|
||||||
* in version 2.0.0 of doctrine/annotations. Please use the
|
|
||||||
* {@see \Doctrine\Common\Annotations\CachedReader} instead.
|
|
||||||
*/
|
|
||||||
class FileCacheReader implements Reader
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var Reader
|
|
||||||
*/
|
|
||||||
private $reader;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $dir;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var bool
|
|
||||||
*/
|
|
||||||
private $debug;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private $loadedAnnotations = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private $classNameHashes = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var int
|
|
||||||
*/
|
|
||||||
private $umask;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* @param Reader $reader
|
|
||||||
* @param string $cacheDir
|
|
||||||
* @param boolean $debug
|
|
||||||
*
|
|
||||||
* @throws \InvalidArgumentException
|
|
||||||
*/
|
|
||||||
public function __construct(Reader $reader, $cacheDir, $debug = false, $umask = 0002)
|
|
||||||
{
|
|
||||||
if ( ! is_int($umask)) {
|
|
||||||
throw new \InvalidArgumentException(sprintf(
|
|
||||||
'The parameter umask must be an integer, was: %s',
|
|
||||||
gettype($umask)
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->reader = $reader;
|
|
||||||
$this->umask = $umask;
|
|
||||||
|
|
||||||
if (!is_dir($cacheDir) && !@mkdir($cacheDir, 0777 & (~$this->umask), true)) {
|
|
||||||
throw new \InvalidArgumentException(sprintf('The directory "%s" does not exist and could not be created.', $cacheDir));
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->dir = rtrim($cacheDir, '\\/');
|
|
||||||
$this->debug = $debug;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getClassAnnotations(\ReflectionClass $class)
|
|
||||||
{
|
|
||||||
if ( ! isset($this->classNameHashes[$class->name])) {
|
|
||||||
$this->classNameHashes[$class->name] = sha1($class->name);
|
|
||||||
}
|
|
||||||
$key = $this->classNameHashes[$class->name];
|
|
||||||
|
|
||||||
if (isset($this->loadedAnnotations[$key])) {
|
|
||||||
return $this->loadedAnnotations[$key];
|
|
||||||
}
|
|
||||||
|
|
||||||
$path = $this->dir.'/'.strtr($key, '\\', '-').'.cache.php';
|
|
||||||
if (!is_file($path)) {
|
|
||||||
$annot = $this->reader->getClassAnnotations($class);
|
|
||||||
$this->saveCacheFile($path, $annot);
|
|
||||||
return $this->loadedAnnotations[$key] = $annot;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->debug
|
|
||||||
&& (false !== $filename = $class->getFileName())
|
|
||||||
&& filemtime($path) < filemtime($filename)) {
|
|
||||||
@unlink($path);
|
|
||||||
|
|
||||||
$annot = $this->reader->getClassAnnotations($class);
|
|
||||||
$this->saveCacheFile($path, $annot);
|
|
||||||
return $this->loadedAnnotations[$key] = $annot;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->loadedAnnotations[$key] = include $path;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getPropertyAnnotations(\ReflectionProperty $property)
|
|
||||||
{
|
|
||||||
$class = $property->getDeclaringClass();
|
|
||||||
if ( ! isset($this->classNameHashes[$class->name])) {
|
|
||||||
$this->classNameHashes[$class->name] = sha1($class->name);
|
|
||||||
}
|
|
||||||
$key = $this->classNameHashes[$class->name].'$'.$property->getName();
|
|
||||||
|
|
||||||
if (isset($this->loadedAnnotations[$key])) {
|
|
||||||
return $this->loadedAnnotations[$key];
|
|
||||||
}
|
|
||||||
|
|
||||||
$path = $this->dir.'/'.strtr($key, '\\', '-').'.cache.php';
|
|
||||||
if (!is_file($path)) {
|
|
||||||
$annot = $this->reader->getPropertyAnnotations($property);
|
|
||||||
$this->saveCacheFile($path, $annot);
|
|
||||||
return $this->loadedAnnotations[$key] = $annot;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->debug
|
|
||||||
&& (false !== $filename = $class->getFilename())
|
|
||||||
&& filemtime($path) < filemtime($filename)) {
|
|
||||||
@unlink($path);
|
|
||||||
|
|
||||||
$annot = $this->reader->getPropertyAnnotations($property);
|
|
||||||
$this->saveCacheFile($path, $annot);
|
|
||||||
return $this->loadedAnnotations[$key] = $annot;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->loadedAnnotations[$key] = include $path;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getMethodAnnotations(\ReflectionMethod $method)
|
|
||||||
{
|
|
||||||
$class = $method->getDeclaringClass();
|
|
||||||
if ( ! isset($this->classNameHashes[$class->name])) {
|
|
||||||
$this->classNameHashes[$class->name] = sha1($class->name);
|
|
||||||
}
|
|
||||||
$key = $this->classNameHashes[$class->name].'#'.$method->getName();
|
|
||||||
|
|
||||||
if (isset($this->loadedAnnotations[$key])) {
|
|
||||||
return $this->loadedAnnotations[$key];
|
|
||||||
}
|
|
||||||
|
|
||||||
$path = $this->dir.'/'.strtr($key, '\\', '-').'.cache.php';
|
|
||||||
if (!is_file($path)) {
|
|
||||||
$annot = $this->reader->getMethodAnnotations($method);
|
|
||||||
$this->saveCacheFile($path, $annot);
|
|
||||||
return $this->loadedAnnotations[$key] = $annot;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->debug
|
|
||||||
&& (false !== $filename = $class->getFilename())
|
|
||||||
&& filemtime($path) < filemtime($filename)) {
|
|
||||||
@unlink($path);
|
|
||||||
|
|
||||||
$annot = $this->reader->getMethodAnnotations($method);
|
|
||||||
$this->saveCacheFile($path, $annot);
|
|
||||||
return $this->loadedAnnotations[$key] = $annot;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->loadedAnnotations[$key] = include $path;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Saves the cache file.
|
|
||||||
*
|
|
||||||
* @param string $path
|
|
||||||
* @param mixed $data
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
private function saveCacheFile($path, $data)
|
|
||||||
{
|
|
||||||
if (!is_writable($this->dir)) {
|
|
||||||
throw new \InvalidArgumentException(sprintf('The directory "%s" is not writable. Both, the webserver and the console user need access. You can manage access rights for multiple users with "chmod +a". If your system does not support this, check out the acl package.', $this->dir));
|
|
||||||
}
|
|
||||||
|
|
||||||
$tempfile = tempnam($this->dir, uniqid('', true));
|
|
||||||
|
|
||||||
if (false === $tempfile) {
|
|
||||||
throw new \RuntimeException(sprintf('Unable to create tempfile in directory: %s', $this->dir));
|
|
||||||
}
|
|
||||||
|
|
||||||
@chmod($tempfile, 0666 & (~$this->umask));
|
|
||||||
|
|
||||||
$written = file_put_contents($tempfile, '<?php return unserialize('.var_export(serialize($data), true).');');
|
|
||||||
|
|
||||||
if (false === $written) {
|
|
||||||
throw new \RuntimeException(sprintf('Unable to write cached file to: %s', $tempfile));
|
|
||||||
}
|
|
||||||
|
|
||||||
@chmod($tempfile, 0666 & (~$this->umask));
|
|
||||||
|
|
||||||
if (false === rename($tempfile, $path)) {
|
|
||||||
@unlink($tempfile);
|
|
||||||
throw new \RuntimeException(sprintf('Unable to rename %s to %s', $tempfile, $path));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getClassAnnotation(\ReflectionClass $class, $annotationName)
|
|
||||||
{
|
|
||||||
$annotations = $this->getClassAnnotations($class);
|
|
||||||
|
|
||||||
foreach ($annotations as $annotation) {
|
|
||||||
if ($annotation instanceof $annotationName) {
|
|
||||||
return $annotation;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getMethodAnnotation(\ReflectionMethod $method, $annotationName)
|
|
||||||
{
|
|
||||||
$annotations = $this->getMethodAnnotations($method);
|
|
||||||
|
|
||||||
foreach ($annotations as $annotation) {
|
|
||||||
if ($annotation instanceof $annotationName) {
|
|
||||||
return $annotation;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName)
|
|
||||||
{
|
|
||||||
$annotations = $this->getPropertyAnnotations($property);
|
|
||||||
|
|
||||||
foreach ($annotations as $annotation) {
|
|
||||||
if ($annotation instanceof $annotationName) {
|
|
||||||
return $annotation;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Clears loaded annotations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function clearLoadedAnnotations()
|
|
||||||
{
|
|
||||||
$this->loadedAnnotations = array();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,119 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allows the reader to be used in-place of Doctrine's reader.
|
|
||||||
*
|
|
||||||
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
|
|
||||||
*/
|
|
||||||
class IndexedReader implements Reader
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var Reader
|
|
||||||
*/
|
|
||||||
private $delegate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* @param Reader $reader
|
|
||||||
*/
|
|
||||||
public function __construct(Reader $reader)
|
|
||||||
{
|
|
||||||
$this->delegate = $reader;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getClassAnnotations(\ReflectionClass $class)
|
|
||||||
{
|
|
||||||
$annotations = array();
|
|
||||||
foreach ($this->delegate->getClassAnnotations($class) as $annot) {
|
|
||||||
$annotations[get_class($annot)] = $annot;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $annotations;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getClassAnnotation(\ReflectionClass $class, $annotation)
|
|
||||||
{
|
|
||||||
return $this->delegate->getClassAnnotation($class, $annotation);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getMethodAnnotations(\ReflectionMethod $method)
|
|
||||||
{
|
|
||||||
$annotations = array();
|
|
||||||
foreach ($this->delegate->getMethodAnnotations($method) as $annot) {
|
|
||||||
$annotations[get_class($annot)] = $annot;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $annotations;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getMethodAnnotation(\ReflectionMethod $method, $annotation)
|
|
||||||
{
|
|
||||||
return $this->delegate->getMethodAnnotation($method, $annotation);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getPropertyAnnotations(\ReflectionProperty $property)
|
|
||||||
{
|
|
||||||
$annotations = array();
|
|
||||||
foreach ($this->delegate->getPropertyAnnotations($property) as $annot) {
|
|
||||||
$annotations[get_class($annot)] = $annot;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $annotations;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getPropertyAnnotation(\ReflectionProperty $property, $annotation)
|
|
||||||
{
|
|
||||||
return $this->delegate->getPropertyAnnotation($property, $annotation);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Proxies all methods to the delegate.
|
|
||||||
*
|
|
||||||
* @param string $method
|
|
||||||
* @param array $args
|
|
||||||
*
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function __call($method, $args)
|
|
||||||
{
|
|
||||||
return call_user_func_array(array($this->delegate, $method), $args);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,91 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations;
|
|
||||||
|
|
||||||
use SplFileObject;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parses a file for namespaces/use/class declarations.
|
|
||||||
*
|
|
||||||
* @author Fabien Potencier <fabien@symfony.com>
|
|
||||||
* @author Christian Kaps <christian.kaps@mohiva.com>
|
|
||||||
*/
|
|
||||||
final class PhpParser
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Parses a class.
|
|
||||||
*
|
|
||||||
* @param \ReflectionClass $class A <code>ReflectionClass</code> object.
|
|
||||||
*
|
|
||||||
* @return array A list with use statements in the form (Alias => FQN).
|
|
||||||
*/
|
|
||||||
public function parseClass(\ReflectionClass $class)
|
|
||||||
{
|
|
||||||
if (method_exists($class, 'getUseStatements')) {
|
|
||||||
return $class->getUseStatements();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (false === $filename = $class->getFileName()) {
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
$content = $this->getFileContent($filename, $class->getStartLine());
|
|
||||||
|
|
||||||
if (null === $content) {
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
$namespace = preg_quote($class->getNamespaceName());
|
|
||||||
$content = preg_replace('/^.*?(\bnamespace\s+' . $namespace . '\s*[;{].*)$/s', '\\1', $content);
|
|
||||||
$tokenizer = new TokenParser('<?php ' . $content);
|
|
||||||
|
|
||||||
$statements = $tokenizer->parseUseStatements($class->getNamespaceName());
|
|
||||||
|
|
||||||
return $statements;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the content of the file right up to the given line number.
|
|
||||||
*
|
|
||||||
* @param string $filename The name of the file to load.
|
|
||||||
* @param integer $lineNumber The number of lines to read from file.
|
|
||||||
*
|
|
||||||
* @return string|null The content of the file or null if the file does not exist.
|
|
||||||
*/
|
|
||||||
private function getFileContent($filename, $lineNumber)
|
|
||||||
{
|
|
||||||
if ( ! is_file($filename)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
$content = '';
|
|
||||||
$lineCnt = 0;
|
|
||||||
$file = new SplFileObject($filename);
|
|
||||||
while (!$file->eof()) {
|
|
||||||
if ($lineCnt++ == $lineNumber) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$content .= $file->fgets();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $content;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,89 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Interface for annotation readers.
|
|
||||||
*
|
|
||||||
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
|
|
||||||
*/
|
|
||||||
interface Reader
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Gets the annotations applied to a class.
|
|
||||||
*
|
|
||||||
* @param \ReflectionClass $class The ReflectionClass of the class from which
|
|
||||||
* the class annotations should be read.
|
|
||||||
*
|
|
||||||
* @return array An array of Annotations.
|
|
||||||
*/
|
|
||||||
function getClassAnnotations(\ReflectionClass $class);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets a class annotation.
|
|
||||||
*
|
|
||||||
* @param \ReflectionClass $class The ReflectionClass of the class from which
|
|
||||||
* the class annotations should be read.
|
|
||||||
* @param string $annotationName The name of the annotation.
|
|
||||||
*
|
|
||||||
* @return object|null The Annotation or NULL, if the requested annotation does not exist.
|
|
||||||
*/
|
|
||||||
function getClassAnnotation(\ReflectionClass $class, $annotationName);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the annotations applied to a method.
|
|
||||||
*
|
|
||||||
* @param \ReflectionMethod $method The ReflectionMethod of the method from which
|
|
||||||
* the annotations should be read.
|
|
||||||
*
|
|
||||||
* @return array An array of Annotations.
|
|
||||||
*/
|
|
||||||
function getMethodAnnotations(\ReflectionMethod $method);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets a method annotation.
|
|
||||||
*
|
|
||||||
* @param \ReflectionMethod $method The ReflectionMethod to read the annotations from.
|
|
||||||
* @param string $annotationName The name of the annotation.
|
|
||||||
*
|
|
||||||
* @return object|null The Annotation or NULL, if the requested annotation does not exist.
|
|
||||||
*/
|
|
||||||
function getMethodAnnotation(\ReflectionMethod $method, $annotationName);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the annotations applied to a property.
|
|
||||||
*
|
|
||||||
* @param \ReflectionProperty $property The ReflectionProperty of the property
|
|
||||||
* from which the annotations should be read.
|
|
||||||
*
|
|
||||||
* @return array An array of Annotations.
|
|
||||||
*/
|
|
||||||
function getPropertyAnnotations(\ReflectionProperty $property);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets a property annotation.
|
|
||||||
*
|
|
||||||
* @param \ReflectionProperty $property The ReflectionProperty to read the annotations from.
|
|
||||||
* @param string $annotationName The name of the annotation.
|
|
||||||
*
|
|
||||||
* @return object|null The Annotation or NULL, if the requested annotation does not exist.
|
|
||||||
*/
|
|
||||||
function getPropertyAnnotation(\ReflectionProperty $property, $annotationName);
|
|
||||||
}
|
|
|
@ -1,127 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Simple Annotation Reader.
|
|
||||||
*
|
|
||||||
* This annotation reader is intended to be used in projects where you have
|
|
||||||
* full-control over all annotations that are available.
|
|
||||||
*
|
|
||||||
* @since 2.2
|
|
||||||
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
|
|
||||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
|
||||||
*/
|
|
||||||
class SimpleAnnotationReader implements Reader
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var DocParser
|
|
||||||
*/
|
|
||||||
private $parser;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* Initializes a new SimpleAnnotationReader.
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->parser = new DocParser();
|
|
||||||
$this->parser->setIgnoreNotImportedAnnotations(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds a namespace in which we will look for annotations.
|
|
||||||
*
|
|
||||||
* @param string $namespace
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function addNamespace($namespace)
|
|
||||||
{
|
|
||||||
$this->parser->addNamespace($namespace);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getClassAnnotations(\ReflectionClass $class)
|
|
||||||
{
|
|
||||||
return $this->parser->parse($class->getDocComment(), 'class '.$class->getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getMethodAnnotations(\ReflectionMethod $method)
|
|
||||||
{
|
|
||||||
return $this->parser->parse($method->getDocComment(), 'method '.$method->getDeclaringClass()->name.'::'.$method->getName().'()');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getPropertyAnnotations(\ReflectionProperty $property)
|
|
||||||
{
|
|
||||||
return $this->parser->parse($property->getDocComment(), 'property '.$property->getDeclaringClass()->name.'::$'.$property->getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getClassAnnotation(\ReflectionClass $class, $annotationName)
|
|
||||||
{
|
|
||||||
foreach ($this->getClassAnnotations($class) as $annot) {
|
|
||||||
if ($annot instanceof $annotationName) {
|
|
||||||
return $annot;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getMethodAnnotation(\ReflectionMethod $method, $annotationName)
|
|
||||||
{
|
|
||||||
foreach ($this->getMethodAnnotations($method) as $annot) {
|
|
||||||
if ($annot instanceof $annotationName) {
|
|
||||||
return $annot;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName)
|
|
||||||
{
|
|
||||||
foreach ($this->getPropertyAnnotations($property) as $annot) {
|
|
||||||
if ($annot instanceof $annotationName) {
|
|
||||||
return $annot;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,194 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Annotations;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parses a file for namespaces/use/class declarations.
|
|
||||||
*
|
|
||||||
* @author Fabien Potencier <fabien@symfony.com>
|
|
||||||
* @author Christian Kaps <christian.kaps@mohiva.com>
|
|
||||||
*/
|
|
||||||
class TokenParser
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The token list.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private $tokens;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The number of tokens.
|
|
||||||
*
|
|
||||||
* @var int
|
|
||||||
*/
|
|
||||||
private $numTokens;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The current array pointer.
|
|
||||||
*
|
|
||||||
* @var int
|
|
||||||
*/
|
|
||||||
private $pointer = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $contents
|
|
||||||
*/
|
|
||||||
public function __construct($contents)
|
|
||||||
{
|
|
||||||
$this->tokens = token_get_all($contents);
|
|
||||||
|
|
||||||
// The PHP parser sets internal compiler globals for certain things. Annoyingly, the last docblock comment it
|
|
||||||
// saw gets stored in doc_comment. When it comes to compile the next thing to be include()d this stored
|
|
||||||
// doc_comment becomes owned by the first thing the compiler sees in the file that it considers might have a
|
|
||||||
// docblock. If the first thing in the file is a class without a doc block this would cause calls to
|
|
||||||
// getDocBlock() on said class to return our long lost doc_comment. Argh.
|
|
||||||
// To workaround, cause the parser to parse an empty docblock. Sure getDocBlock() will return this, but at least
|
|
||||||
// it's harmless to us.
|
|
||||||
token_get_all("<?php\n/**\n *\n */");
|
|
||||||
|
|
||||||
$this->numTokens = count($this->tokens);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the next non whitespace and non comment token.
|
|
||||||
*
|
|
||||||
* @param boolean $docCommentIsComment If TRUE then a doc comment is considered a comment and skipped.
|
|
||||||
* If FALSE then only whitespace and normal comments are skipped.
|
|
||||||
*
|
|
||||||
* @return array|null The token if exists, null otherwise.
|
|
||||||
*/
|
|
||||||
public function next($docCommentIsComment = TRUE)
|
|
||||||
{
|
|
||||||
for ($i = $this->pointer; $i < $this->numTokens; $i++) {
|
|
||||||
$this->pointer++;
|
|
||||||
if ($this->tokens[$i][0] === T_WHITESPACE ||
|
|
||||||
$this->tokens[$i][0] === T_COMMENT ||
|
|
||||||
($docCommentIsComment && $this->tokens[$i][0] === T_DOC_COMMENT)) {
|
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->tokens[$i];
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parses a single use statement.
|
|
||||||
*
|
|
||||||
* @return array A list with all found class names for a use statement.
|
|
||||||
*/
|
|
||||||
public function parseUseStatement()
|
|
||||||
{
|
|
||||||
|
|
||||||
$groupRoot = '';
|
|
||||||
$class = '';
|
|
||||||
$alias = '';
|
|
||||||
$statements = array();
|
|
||||||
$explicitAlias = false;
|
|
||||||
while (($token = $this->next())) {
|
|
||||||
$isNameToken = $token[0] === T_STRING || $token[0] === T_NS_SEPARATOR;
|
|
||||||
if (!$explicitAlias && $isNameToken) {
|
|
||||||
$class .= $token[1];
|
|
||||||
$alias = $token[1];
|
|
||||||
} else if ($explicitAlias && $isNameToken) {
|
|
||||||
$alias .= $token[1];
|
|
||||||
} else if ($token[0] === T_AS) {
|
|
||||||
$explicitAlias = true;
|
|
||||||
$alias = '';
|
|
||||||
} else if ($token === ',') {
|
|
||||||
$statements[strtolower($alias)] = $groupRoot . $class;
|
|
||||||
$class = '';
|
|
||||||
$alias = '';
|
|
||||||
$explicitAlias = false;
|
|
||||||
} else if ($token === ';') {
|
|
||||||
$statements[strtolower($alias)] = $groupRoot . $class;
|
|
||||||
break;
|
|
||||||
} else if ($token === '{' ) {
|
|
||||||
$groupRoot = $class;
|
|
||||||
$class = '';
|
|
||||||
} else if ($token === '}' ) {
|
|
||||||
continue;
|
|
||||||
} else {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $statements;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets all use statements.
|
|
||||||
*
|
|
||||||
* @param string $namespaceName The namespace name of the reflected class.
|
|
||||||
*
|
|
||||||
* @return array A list with all found use statements.
|
|
||||||
*/
|
|
||||||
public function parseUseStatements($namespaceName)
|
|
||||||
{
|
|
||||||
$statements = array();
|
|
||||||
while (($token = $this->next())) {
|
|
||||||
if ($token[0] === T_USE) {
|
|
||||||
$statements = array_merge($statements, $this->parseUseStatement());
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if ($token[0] !== T_NAMESPACE || $this->parseNamespace() != $namespaceName) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get fresh array for new namespace. This is to prevent the parser to collect the use statements
|
|
||||||
// for a previous namespace with the same name. This is the case if a namespace is defined twice
|
|
||||||
// or if a namespace with the same name is commented out.
|
|
||||||
$statements = array();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $statements;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the namespace.
|
|
||||||
*
|
|
||||||
* @return string The found namespace.
|
|
||||||
*/
|
|
||||||
public function parseNamespace()
|
|
||||||
{
|
|
||||||
$name = '';
|
|
||||||
while (($token = $this->next()) && ($token[0] === T_STRING || $token[0] === T_NS_SEPARATOR)) {
|
|
||||||
$name .= $token[1];
|
|
||||||
}
|
|
||||||
|
|
||||||
return $name;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the class name.
|
|
||||||
*
|
|
||||||
* @return string The found class name.
|
|
||||||
*/
|
|
||||||
public function parseClass()
|
|
||||||
{
|
|
||||||
// Namespaces and class names are tokenized the same: T_STRINGs
|
|
||||||
// separated by T_NS_SEPARATOR so we can use one function to provide
|
|
||||||
// both.
|
|
||||||
return $this->parseNamespace();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
parameters:
|
|
||||||
autoload_files:
|
|
||||||
- %currentWorkingDirectory%/tests/Doctrine/Tests/Common/Annotations/DocParserTest.php
|
|
||||||
excludes_analyse:
|
|
||||||
- %currentWorkingDirectory%/tests/*/Fixtures/*
|
|
||||||
polluteScopeWithLoopInitialAssignments: true
|
|
||||||
ignoreErrors:
|
|
||||||
- '#Class Doctrine_Tests_Common_Annotations_Fixtures_ClassNoNamespaceNoComment not found#'
|
|
||||||
- '#Instantiated class Doctrine_Tests_Common_Annotations_Fixtures_ClassNoNamespaceNoComment not found#'
|
|
||||||
- '#Property Doctrine\\Tests\\Common\\Annotations\\DummyClassNonAnnotationProblem::\$foo has unknown class#'
|
|
||||||
- '#Class Doctrine\\Tests\\Common\\Annotations\\True not found#'
|
|
||||||
- '#Class Doctrine\\Tests\\Common\\Annotations\\False not found#'
|
|
||||||
- '#Class Doctrine\\Tests\\Common\\Annotations\\Null not found#'
|
|
||||||
- '#Call to an undefined method ReflectionClass::getUseStatements\(\)#'
|
|
|
@ -1,4 +0,0 @@
|
||||||
# for php-coveralls
|
|
||||||
service_name: travis-ci
|
|
||||||
src_dir: lib
|
|
||||||
coverage_clover: build/logs/clover.xml
|
|
|
@ -1,4 +0,0 @@
|
||||||
vendor/
|
|
||||||
build/
|
|
||||||
phpunit.xml
|
|
||||||
composer.lock
|
|
|
@ -1,42 +0,0 @@
|
||||||
language: php
|
|
||||||
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- vendor
|
|
||||||
- $HOME/.composer/cache
|
|
||||||
|
|
||||||
php:
|
|
||||||
- 5.5
|
|
||||||
- 5.6
|
|
||||||
- 7.0
|
|
||||||
- hhvm
|
|
||||||
|
|
||||||
services:
|
|
||||||
- riak
|
|
||||||
- mongodb
|
|
||||||
- memcached
|
|
||||||
- redis-server
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
- if [[ $TRAVIS_PHP_VERSION != 'hhvm' ]] ; then pecl channel-update pecl.php.net; fi;
|
|
||||||
- if [[ $TRAVIS_PHP_VERSION != 'hhvm' && $TRAVIS_PHP_VERSION != '7.0' ]]; then pecl install riak-beta; fi;
|
|
||||||
- if [[ $TRAVIS_PHP_VERSION =~ 5.[56] ]] ; then echo yes | pecl install apcu-4.0.10; fi;
|
|
||||||
- if [[ $TRAVIS_PHP_VERSION = 7.* ]] ; then pecl config-set preferred_state beta; echo yes | pecl install apcu; fi;
|
|
||||||
- if [[ $TRAVIS_PHP_VERSION != 'hhvm' ]]; then phpenv config-add ./tests/travis/php.ini; fi;
|
|
||||||
|
|
||||||
install:
|
|
||||||
- travis_retry composer install
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./vendor/bin/phpunit -c ./tests/travis/phpunit.travis.xml -v
|
|
||||||
|
|
||||||
after_script:
|
|
||||||
- php vendor/bin/coveralls -v
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
fast_finish: true
|
|
||||||
allow_failures:
|
|
||||||
- php: hhvm
|
|
||||||
- php: 7.0
|
|
|
@ -1,19 +0,0 @@
|
||||||
Copyright (c) 2006-2015 Doctrine Project
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
||||||
this software and associated documentation files (the "Software"), to deal in
|
|
||||||
the Software without restriction, including without limitation the rights to
|
|
||||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
||||||
of the Software, and to permit persons to whom the Software is furnished to do
|
|
||||||
so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
|
@ -1,14 +0,0 @@
|
||||||
# Doctrine Cache
|
|
||||||
|
|
||||||
Master: [![Build Status](https://secure.travis-ci.org/doctrine/cache.png?branch=master)](http://travis-ci.org/doctrine/cache) [![Coverage Status](https://coveralls.io/repos/doctrine/cache/badge.png?branch=master)](https://coveralls.io/r/doctrine/cache?branch=master)
|
|
||||||
|
|
||||||
[![Latest Stable Version](https://poser.pugx.org/doctrine/cache/v/stable.png)](https://packagist.org/packages/doctrine/cache) [![Total Downloads](https://poser.pugx.org/doctrine/cache/downloads.png)](https://packagist.org/packages/doctrine/cache)
|
|
||||||
|
|
||||||
Cache component extracted from the Doctrine Common project.
|
|
||||||
|
|
||||||
## Changelog
|
|
||||||
|
|
||||||
### v1.2
|
|
||||||
|
|
||||||
* Added support for MongoDB as Cache Provider
|
|
||||||
* Fix namespace version reset
|
|
|
@ -1,16 +0,0 @@
|
||||||
# Upgrade to 1.4
|
|
||||||
|
|
||||||
## Minor BC Break: `Doctrine\Common\Cache\FileCache#$extension` is now `private`.
|
|
||||||
|
|
||||||
If you need to override the value of `Doctrine\Common\Cache\FileCache#$extension`, then use the
|
|
||||||
second parameter of `Doctrine\Common\Cache\FileCache#__construct()` instead of overriding
|
|
||||||
the property in your own implementation.
|
|
||||||
|
|
||||||
## Minor BC Break: file based caches paths changed
|
|
||||||
|
|
||||||
`Doctrine\Common\Cache\FileCache`, `Doctrine\Common\Cache\PhpFileCache` and
|
|
||||||
`Doctrine\Common\Cache\FilesystemCache` are using a different cache paths structure.
|
|
||||||
|
|
||||||
If you rely on warmed up caches for deployments, consider that caches generated
|
|
||||||
with `doctrine/cache` `<1.4` are not compatible with the new directory structure,
|
|
||||||
and will be ignored.
|
|
|
@ -1,3 +0,0 @@
|
||||||
# Version class and file
|
|
||||||
project.version_class = Doctrine\\Common\\Cache\\Version
|
|
||||||
project.version_file = lib/Doctrine/Common/Cache/Version.php
|
|
|
@ -1,110 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<project name="DoctrineCommonCache" default="build" basedir=".">
|
|
||||||
<property file="build.properties" />
|
|
||||||
|
|
||||||
<target name="php">
|
|
||||||
<exec executable="which" outputproperty="php_executable">
|
|
||||||
<arg value="php" />
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<target name="prepare">
|
|
||||||
<mkdir dir="build" />
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<target name="build" depends="check-git-checkout-clean,prepare,php,composer">
|
|
||||||
<exec executable="${php_executable}">
|
|
||||||
<arg value="build/composer.phar" />
|
|
||||||
<arg value="archive" />
|
|
||||||
<arg value="--dir=build" />
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<target name="composer" depends="php,composer-check,composer-download">
|
|
||||||
<exec executable="${php_executable}">
|
|
||||||
<arg value="build/composer.phar" />
|
|
||||||
<arg value="install" />
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<target name="composer-check" depends="prepare">
|
|
||||||
<available file="build/composer.phar" property="composer.present"/>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<target name="composer-download" unless="composer.present">
|
|
||||||
<exec executable="wget">
|
|
||||||
<arg value="-Obuild/composer.phar" />
|
|
||||||
<arg value="http://getcomposer.org/composer.phar" />
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<target name="make-release" depends="check-git-checkout-clean,prepare,php">
|
|
||||||
<replace file="${project.version_file}" token="-DEV" value="" failOnNoReplacements="true" />
|
|
||||||
<exec executable="git" failonerror="true" outputproperty="current_git_branch">
|
|
||||||
<arg value="rev-parse" />
|
|
||||||
<arg value="--abbrev-ref" />
|
|
||||||
<arg value="HEAD" />
|
|
||||||
</exec>
|
|
||||||
<exec executable="${php_executable}" outputproperty="doctrine.current_version" failonerror="true">
|
|
||||||
<arg value="-r" />
|
|
||||||
<arg value="require_once '${project.version_file}';echo ${project.version_class}::VERSION;" />
|
|
||||||
</exec>
|
|
||||||
<exec executable="${php_executable}" outputproperty="doctrine.next_version" failonerror="true">
|
|
||||||
<arg value="-r" />
|
|
||||||
<arg value="$parts = explode('.', str_ireplace(array('-DEV', '-ALPHA', '-BETA'), '', '${doctrine.current_version}'));
|
|
||||||
if (count($parts) != 3) {
|
|
||||||
throw new \InvalidArgumentException('Version is assumed in format x.y.z, ${doctrine.current_version} given');
|
|
||||||
}
|
|
||||||
if ('${current_git_branch}' === 'master') {
|
|
||||||
$parts[1]++;
|
|
||||||
} else {
|
|
||||||
$parts[2]++;
|
|
||||||
}
|
|
||||||
echo implode('.', $parts);
|
|
||||||
" />
|
|
||||||
</exec>
|
|
||||||
|
|
||||||
<git-commit file="${project.version_file}" message="Release ${doctrine.current_version}" />
|
|
||||||
<git-tag version="${doctrine.current_version}" />
|
|
||||||
<replace file="${project.version_file}" token="${doctrine.current_version}" value="${doctrine.next_version}-DEV" />
|
|
||||||
<git-commit file="${project.version_file}" message="Bump version to ${doctrine.next_version}" />
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<target name="check-git-checkout-clean">
|
|
||||||
<exec executable="git" failonerror="true">
|
|
||||||
<arg value="diff-index" />
|
|
||||||
<arg value="--quiet" />
|
|
||||||
<arg value="HEAD" />
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<macrodef name="git-commit">
|
|
||||||
<attribute name="file" default="NOT SET"/>
|
|
||||||
<attribute name="message" default="NOT SET"/>
|
|
||||||
|
|
||||||
<sequential>
|
|
||||||
<exec executable="git">
|
|
||||||
<arg value="add" />
|
|
||||||
<arg value="@{file}" />
|
|
||||||
</exec>
|
|
||||||
<exec executable="git">
|
|
||||||
<arg value="commit" />
|
|
||||||
<arg value="-m" />
|
|
||||||
<arg value="@{message}" />
|
|
||||||
</exec>
|
|
||||||
</sequential>
|
|
||||||
</macrodef>
|
|
||||||
|
|
||||||
<macrodef name="git-tag">
|
|
||||||
<attribute name="version" default="NOT SET" />
|
|
||||||
|
|
||||||
<sequential>
|
|
||||||
<exec executable="git">
|
|
||||||
<arg value="tag" />
|
|
||||||
<arg value="-m" />
|
|
||||||
<arg value="v@{version}" />
|
|
||||||
<arg value="v@{version}" />
|
|
||||||
</exec>
|
|
||||||
</sequential>
|
|
||||||
</macrodef>
|
|
||||||
</project>
|
|
|
@ -1,37 +0,0 @@
|
||||||
{
|
|
||||||
"name": "doctrine/cache",
|
|
||||||
"type": "library",
|
|
||||||
"description": "Caching library offering an object-oriented API for many cache backends",
|
|
||||||
"keywords": ["cache", "caching"],
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"license": "MIT",
|
|
||||||
"authors": [
|
|
||||||
{"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
|
|
||||||
{"name": "Roman Borschel", "email": "roman@code-factory.org"},
|
|
||||||
{"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"},
|
|
||||||
{"name": "Jonathan Wage", "email": "jonwage@gmail.com"},
|
|
||||||
{"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"}
|
|
||||||
],
|
|
||||||
"require": {
|
|
||||||
"php": "~5.5|~7.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "~4.8|~5.0",
|
|
||||||
"satooshi/php-coveralls": "~0.6",
|
|
||||||
"predis/predis": "~1.0"
|
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"doctrine/common": ">2.2,<2.4"
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": { "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" }
|
|
||||||
},
|
|
||||||
"autoload-dev": {
|
|
||||||
"psr-4": { "Doctrine\\Tests\\": "tests/Doctrine/Tests" }
|
|
||||||
},
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.6.x-dev"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,118 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* APC cache provider.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @deprecated since version 1.6, use ApcuCache instead
|
|
||||||
* @since 2.0
|
|
||||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
|
||||||
* @author Jonathan Wage <jonwage@gmail.com>
|
|
||||||
* @author Roman Borschel <roman@code-factory.org>
|
|
||||||
* @author David Abdemoulaie <dave@hobodave.com>
|
|
||||||
*/
|
|
||||||
class ApcCache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
return apc_fetch($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
return apc_exists($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
return apc_store($id, $data, $lifeTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
// apc_delete returns false if the id does not exist
|
|
||||||
return apc_delete($id) || ! apc_exists($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
return apc_clear_cache() && apc_clear_cache('user');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetchMultiple(array $keys)
|
|
||||||
{
|
|
||||||
return apc_fetch($keys) ?: [];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
|
||||||
{
|
|
||||||
$result = apc_store($keysAndValues, null, $lifetime);
|
|
||||||
|
|
||||||
return empty($result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
$info = apc_cache_info('', true);
|
|
||||||
$sma = apc_sma_info();
|
|
||||||
|
|
||||||
// @TODO - Temporary fix @see https://github.com/krakjoe/apcu/pull/42
|
|
||||||
if (PHP_VERSION_ID >= 50500) {
|
|
||||||
$info['num_hits'] = isset($info['num_hits']) ? $info['num_hits'] : $info['nhits'];
|
|
||||||
$info['num_misses'] = isset($info['num_misses']) ? $info['num_misses'] : $info['nmisses'];
|
|
||||||
$info['start_time'] = isset($info['start_time']) ? $info['start_time'] : $info['stime'];
|
|
||||||
}
|
|
||||||
|
|
||||||
return array(
|
|
||||||
Cache::STATS_HITS => $info['num_hits'],
|
|
||||||
Cache::STATS_MISSES => $info['num_misses'],
|
|
||||||
Cache::STATS_UPTIME => $info['start_time'],
|
|
||||||
Cache::STATS_MEMORY_USAGE => $info['mem_size'],
|
|
||||||
Cache::STATS_MEMORY_AVAILABLE => $sma['avail_mem'],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,106 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* APCu cache provider.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 1.6
|
|
||||||
* @author Kévin Dunglas <dunglas@gmail.com>
|
|
||||||
*/
|
|
||||||
class ApcuCache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
return apcu_fetch($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
return apcu_exists($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
return apcu_store($id, $data, $lifeTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
// apcu_delete returns false if the id does not exist
|
|
||||||
return apcu_delete($id) || ! apcu_exists($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
return apcu_clear_cache();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetchMultiple(array $keys)
|
|
||||||
{
|
|
||||||
return apcu_fetch($keys) ?: [];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
|
||||||
{
|
|
||||||
$result = apcu_store($keysAndValues, null, $lifetime);
|
|
||||||
|
|
||||||
return empty($result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
$info = apcu_cache_info(true);
|
|
||||||
$sma = apcu_sma_info();
|
|
||||||
|
|
||||||
return array(
|
|
||||||
Cache::STATS_HITS => $info['num_hits'],
|
|
||||||
Cache::STATS_MISSES => $info['num_misses'],
|
|
||||||
Cache::STATS_UPTIME => $info['start_time'],
|
|
||||||
Cache::STATS_MEMORY_USAGE => $info['mem_size'],
|
|
||||||
Cache::STATS_MEMORY_AVAILABLE => $sma['avail_mem'],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,142 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Array cache driver.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 2.0
|
|
||||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
|
||||||
* @author Jonathan Wage <jonwage@gmail.com>
|
|
||||||
* @author Roman Borschel <roman@code-factory.org>
|
|
||||||
* @author David Abdemoulaie <dave@hobodave.com>
|
|
||||||
*/
|
|
||||||
class ArrayCache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var array[] $data each element being a tuple of [$data, $expiration], where the expiration is int|bool
|
|
||||||
*/
|
|
||||||
private $data = [];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var int
|
|
||||||
*/
|
|
||||||
private $hitsCount = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var int
|
|
||||||
*/
|
|
||||||
private $missesCount = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var int
|
|
||||||
*/
|
|
||||||
private $upTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->upTime = time();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
if (! $this->doContains($id)) {
|
|
||||||
$this->missesCount += 1;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->hitsCount += 1;
|
|
||||||
|
|
||||||
return $this->data[$id][0];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
if (! isset($this->data[$id])) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$expiration = $this->data[$id][1];
|
|
||||||
|
|
||||||
if ($expiration && $expiration < time()) {
|
|
||||||
$this->doDelete($id);
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
$this->data[$id] = [$data, $lifeTime ? time() + $lifeTime : false];
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
unset($this->data[$id]);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
$this->data = [];
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
Cache::STATS_HITS => $this->hitsCount,
|
|
||||||
Cache::STATS_MISSES => $this->missesCount,
|
|
||||||
Cache::STATS_UPTIME => $this->upTime,
|
|
||||||
Cache::STATS_MEMORY_USAGE => null,
|
|
||||||
Cache::STATS_MEMORY_AVAILABLE => null,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,116 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Interface for cache drivers.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 2.0
|
|
||||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
|
||||||
* @author Jonathan Wage <jonwage@gmail.com>
|
|
||||||
* @author Roman Borschel <roman@code-factory.org>
|
|
||||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
|
||||||
* @author Kévin Dunglas <dunglas@gmail.com>
|
|
||||||
*/
|
|
||||||
interface Cache
|
|
||||||
{
|
|
||||||
const STATS_HITS = 'hits';
|
|
||||||
const STATS_MISSES = 'misses';
|
|
||||||
const STATS_UPTIME = 'uptime';
|
|
||||||
const STATS_MEMORY_USAGE = 'memory_usage';
|
|
||||||
const STATS_MEMORY_AVAILABLE = 'memory_available';
|
|
||||||
/**
|
|
||||||
* Only for backward compatibility (may be removed in next major release)
|
|
||||||
*
|
|
||||||
* @deprecated
|
|
||||||
*/
|
|
||||||
const STATS_MEMORY_AVAILIABLE = 'memory_available';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fetches an entry from the cache.
|
|
||||||
*
|
|
||||||
* @param string $id The id of the cache entry to fetch.
|
|
||||||
*
|
|
||||||
* @return mixed The cached data or FALSE, if no cache entry exists for the given id.
|
|
||||||
*/
|
|
||||||
public function fetch($id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests if an entry exists in the cache.
|
|
||||||
*
|
|
||||||
* @param string $id The cache id of the entry to check for.
|
|
||||||
*
|
|
||||||
* @return bool TRUE if a cache entry exists for the given cache id, FALSE otherwise.
|
|
||||||
*/
|
|
||||||
public function contains($id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Puts data into the cache.
|
|
||||||
*
|
|
||||||
* If a cache entry with the given id already exists, its data will be replaced.
|
|
||||||
*
|
|
||||||
* @param string $id The cache id.
|
|
||||||
* @param mixed $data The cache entry/data.
|
|
||||||
* @param int $lifeTime The lifetime in number of seconds for this cache entry.
|
|
||||||
* If zero (the default), the entry never expires (although it may be deleted from the cache
|
|
||||||
* to make place for other entries).
|
|
||||||
*
|
|
||||||
* @return bool TRUE if the entry was successfully stored in the cache, FALSE otherwise.
|
|
||||||
*/
|
|
||||||
public function save($id, $data, $lifeTime = 0);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Deletes a cache entry.
|
|
||||||
*
|
|
||||||
* @param string $id The cache id.
|
|
||||||
*
|
|
||||||
* @return bool TRUE if the cache entry was successfully deleted, FALSE otherwise.
|
|
||||||
* Deleting a non-existing entry is considered successful.
|
|
||||||
*/
|
|
||||||
public function delete($id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves cached information from the data store.
|
|
||||||
*
|
|
||||||
* The server's statistics array has the following values:
|
|
||||||
*
|
|
||||||
* - <b>hits</b>
|
|
||||||
* Number of keys that have been requested and found present.
|
|
||||||
*
|
|
||||||
* - <b>misses</b>
|
|
||||||
* Number of items that have been requested and not found.
|
|
||||||
*
|
|
||||||
* - <b>uptime</b>
|
|
||||||
* Time that the server is running.
|
|
||||||
*
|
|
||||||
* - <b>memory_usage</b>
|
|
||||||
* Memory used by this server to store items.
|
|
||||||
*
|
|
||||||
* - <b>memory_available</b>
|
|
||||||
* Memory allowed to use for storage.
|
|
||||||
*
|
|
||||||
* @since 2.2
|
|
||||||
*
|
|
||||||
* @return array|null An associative array with server's statistics if available, NULL otherwise.
|
|
||||||
*/
|
|
||||||
public function getStats();
|
|
||||||
}
|
|
|
@ -1,312 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Base class for cache provider implementations.
|
|
||||||
*
|
|
||||||
* @since 2.2
|
|
||||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
|
||||||
* @author Jonathan Wage <jonwage@gmail.com>
|
|
||||||
* @author Roman Borschel <roman@code-factory.org>
|
|
||||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
|
||||||
*/
|
|
||||||
abstract class CacheProvider implements Cache, FlushableCache, ClearableCache, MultiGetCache, MultiPutCache
|
|
||||||
{
|
|
||||||
const DOCTRINE_NAMESPACE_CACHEKEY = 'DoctrineNamespaceCacheKey[%s]';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The namespace to prefix all cache ids with.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $namespace = '';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The namespace version.
|
|
||||||
*
|
|
||||||
* @var integer|null
|
|
||||||
*/
|
|
||||||
private $namespaceVersion;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the namespace to prefix all cache ids with.
|
|
||||||
*
|
|
||||||
* @param string $namespace
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function setNamespace($namespace)
|
|
||||||
{
|
|
||||||
$this->namespace = (string) $namespace;
|
|
||||||
$this->namespaceVersion = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves the namespace that prefixes all cache ids.
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getNamespace()
|
|
||||||
{
|
|
||||||
return $this->namespace;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function fetch($id)
|
|
||||||
{
|
|
||||||
return $this->doFetch($this->getNamespacedId($id));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function fetchMultiple(array $keys)
|
|
||||||
{
|
|
||||||
if (empty($keys)) {
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
// note: the array_combine() is in place to keep an association between our $keys and the $namespacedKeys
|
|
||||||
$namespacedKeys = array_combine($keys, array_map(array($this, 'getNamespacedId'), $keys));
|
|
||||||
$items = $this->doFetchMultiple($namespacedKeys);
|
|
||||||
$foundItems = array();
|
|
||||||
|
|
||||||
// no internal array function supports this sort of mapping: needs to be iterative
|
|
||||||
// this filters and combines keys in one pass
|
|
||||||
foreach ($namespacedKeys as $requestedKey => $namespacedKey) {
|
|
||||||
if (isset($items[$namespacedKey]) || array_key_exists($namespacedKey, $items)) {
|
|
||||||
$foundItems[$requestedKey] = $items[$namespacedKey];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $foundItems;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function saveMultiple(array $keysAndValues, $lifetime = 0)
|
|
||||||
{
|
|
||||||
$namespacedKeysAndValues = array();
|
|
||||||
foreach ($keysAndValues as $key => $value) {
|
|
||||||
$namespacedKeysAndValues[$this->getNamespacedId($key)] = $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->doSaveMultiple($namespacedKeysAndValues, $lifetime);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function contains($id)
|
|
||||||
{
|
|
||||||
return $this->doContains($this->getNamespacedId($id));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function save($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
return $this->doSave($this->getNamespacedId($id), $data, $lifeTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function delete($id)
|
|
||||||
{
|
|
||||||
return $this->doDelete($this->getNamespacedId($id));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function getStats()
|
|
||||||
{
|
|
||||||
return $this->doGetStats();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function flushAll()
|
|
||||||
{
|
|
||||||
return $this->doFlush();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function deleteAll()
|
|
||||||
{
|
|
||||||
$namespaceCacheKey = $this->getNamespaceCacheKey();
|
|
||||||
$namespaceVersion = $this->getNamespaceVersion() + 1;
|
|
||||||
|
|
||||||
if ($this->doSave($namespaceCacheKey, $namespaceVersion)) {
|
|
||||||
$this->namespaceVersion = $namespaceVersion;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Prefixes the passed id with the configured namespace value.
|
|
||||||
*
|
|
||||||
* @param string $id The id to namespace.
|
|
||||||
*
|
|
||||||
* @return string The namespaced id.
|
|
||||||
*/
|
|
||||||
private function getNamespacedId($id)
|
|
||||||
{
|
|
||||||
$namespaceVersion = $this->getNamespaceVersion();
|
|
||||||
|
|
||||||
return sprintf('%s[%s][%s]', $this->namespace, $id, $namespaceVersion);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the namespace cache key.
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
private function getNamespaceCacheKey()
|
|
||||||
{
|
|
||||||
return sprintf(self::DOCTRINE_NAMESPACE_CACHEKEY, $this->namespace);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the namespace version.
|
|
||||||
*
|
|
||||||
* @return integer
|
|
||||||
*/
|
|
||||||
private function getNamespaceVersion()
|
|
||||||
{
|
|
||||||
if (null !== $this->namespaceVersion) {
|
|
||||||
return $this->namespaceVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
$namespaceCacheKey = $this->getNamespaceCacheKey();
|
|
||||||
$this->namespaceVersion = $this->doFetch($namespaceCacheKey) ?: 1;
|
|
||||||
|
|
||||||
return $this->namespaceVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default implementation of doFetchMultiple. Each driver that supports multi-get should owerwrite it.
|
|
||||||
*
|
|
||||||
* @param array $keys Array of keys to retrieve from cache
|
|
||||||
* @return array Array of values retrieved for the given keys.
|
|
||||||
*/
|
|
||||||
protected function doFetchMultiple(array $keys)
|
|
||||||
{
|
|
||||||
$returnValues = array();
|
|
||||||
|
|
||||||
foreach ($keys as $key) {
|
|
||||||
if (false !== ($item = $this->doFetch($key)) || $this->doContains($key)) {
|
|
||||||
$returnValues[$key] = $item;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $returnValues;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fetches an entry from the cache.
|
|
||||||
*
|
|
||||||
* @param string $id The id of the cache entry to fetch.
|
|
||||||
*
|
|
||||||
* @return mixed|false The cached data or FALSE, if no cache entry exists for the given id.
|
|
||||||
*/
|
|
||||||
abstract protected function doFetch($id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests if an entry exists in the cache.
|
|
||||||
*
|
|
||||||
* @param string $id The cache id of the entry to check for.
|
|
||||||
*
|
|
||||||
* @return bool TRUE if a cache entry exists for the given cache id, FALSE otherwise.
|
|
||||||
*/
|
|
||||||
abstract protected function doContains($id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default implementation of doSaveMultiple. Each driver that supports multi-put should override it.
|
|
||||||
*
|
|
||||||
* @param array $keysAndValues Array of keys and values to save in cache
|
|
||||||
* @param int $lifetime The lifetime. If != 0, sets a specific lifetime for these
|
|
||||||
* cache entries (0 => infinite lifeTime).
|
|
||||||
*
|
|
||||||
* @return bool TRUE if the operation was successful, FALSE if it wasn't.
|
|
||||||
*/
|
|
||||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
|
||||||
{
|
|
||||||
$success = true;
|
|
||||||
|
|
||||||
foreach ($keysAndValues as $key => $value) {
|
|
||||||
if (!$this->doSave($key, $value, $lifetime)) {
|
|
||||||
$success = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $success;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Puts data into the cache.
|
|
||||||
*
|
|
||||||
* @param string $id The cache id.
|
|
||||||
* @param string $data The cache entry/data.
|
|
||||||
* @param int $lifeTime The lifetime. If != 0, sets a specific lifetime for this
|
|
||||||
* cache entry (0 => infinite lifeTime).
|
|
||||||
*
|
|
||||||
* @return bool TRUE if the entry was successfully stored in the cache, FALSE otherwise.
|
|
||||||
*/
|
|
||||||
abstract protected function doSave($id, $data, $lifeTime = 0);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Deletes a cache entry.
|
|
||||||
*
|
|
||||||
* @param string $id The cache id.
|
|
||||||
*
|
|
||||||
* @return bool TRUE if the cache entry was successfully deleted, FALSE otherwise.
|
|
||||||
*/
|
|
||||||
abstract protected function doDelete($id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Flushes all cache entries.
|
|
||||||
*
|
|
||||||
* @return bool TRUE if the cache entries were successfully flushed, FALSE otherwise.
|
|
||||||
*/
|
|
||||||
abstract protected function doFlush();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves cached information from the data store.
|
|
||||||
*
|
|
||||||
* @since 2.2
|
|
||||||
*
|
|
||||||
* @return array|null An associative array with server's statistics if available, NULL otherwise.
|
|
||||||
*/
|
|
||||||
abstract protected function doGetStats();
|
|
||||||
}
|
|
|
@ -1,147 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Cache provider that allows to easily chain multiple cache providers
|
|
||||||
*
|
|
||||||
* @author Michaël Gallego <mic.gallego@gmail.com>
|
|
||||||
*/
|
|
||||||
class ChainCache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var CacheProvider[]
|
|
||||||
*/
|
|
||||||
private $cacheProviders = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* @param CacheProvider[] $cacheProviders
|
|
||||||
*/
|
|
||||||
public function __construct($cacheProviders = array())
|
|
||||||
{
|
|
||||||
$this->cacheProviders = $cacheProviders;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function setNamespace($namespace)
|
|
||||||
{
|
|
||||||
parent::setNamespace($namespace);
|
|
||||||
|
|
||||||
foreach ($this->cacheProviders as $cacheProvider) {
|
|
||||||
$cacheProvider->setNamespace($namespace);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
foreach ($this->cacheProviders as $key => $cacheProvider) {
|
|
||||||
if ($cacheProvider->doContains($id)) {
|
|
||||||
$value = $cacheProvider->doFetch($id);
|
|
||||||
|
|
||||||
// We populate all the previous cache layers (that are assumed to be faster)
|
|
||||||
for ($subKey = $key - 1 ; $subKey >= 0 ; $subKey--) {
|
|
||||||
$this->cacheProviders[$subKey]->doSave($id, $value);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
foreach ($this->cacheProviders as $cacheProvider) {
|
|
||||||
if ($cacheProvider->doContains($id)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
$stored = true;
|
|
||||||
|
|
||||||
foreach ($this->cacheProviders as $cacheProvider) {
|
|
||||||
$stored = $cacheProvider->doSave($id, $data, $lifeTime) && $stored;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $stored;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
$deleted = true;
|
|
||||||
|
|
||||||
foreach ($this->cacheProviders as $cacheProvider) {
|
|
||||||
$deleted = $cacheProvider->doDelete($id) && $deleted;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $deleted;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
$flushed = true;
|
|
||||||
|
|
||||||
foreach ($this->cacheProviders as $cacheProvider) {
|
|
||||||
$flushed = $cacheProvider->doFlush() && $flushed;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $flushed;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
// We return all the stats from all adapters
|
|
||||||
$stats = array();
|
|
||||||
|
|
||||||
foreach ($this->cacheProviders as $cacheProvider) {
|
|
||||||
$stats[] = $cacheProvider->doGetStats();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $stats;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Interface for cache that can be flushed.
|
|
||||||
*
|
|
||||||
* Intended to be used for partial clearing of a cache namespace. For a more
|
|
||||||
* global "flushing", see {@see FlushableCache}.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 1.4
|
|
||||||
* @author Adirelle <adirelle@gmail.com>
|
|
||||||
*/
|
|
||||||
interface ClearableCache
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Deletes all cache entries in the current cache namespace.
|
|
||||||
*
|
|
||||||
* @return bool TRUE if the cache entries were successfully deleted, FALSE otherwise.
|
|
||||||
*/
|
|
||||||
public function deleteAll();
|
|
||||||
}
|
|
|
@ -1,121 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
use \Couchbase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Couchbase cache provider.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 2.4
|
|
||||||
* @author Michael Nitschinger <michael@nitschinger.at>
|
|
||||||
*/
|
|
||||||
class CouchbaseCache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var Couchbase|null
|
|
||||||
*/
|
|
||||||
private $couchbase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the Couchbase instance to use.
|
|
||||||
*
|
|
||||||
* @param Couchbase $couchbase
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function setCouchbase(Couchbase $couchbase)
|
|
||||||
{
|
|
||||||
$this->couchbase = $couchbase;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the Couchbase instance used by the cache.
|
|
||||||
*
|
|
||||||
* @return Couchbase|null
|
|
||||||
*/
|
|
||||||
public function getCouchbase()
|
|
||||||
{
|
|
||||||
return $this->couchbase;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
return $this->couchbase->get($id) ?: false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
return (null !== $this->couchbase->get($id));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
if ($lifeTime > 30 * 24 * 3600) {
|
|
||||||
$lifeTime = time() + $lifeTime;
|
|
||||||
}
|
|
||||||
return $this->couchbase->set($id, $data, (int) $lifeTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
return $this->couchbase->delete($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
return $this->couchbase->flush();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
$stats = $this->couchbase->getStats();
|
|
||||||
$servers = $this->couchbase->getServers();
|
|
||||||
$server = explode(":", $servers[0]);
|
|
||||||
$key = $server[0] . ":" . "11210";
|
|
||||||
$stats = $stats[$key];
|
|
||||||
return array(
|
|
||||||
Cache::STATS_HITS => $stats['get_hits'],
|
|
||||||
Cache::STATS_MISSES => $stats['get_misses'],
|
|
||||||
Cache::STATS_UPTIME => $stats['uptime'],
|
|
||||||
Cache::STATS_MEMORY_USAGE => $stats['bytes'],
|
|
||||||
Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,286 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Base file cache driver.
|
|
||||||
*
|
|
||||||
* @since 2.3
|
|
||||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
|
||||||
* @author Tobias Schultze <http://tobion.de>
|
|
||||||
*/
|
|
||||||
abstract class FileCache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The cache directory.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $directory;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The cache file extension.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $extension;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var int
|
|
||||||
*/
|
|
||||||
private $umask;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var int
|
|
||||||
*/
|
|
||||||
private $directoryStringLength;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var int
|
|
||||||
*/
|
|
||||||
private $extensionStringLength;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var bool
|
|
||||||
*/
|
|
||||||
private $isRunningOnWindows;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* @param string $directory The cache directory.
|
|
||||||
* @param string $extension The cache file extension.
|
|
||||||
*
|
|
||||||
* @throws \InvalidArgumentException
|
|
||||||
*/
|
|
||||||
public function __construct($directory, $extension = '', $umask = 0002)
|
|
||||||
{
|
|
||||||
// YES, this needs to be *before* createPathIfNeeded()
|
|
||||||
if ( ! is_int($umask)) {
|
|
||||||
throw new \InvalidArgumentException(sprintf(
|
|
||||||
'The umask parameter is required to be integer, was: %s',
|
|
||||||
gettype($umask)
|
|
||||||
));
|
|
||||||
}
|
|
||||||
$this->umask = $umask;
|
|
||||||
|
|
||||||
if ( ! $this->createPathIfNeeded($directory)) {
|
|
||||||
throw new \InvalidArgumentException(sprintf(
|
|
||||||
'The directory "%s" does not exist and could not be created.',
|
|
||||||
$directory
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( ! is_writable($directory)) {
|
|
||||||
throw new \InvalidArgumentException(sprintf(
|
|
||||||
'The directory "%s" is not writable.',
|
|
||||||
$directory
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
// YES, this needs to be *after* createPathIfNeeded()
|
|
||||||
$this->directory = realpath($directory);
|
|
||||||
$this->extension = (string) $extension;
|
|
||||||
|
|
||||||
$this->directoryStringLength = strlen($this->directory);
|
|
||||||
$this->extensionStringLength = strlen($this->extension);
|
|
||||||
$this->isRunningOnWindows = defined('PHP_WINDOWS_VERSION_BUILD');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the cache directory.
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getDirectory()
|
|
||||||
{
|
|
||||||
return $this->directory;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the cache file extension.
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getExtension()
|
|
||||||
{
|
|
||||||
return $this->extension;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $id
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
protected function getFilename($id)
|
|
||||||
{
|
|
||||||
$hash = hash('sha256', $id);
|
|
||||||
|
|
||||||
// This ensures that the filename is unique and that there are no invalid chars in it.
|
|
||||||
if (
|
|
||||||
'' === $id
|
|
||||||
|| ((strlen($id) * 2 + $this->extensionStringLength) > 255)
|
|
||||||
|| ($this->isRunningOnWindows && ($this->directoryStringLength + 4 + strlen($id) * 2 + $this->extensionStringLength) > 258)
|
|
||||||
) {
|
|
||||||
// Most filesystems have a limit of 255 chars for each path component. On Windows the the whole path is limited
|
|
||||||
// to 260 chars (including terminating null char). Using long UNC ("\\?\" prefix) does not work with the PHP API.
|
|
||||||
// And there is a bug in PHP (https://bugs.php.net/bug.php?id=70943) with path lengths of 259.
|
|
||||||
// So if the id in hex representation would surpass the limit, we use the hash instead. The prefix prevents
|
|
||||||
// collisions between the hash and bin2hex.
|
|
||||||
$filename = '_' . $hash;
|
|
||||||
} else {
|
|
||||||
$filename = bin2hex($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->directory
|
|
||||||
. DIRECTORY_SEPARATOR
|
|
||||||
. substr($hash, 0, 2)
|
|
||||||
. DIRECTORY_SEPARATOR
|
|
||||||
. $filename
|
|
||||||
. $this->extension;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
$filename = $this->getFilename($id);
|
|
||||||
|
|
||||||
return @unlink($filename) || ! file_exists($filename);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
foreach ($this->getIterator() as $name => $file) {
|
|
||||||
if ($file->isDir()) {
|
|
||||||
// Remove the intermediate directories which have been created to balance the tree. It only takes effect
|
|
||||||
// if the directory is empty. If several caches share the same directory but with different file extensions,
|
|
||||||
// the other ones are not removed.
|
|
||||||
@rmdir($name);
|
|
||||||
} elseif ($this->isFilenameEndingWithExtension($name)) {
|
|
||||||
// If an extension is set, only remove files which end with the given extension.
|
|
||||||
// If no extension is set, we have no other choice than removing everything.
|
|
||||||
@unlink($name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
$usage = 0;
|
|
||||||
foreach ($this->getIterator() as $name => $file) {
|
|
||||||
if (! $file->isDir() && $this->isFilenameEndingWithExtension($name)) {
|
|
||||||
$usage += $file->getSize();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$free = disk_free_space($this->directory);
|
|
||||||
|
|
||||||
return array(
|
|
||||||
Cache::STATS_HITS => null,
|
|
||||||
Cache::STATS_MISSES => null,
|
|
||||||
Cache::STATS_UPTIME => null,
|
|
||||||
Cache::STATS_MEMORY_USAGE => $usage,
|
|
||||||
Cache::STATS_MEMORY_AVAILABLE => $free,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create path if needed.
|
|
||||||
*
|
|
||||||
* @param string $path
|
|
||||||
* @return bool TRUE on success or if path already exists, FALSE if path cannot be created.
|
|
||||||
*/
|
|
||||||
private function createPathIfNeeded($path)
|
|
||||||
{
|
|
||||||
if ( ! is_dir($path)) {
|
|
||||||
if (false === @mkdir($path, 0777 & (~$this->umask), true) && !is_dir($path)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Writes a string content to file in an atomic way.
|
|
||||||
*
|
|
||||||
* @param string $filename Path to the file where to write the data.
|
|
||||||
* @param string $content The content to write
|
|
||||||
*
|
|
||||||
* @return bool TRUE on success, FALSE if path cannot be created, if path is not writable or an any other error.
|
|
||||||
*/
|
|
||||||
protected function writeFile($filename, $content)
|
|
||||||
{
|
|
||||||
$filepath = pathinfo($filename, PATHINFO_DIRNAME);
|
|
||||||
|
|
||||||
if ( ! $this->createPathIfNeeded($filepath)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( ! is_writable($filepath)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$tmpFile = tempnam($filepath, 'swap');
|
|
||||||
@chmod($tmpFile, 0666 & (~$this->umask));
|
|
||||||
|
|
||||||
if (file_put_contents($tmpFile, $content) !== false) {
|
|
||||||
if (@rename($tmpFile, $filename)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@unlink($tmpFile);
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return \Iterator
|
|
||||||
*/
|
|
||||||
private function getIterator()
|
|
||||||
{
|
|
||||||
return new \RecursiveIteratorIterator(
|
|
||||||
new \RecursiveDirectoryIterator($this->directory, \FilesystemIterator::SKIP_DOTS),
|
|
||||||
\RecursiveIteratorIterator::CHILD_FIRST
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $name The filename
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
private function isFilenameEndingWithExtension($name)
|
|
||||||
{
|
|
||||||
return '' === $this->extension
|
|
||||||
|| strrpos($name, $this->extension) === (strlen($name) - $this->extensionStringLength);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,111 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Filesystem cache driver.
|
|
||||||
*
|
|
||||||
* @since 2.3
|
|
||||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
|
||||||
*/
|
|
||||||
class FilesystemCache extends FileCache
|
|
||||||
{
|
|
||||||
const EXTENSION = '.doctrinecache.data';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function __construct($directory, $extension = self::EXTENSION, $umask = 0002)
|
|
||||||
{
|
|
||||||
parent::__construct($directory, $extension, $umask);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
$data = '';
|
|
||||||
$lifetime = -1;
|
|
||||||
$filename = $this->getFilename($id);
|
|
||||||
|
|
||||||
if ( ! is_file($filename)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$resource = fopen($filename, "r");
|
|
||||||
|
|
||||||
if (false !== ($line = fgets($resource))) {
|
|
||||||
$lifetime = (int) $line;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($lifetime !== 0 && $lifetime < time()) {
|
|
||||||
fclose($resource);
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (false !== ($line = fgets($resource))) {
|
|
||||||
$data .= $line;
|
|
||||||
}
|
|
||||||
|
|
||||||
fclose($resource);
|
|
||||||
|
|
||||||
return unserialize($data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
$lifetime = -1;
|
|
||||||
$filename = $this->getFilename($id);
|
|
||||||
|
|
||||||
if ( ! is_file($filename)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$resource = fopen($filename, "r");
|
|
||||||
|
|
||||||
if (false !== ($line = fgets($resource))) {
|
|
||||||
$lifetime = (int) $line;
|
|
||||||
}
|
|
||||||
|
|
||||||
fclose($resource);
|
|
||||||
|
|
||||||
return $lifetime === 0 || $lifetime > time();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
if ($lifeTime > 0) {
|
|
||||||
$lifeTime = time() + $lifeTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = serialize($data);
|
|
||||||
$filename = $this->getFilename($id);
|
|
||||||
|
|
||||||
return $this->writeFile($filename, $lifeTime . PHP_EOL . $data);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Interface for cache that can be flushed.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 1.4
|
|
||||||
* @author Adirelle <adirelle@gmail.com>
|
|
||||||
*/
|
|
||||||
interface FlushableCache
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Flushes all cache entries, globally.
|
|
||||||
*
|
|
||||||
* @return bool TRUE if the cache entries were successfully flushed, FALSE otherwise.
|
|
||||||
*/
|
|
||||||
public function flushAll();
|
|
||||||
}
|
|
|
@ -1,126 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
use \Memcache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Memcache cache provider.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 2.0
|
|
||||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
|
||||||
* @author Jonathan Wage <jonwage@gmail.com>
|
|
||||||
* @author Roman Borschel <roman@code-factory.org>
|
|
||||||
* @author David Abdemoulaie <dave@hobodave.com>
|
|
||||||
*/
|
|
||||||
class MemcacheCache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var Memcache|null
|
|
||||||
*/
|
|
||||||
private $memcache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the memcache instance to use.
|
|
||||||
*
|
|
||||||
* @param Memcache $memcache
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function setMemcache(Memcache $memcache)
|
|
||||||
{
|
|
||||||
$this->memcache = $memcache;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the memcache instance used by the cache.
|
|
||||||
*
|
|
||||||
* @return Memcache|null
|
|
||||||
*/
|
|
||||||
public function getMemcache()
|
|
||||||
{
|
|
||||||
return $this->memcache;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
return $this->memcache->get($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
$flags = null;
|
|
||||||
$this->memcache->get($id, $flags);
|
|
||||||
|
|
||||||
//if memcache has changed the value of "flags", it means the value exists
|
|
||||||
return ($flags !== null);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
if ($lifeTime > 30 * 24 * 3600) {
|
|
||||||
$lifeTime = time() + $lifeTime;
|
|
||||||
}
|
|
||||||
return $this->memcache->set($id, $data, 0, (int) $lifeTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
// Memcache::delete() returns false if entry does not exist
|
|
||||||
return $this->memcache->delete($id) || ! $this->doContains($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
return $this->memcache->flush();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
$stats = $this->memcache->getStats();
|
|
||||||
return array(
|
|
||||||
Cache::STATS_HITS => $stats['get_hits'],
|
|
||||||
Cache::STATS_MISSES => $stats['get_misses'],
|
|
||||||
Cache::STATS_UPTIME => $stats['uptime'],
|
|
||||||
Cache::STATS_MEMORY_USAGE => $stats['bytes'],
|
|
||||||
Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,147 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
use \Memcached;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Memcached cache provider.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 2.2
|
|
||||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
|
||||||
* @author Jonathan Wage <jonwage@gmail.com>
|
|
||||||
* @author Roman Borschel <roman@code-factory.org>
|
|
||||||
* @author David Abdemoulaie <dave@hobodave.com>
|
|
||||||
*/
|
|
||||||
class MemcachedCache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var Memcached|null
|
|
||||||
*/
|
|
||||||
private $memcached;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the memcache instance to use.
|
|
||||||
*
|
|
||||||
* @param Memcached $memcached
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function setMemcached(Memcached $memcached)
|
|
||||||
{
|
|
||||||
$this->memcached = $memcached;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the memcached instance used by the cache.
|
|
||||||
*
|
|
||||||
* @return Memcached|null
|
|
||||||
*/
|
|
||||||
public function getMemcached()
|
|
||||||
{
|
|
||||||
return $this->memcached;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
return $this->memcached->get($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetchMultiple(array $keys)
|
|
||||||
{
|
|
||||||
return $this->memcached->getMulti($keys) ?: [];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
|
||||||
{
|
|
||||||
if ($lifetime > 30 * 24 * 3600) {
|
|
||||||
$lifetime = time() + $lifetime;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->memcached->setMulti($keysAndValues, $lifetime);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
$this->memcached->get($id);
|
|
||||||
|
|
||||||
return $this->memcached->getResultCode() === Memcached::RES_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
if ($lifeTime > 30 * 24 * 3600) {
|
|
||||||
$lifeTime = time() + $lifeTime;
|
|
||||||
}
|
|
||||||
return $this->memcached->set($id, $data, (int) $lifeTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
return $this->memcached->delete($id)
|
|
||||||
|| $this->memcached->getResultCode() === Memcached::RES_NOTFOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
return $this->memcached->flush();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
$stats = $this->memcached->getStats();
|
|
||||||
$servers = $this->memcached->getServerList();
|
|
||||||
$key = $servers[0]['host'] . ':' . $servers[0]['port'];
|
|
||||||
$stats = $stats[$key];
|
|
||||||
return array(
|
|
||||||
Cache::STATS_HITS => $stats['get_hits'],
|
|
||||||
Cache::STATS_MISSES => $stats['get_misses'],
|
|
||||||
Cache::STATS_UPTIME => $stats['uptime'],
|
|
||||||
Cache::STATS_MEMORY_USAGE => $stats['bytes'],
|
|
||||||
Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,197 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
use MongoBinData;
|
|
||||||
use MongoCollection;
|
|
||||||
use MongoCursorException;
|
|
||||||
use MongoDate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* MongoDB cache provider.
|
|
||||||
*
|
|
||||||
* @since 1.1
|
|
||||||
* @author Jeremy Mikola <jmikola@gmail.com>
|
|
||||||
*/
|
|
||||||
class MongoDBCache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The data field will store the serialized PHP value.
|
|
||||||
*/
|
|
||||||
const DATA_FIELD = 'd';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The expiration field will store a MongoDate value indicating when the
|
|
||||||
* cache entry should expire.
|
|
||||||
*
|
|
||||||
* With MongoDB 2.2+, entries can be automatically deleted by MongoDB by
|
|
||||||
* indexing this field with the "expireAfterSeconds" option equal to zero.
|
|
||||||
* This will direct MongoDB to regularly query for and delete any entries
|
|
||||||
* whose date is older than the current time. Entries without a date value
|
|
||||||
* in this field will be ignored.
|
|
||||||
*
|
|
||||||
* The cache provider will also check dates on its own, in case expired
|
|
||||||
* entries are fetched before MongoDB's TTLMonitor pass can expire them.
|
|
||||||
*
|
|
||||||
* @see http://docs.mongodb.org/manual/tutorial/expire-data/
|
|
||||||
*/
|
|
||||||
const EXPIRATION_FIELD = 'e';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var MongoCollection
|
|
||||||
*/
|
|
||||||
private $collection;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* This provider will default to the write concern and read preference
|
|
||||||
* options set on the MongoCollection instance (or inherited from MongoDB or
|
|
||||||
* MongoClient). Using an unacknowledged write concern (< 1) may make the
|
|
||||||
* return values of delete() and save() unreliable. Reading from secondaries
|
|
||||||
* may make contain() and fetch() unreliable.
|
|
||||||
*
|
|
||||||
* @see http://www.php.net/manual/en/mongo.readpreferences.php
|
|
||||||
* @see http://www.php.net/manual/en/mongo.writeconcerns.php
|
|
||||||
* @param MongoCollection $collection
|
|
||||||
*/
|
|
||||||
public function __construct(MongoCollection $collection)
|
|
||||||
{
|
|
||||||
$this->collection = $collection;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
$document = $this->collection->findOne(array('_id' => $id), array(self::DATA_FIELD, self::EXPIRATION_FIELD));
|
|
||||||
|
|
||||||
if ($document === null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->isExpired($document)) {
|
|
||||||
$this->doDelete($id);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return unserialize($document[self::DATA_FIELD]->bin);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
$document = $this->collection->findOne(array('_id' => $id), array(self::EXPIRATION_FIELD));
|
|
||||||
|
|
||||||
if ($document === null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->isExpired($document)) {
|
|
||||||
$this->doDelete($id);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
$result = $this->collection->update(
|
|
||||||
array('_id' => $id),
|
|
||||||
array('$set' => array(
|
|
||||||
self::EXPIRATION_FIELD => ($lifeTime > 0 ? new MongoDate(time() + $lifeTime) : null),
|
|
||||||
self::DATA_FIELD => new MongoBinData(serialize($data), MongoBinData::BYTE_ARRAY),
|
|
||||||
)),
|
|
||||||
array('upsert' => true, 'multiple' => false)
|
|
||||||
);
|
|
||||||
} catch (MongoCursorException $e) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return isset($result['ok']) ? $result['ok'] == 1 : true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
$result = $this->collection->remove(array('_id' => $id));
|
|
||||||
|
|
||||||
return isset($result['ok']) ? $result['ok'] == 1 : true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
// Use remove() in lieu of drop() to maintain any collection indexes
|
|
||||||
$result = $this->collection->remove();
|
|
||||||
|
|
||||||
return isset($result['ok']) ? $result['ok'] == 1 : true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
$serverStatus = $this->collection->db->command(array(
|
|
||||||
'serverStatus' => 1,
|
|
||||||
'locks' => 0,
|
|
||||||
'metrics' => 0,
|
|
||||||
'recordStats' => 0,
|
|
||||||
'repl' => 0,
|
|
||||||
));
|
|
||||||
|
|
||||||
$collStats = $this->collection->db->command(array('collStats' => 1));
|
|
||||||
|
|
||||||
return array(
|
|
||||||
Cache::STATS_HITS => null,
|
|
||||||
Cache::STATS_MISSES => null,
|
|
||||||
Cache::STATS_UPTIME => (isset($serverStatus['uptime']) ? (int) $serverStatus['uptime'] : null),
|
|
||||||
Cache::STATS_MEMORY_USAGE => (isset($collStats['size']) ? (int) $collStats['size'] : null),
|
|
||||||
Cache::STATS_MEMORY_AVAILABLE => null,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if the document is expired.
|
|
||||||
*
|
|
||||||
* @param array $document
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
private function isExpired(array $document)
|
|
||||||
{
|
|
||||||
return isset($document[self::EXPIRATION_FIELD]) &&
|
|
||||||
$document[self::EXPIRATION_FIELD] instanceof MongoDate &&
|
|
||||||
$document[self::EXPIRATION_FIELD]->sec < time();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Interface for cache drivers that allows to get many items at once.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 1.4
|
|
||||||
* @author Asmir Mustafic <goetas@gmail.com>
|
|
||||||
*/
|
|
||||||
interface MultiGetCache
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Returns an associative array of values for keys is found in cache.
|
|
||||||
*
|
|
||||||
* @param string[] $keys Array of keys to retrieve from cache
|
|
||||||
* @return mixed[] Array of retrieved values, indexed by the specified keys.
|
|
||||||
* Values that couldn't be retrieved are not contained in this array.
|
|
||||||
*/
|
|
||||||
function fetchMultiple(array $keys);
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Interface for cache drivers that allows to put many items at once.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 1.6
|
|
||||||
* @author Daniel Gorgan <danut007ro@gmail.com>
|
|
||||||
*/
|
|
||||||
interface MultiPutCache
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Returns a boolean value indicating if the operation succeeded.
|
|
||||||
*
|
|
||||||
* @param array $keysAndValues Array of keys and values to save in cache
|
|
||||||
* @param int $lifetime The lifetime. If != 0, sets a specific lifetime for these
|
|
||||||
* cache entries (0 => infinite lifeTime).
|
|
||||||
*
|
|
||||||
* @return bool TRUE if the operation was successful, FALSE if it wasn't.
|
|
||||||
*/
|
|
||||||
function saveMultiple(array $keysAndValues, $lifetime = 0);
|
|
||||||
}
|
|
|
@ -1,120 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Php file cache driver.
|
|
||||||
*
|
|
||||||
* @since 2.3
|
|
||||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
|
||||||
*/
|
|
||||||
class PhpFileCache extends FileCache
|
|
||||||
{
|
|
||||||
const EXTENSION = '.doctrinecache.php';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function __construct($directory, $extension = self::EXTENSION, $umask = 0002)
|
|
||||||
{
|
|
||||||
parent::__construct($directory, $extension, $umask);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
$value = $this->includeFileForId($id);
|
|
||||||
|
|
||||||
if (! $value) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($value['lifetime'] !== 0 && $value['lifetime'] < time()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $value['data'];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
$value = $this->includeFileForId($id);
|
|
||||||
|
|
||||||
if (! $value) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $value['lifetime'] === 0 || $value['lifetime'] > time();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
if ($lifeTime > 0) {
|
|
||||||
$lifeTime = time() + $lifeTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_object($data) && ! method_exists($data, '__set_state')) {
|
|
||||||
throw new \InvalidArgumentException(
|
|
||||||
"Invalid argument given, PhpFileCache only allows objects that implement __set_state() " .
|
|
||||||
"and fully support var_export(). You can use the FilesystemCache to save arbitrary object " .
|
|
||||||
"graphs using serialize()/deserialize()."
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$filename = $this->getFilename($id);
|
|
||||||
|
|
||||||
$value = array(
|
|
||||||
'lifetime' => $lifeTime,
|
|
||||||
'data' => $data
|
|
||||||
);
|
|
||||||
|
|
||||||
$value = var_export($value, true);
|
|
||||||
$code = sprintf('<?php return %s;', $value);
|
|
||||||
|
|
||||||
return $this->writeFile($filename, $code);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $id
|
|
||||||
*
|
|
||||||
* @return array|false
|
|
||||||
*/
|
|
||||||
private function includeFileForId($id)
|
|
||||||
{
|
|
||||||
$fileName = $this->getFilename($id);
|
|
||||||
|
|
||||||
// note: error suppression is still faster than `file_exists`, `is_file` and `is_readable`
|
|
||||||
$value = @include $fileName;
|
|
||||||
|
|
||||||
if (! isset($value['lifetime'])) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $value;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,136 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
use Predis\ClientInterface;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Predis cache provider.
|
|
||||||
*
|
|
||||||
* @author othillo <othillo@othillo.nl>
|
|
||||||
*/
|
|
||||||
class PredisCache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var ClientInterface
|
|
||||||
*/
|
|
||||||
private $client;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param ClientInterface $client
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct(ClientInterface $client)
|
|
||||||
{
|
|
||||||
$this->client = $client;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
$result = $this->client->get($id);
|
|
||||||
if (null === $result) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return unserialize($result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetchMultiple(array $keys)
|
|
||||||
{
|
|
||||||
$fetchedItems = call_user_func_array(array($this->client, 'mget'), $keys);
|
|
||||||
|
|
||||||
return array_map('unserialize', array_filter(array_combine($keys, $fetchedItems)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
|
||||||
{
|
|
||||||
if ($lifetime) {
|
|
||||||
$success = true;
|
|
||||||
|
|
||||||
// Keys have lifetime, use SETEX for each of them
|
|
||||||
foreach ($keysAndValues as $key => $value) {
|
|
||||||
$response = $this->client->setex($key, $lifetime, serialize($value));
|
|
||||||
|
|
||||||
if ((string) $response != 'OK') {
|
|
||||||
$success = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $success;
|
|
||||||
}
|
|
||||||
|
|
||||||
// No lifetime, use MSET
|
|
||||||
$response = $this->client->mset(array_map(function ($value) {
|
|
||||||
return serialize($value);
|
|
||||||
}, $keysAndValues));
|
|
||||||
|
|
||||||
return (string) $response == 'OK';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
return (bool) $this->client->exists($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
$data = serialize($data);
|
|
||||||
if ($lifeTime > 0) {
|
|
||||||
$response = $this->client->setex($id, $lifeTime, $data);
|
|
||||||
} else {
|
|
||||||
$response = $this->client->set($id, $data);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $response === true || $response == 'OK';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
return $this->client->del($id) >= 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
$response = $this->client->flushdb();
|
|
||||||
|
|
||||||
return $response === true || $response == 'OK';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
$info = $this->client->info();
|
|
||||||
|
|
||||||
return array(
|
|
||||||
Cache::STATS_HITS => $info['Stats']['keyspace_hits'],
|
|
||||||
Cache::STATS_MISSES => $info['Stats']['keyspace_misses'],
|
|
||||||
Cache::STATS_UPTIME => $info['Server']['uptime_in_seconds'],
|
|
||||||
Cache::STATS_MEMORY_USAGE => $info['Memory']['used_memory'],
|
|
||||||
Cache::STATS_MEMORY_AVAILABLE => false
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,180 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
use Redis;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Redis cache provider.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 2.2
|
|
||||||
* @author Osman Ungur <osmanungur@gmail.com>
|
|
||||||
*/
|
|
||||||
class RedisCache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var Redis|null
|
|
||||||
*/
|
|
||||||
private $redis;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the redis instance to use.
|
|
||||||
*
|
|
||||||
* @param Redis $redis
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function setRedis(Redis $redis)
|
|
||||||
{
|
|
||||||
$redis->setOption(Redis::OPT_SERIALIZER, $this->getSerializerValue());
|
|
||||||
$this->redis = $redis;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the redis instance used by the cache.
|
|
||||||
*
|
|
||||||
* @return Redis|null
|
|
||||||
*/
|
|
||||||
public function getRedis()
|
|
||||||
{
|
|
||||||
return $this->redis;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
return $this->redis->get($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetchMultiple(array $keys)
|
|
||||||
{
|
|
||||||
$fetchedItems = array_combine($keys, $this->redis->mget($keys));
|
|
||||||
|
|
||||||
// Redis mget returns false for keys that do not exist. So we need to filter those out unless it's the real data.
|
|
||||||
$foundItems = array();
|
|
||||||
|
|
||||||
foreach ($fetchedItems as $key => $value) {
|
|
||||||
if (false !== $value || $this->redis->exists($key)) {
|
|
||||||
$foundItems[$key] = $value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $foundItems;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
|
||||||
{
|
|
||||||
if ($lifetime) {
|
|
||||||
$success = true;
|
|
||||||
|
|
||||||
// Keys have lifetime, use SETEX for each of them
|
|
||||||
foreach ($keysAndValues as $key => $value) {
|
|
||||||
if (!$this->redis->setex($key, $lifetime, $value)) {
|
|
||||||
$success = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $success;
|
|
||||||
}
|
|
||||||
|
|
||||||
// No lifetime, use MSET
|
|
||||||
return (bool) $this->redis->mset($keysAndValues);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
return $this->redis->exists($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
if ($lifeTime > 0) {
|
|
||||||
return $this->redis->setex($id, $lifeTime, $data);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->redis->set($id, $data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
return $this->redis->delete($id) >= 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
return $this->redis->flushDB();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
$info = $this->redis->info();
|
|
||||||
return array(
|
|
||||||
Cache::STATS_HITS => $info['keyspace_hits'],
|
|
||||||
Cache::STATS_MISSES => $info['keyspace_misses'],
|
|
||||||
Cache::STATS_UPTIME => $info['uptime_in_seconds'],
|
|
||||||
Cache::STATS_MEMORY_USAGE => $info['used_memory'],
|
|
||||||
Cache::STATS_MEMORY_AVAILABLE => false
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the serializer constant to use. If Redis is compiled with
|
|
||||||
* igbinary support, that is used. Otherwise the default PHP serializer is
|
|
||||||
* used.
|
|
||||||
*
|
|
||||||
* @return integer One of the Redis::SERIALIZER_* constants
|
|
||||||
*/
|
|
||||||
protected function getSerializerValue()
|
|
||||||
{
|
|
||||||
if (defined('HHVM_VERSION')) {
|
|
||||||
return Redis::SERIALIZER_PHP;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (defined('Redis::SERIALIZER_IGBINARY') && extension_loaded('igbinary')) {
|
|
||||||
return Redis::SERIALIZER_IGBINARY;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Redis::SERIALIZER_PHP;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,250 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
use Riak\Bucket;
|
|
||||||
use Riak\Connection;
|
|
||||||
use Riak\Input;
|
|
||||||
use Riak\Exception;
|
|
||||||
use Riak\Object;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Riak cache provider.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 1.1
|
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
|
||||||
*/
|
|
||||||
class RiakCache extends CacheProvider
|
|
||||||
{
|
|
||||||
const EXPIRES_HEADER = 'X-Riak-Meta-Expires';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var \Riak\Bucket
|
|
||||||
*/
|
|
||||||
private $bucket;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the riak bucket instance to use.
|
|
||||||
*
|
|
||||||
* @param \Riak\Bucket $bucket
|
|
||||||
*/
|
|
||||||
public function __construct(Bucket $bucket)
|
|
||||||
{
|
|
||||||
$this->bucket = $bucket;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
$response = $this->bucket->get($id);
|
|
||||||
|
|
||||||
// No objects found
|
|
||||||
if ( ! $response->hasObject()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check for attempted siblings
|
|
||||||
$object = ($response->hasSiblings())
|
|
||||||
? $this->resolveConflict($id, $response->getVClock(), $response->getObjectList())
|
|
||||||
: $response->getFirstObject();
|
|
||||||
|
|
||||||
// Check for expired object
|
|
||||||
if ($this->isExpired($object)) {
|
|
||||||
$this->bucket->delete($object);
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return unserialize($object->getContent());
|
|
||||||
} catch (Exception\RiakException $e) {
|
|
||||||
// Covers:
|
|
||||||
// - Riak\ConnectionException
|
|
||||||
// - Riak\CommunicationException
|
|
||||||
// - Riak\UnexpectedResponseException
|
|
||||||
// - Riak\NotFoundException
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
// We only need the HEAD, not the entire object
|
|
||||||
$input = new Input\GetInput();
|
|
||||||
|
|
||||||
$input->setReturnHead(true);
|
|
||||||
|
|
||||||
$response = $this->bucket->get($id, $input);
|
|
||||||
|
|
||||||
// No objects found
|
|
||||||
if ( ! $response->hasObject()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$object = $response->getFirstObject();
|
|
||||||
|
|
||||||
// Check for expired object
|
|
||||||
if ($this->isExpired($object)) {
|
|
||||||
$this->bucket->delete($object);
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
} catch (Exception\RiakException $e) {
|
|
||||||
// Do nothing
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
$object = new Object($id);
|
|
||||||
|
|
||||||
$object->setContent(serialize($data));
|
|
||||||
|
|
||||||
if ($lifeTime > 0) {
|
|
||||||
$object->addMetadata(self::EXPIRES_HEADER, (string) (time() + $lifeTime));
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->bucket->put($object);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
} catch (Exception\RiakException $e) {
|
|
||||||
// Do nothing
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
$this->bucket->delete($id);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
} catch (Exception\BadArgumentsException $e) {
|
|
||||||
// Key did not exist on cluster already
|
|
||||||
} catch (Exception\RiakException $e) {
|
|
||||||
// Covers:
|
|
||||||
// - Riak\Exception\ConnectionException
|
|
||||||
// - Riak\Exception\CommunicationException
|
|
||||||
// - Riak\Exception\UnexpectedResponseException
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
$keyList = $this->bucket->getKeyList();
|
|
||||||
|
|
||||||
foreach ($keyList as $key) {
|
|
||||||
$this->bucket->delete($key);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
} catch (Exception\RiakException $e) {
|
|
||||||
// Do nothing
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
// Only exposed through HTTP stats API, not Protocol Buffers API
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if a given Riak Object have expired.
|
|
||||||
*
|
|
||||||
* @param \Riak\Object $object
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
private function isExpired(Object $object)
|
|
||||||
{
|
|
||||||
$metadataMap = $object->getMetadataMap();
|
|
||||||
|
|
||||||
return isset($metadataMap[self::EXPIRES_HEADER])
|
|
||||||
&& $metadataMap[self::EXPIRES_HEADER] < time();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* On-read conflict resolution. Applied approach here is last write wins.
|
|
||||||
* Specific needs may override this method to apply alternate conflict resolutions.
|
|
||||||
*
|
|
||||||
* {@internal Riak does not attempt to resolve a write conflict, and store
|
|
||||||
* it as sibling of conflicted one. By following this approach, it is up to
|
|
||||||
* the next read to resolve the conflict. When this happens, your fetched
|
|
||||||
* object will have a list of siblings (read as a list of objects).
|
|
||||||
* In our specific case, we do not care about the intermediate ones since
|
|
||||||
* they are all the same read from storage, and we do apply a last sibling
|
|
||||||
* (last write) wins logic.
|
|
||||||
* If by any means our resolution generates another conflict, it'll up to
|
|
||||||
* next read to properly solve it.}
|
|
||||||
*
|
|
||||||
* @param string $id
|
|
||||||
* @param string $vClock
|
|
||||||
* @param array $objectList
|
|
||||||
*
|
|
||||||
* @return \Riak\Object
|
|
||||||
*/
|
|
||||||
protected function resolveConflict($id, $vClock, array $objectList)
|
|
||||||
{
|
|
||||||
// Our approach here is last-write wins
|
|
||||||
$winner = $objectList[count($objectList)];
|
|
||||||
|
|
||||||
$putInput = new Input\PutInput();
|
|
||||||
$putInput->setVClock($vClock);
|
|
||||||
|
|
||||||
$mergedObject = new Object($id);
|
|
||||||
$mergedObject->setContent($winner->getContent());
|
|
||||||
|
|
||||||
$this->bucket->put($mergedObject, $putInput);
|
|
||||||
|
|
||||||
return $mergedObject;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,220 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
use SQLite3;
|
|
||||||
use SQLite3Result;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* SQLite3 cache provider.
|
|
||||||
*
|
|
||||||
* @since 1.4
|
|
||||||
* @author Jake Bell <jake@theunraveler.com>
|
|
||||||
*/
|
|
||||||
class SQLite3Cache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The ID field will store the cache key.
|
|
||||||
*/
|
|
||||||
const ID_FIELD = 'k';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The data field will store the serialized PHP value.
|
|
||||||
*/
|
|
||||||
const DATA_FIELD = 'd';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The expiration field will store a date value indicating when the
|
|
||||||
* cache entry should expire.
|
|
||||||
*/
|
|
||||||
const EXPIRATION_FIELD = 'e';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var SQLite3
|
|
||||||
*/
|
|
||||||
private $sqlite;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $table;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* Calling the constructor will ensure that the database file and table
|
|
||||||
* exist and will create both if they don't.
|
|
||||||
*
|
|
||||||
* @param SQLite3 $sqlite
|
|
||||||
* @param string $table
|
|
||||||
*/
|
|
||||||
public function __construct(SQLite3 $sqlite, $table)
|
|
||||||
{
|
|
||||||
$this->sqlite = $sqlite;
|
|
||||||
$this->table = (string) $table;
|
|
||||||
|
|
||||||
list($id, $data, $exp) = $this->getFields();
|
|
||||||
|
|
||||||
return $this->sqlite->exec(sprintf(
|
|
||||||
'CREATE TABLE IF NOT EXISTS %s(%s TEXT PRIMARY KEY NOT NULL, %s BLOB, %s INTEGER)',
|
|
||||||
$table,
|
|
||||||
$id,
|
|
||||||
$data,
|
|
||||||
$exp
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
if ($item = $this->findById($id)) {
|
|
||||||
return unserialize($item[self::DATA_FIELD]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
return null !== $this->findById($id, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
$statement = $this->sqlite->prepare(sprintf(
|
|
||||||
'INSERT OR REPLACE INTO %s (%s) VALUES (:id, :data, :expire)',
|
|
||||||
$this->table,
|
|
||||||
implode(',', $this->getFields())
|
|
||||||
));
|
|
||||||
|
|
||||||
$statement->bindValue(':id', $id);
|
|
||||||
$statement->bindValue(':data', serialize($data), SQLITE3_BLOB);
|
|
||||||
$statement->bindValue(':expire', $lifeTime > 0 ? time() + $lifeTime : null);
|
|
||||||
|
|
||||||
return $statement->execute() instanceof SQLite3Result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
list($idField) = $this->getFields();
|
|
||||||
|
|
||||||
$statement = $this->sqlite->prepare(sprintf(
|
|
||||||
'DELETE FROM %s WHERE %s = :id',
|
|
||||||
$this->table,
|
|
||||||
$idField
|
|
||||||
));
|
|
||||||
|
|
||||||
$statement->bindValue(':id', $id);
|
|
||||||
|
|
||||||
return $statement->execute() instanceof SQLite3Result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
return $this->sqlite->exec(sprintf('DELETE FROM %s', $this->table));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
// no-op.
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Find a single row by ID.
|
|
||||||
*
|
|
||||||
* @param mixed $id
|
|
||||||
* @param bool $includeData
|
|
||||||
*
|
|
||||||
* @return array|null
|
|
||||||
*/
|
|
||||||
private function findById($id, $includeData = true)
|
|
||||||
{
|
|
||||||
list($idField) = $fields = $this->getFields();
|
|
||||||
|
|
||||||
if (!$includeData) {
|
|
||||||
$key = array_search(static::DATA_FIELD, $fields);
|
|
||||||
unset($fields[$key]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$statement = $this->sqlite->prepare(sprintf(
|
|
||||||
'SELECT %s FROM %s WHERE %s = :id LIMIT 1',
|
|
||||||
implode(',', $fields),
|
|
||||||
$this->table,
|
|
||||||
$idField
|
|
||||||
));
|
|
||||||
|
|
||||||
$statement->bindValue(':id', $id, SQLITE3_TEXT);
|
|
||||||
|
|
||||||
$item = $statement->execute()->fetchArray(SQLITE3_ASSOC);
|
|
||||||
|
|
||||||
if ($item === false) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->isExpired($item)) {
|
|
||||||
$this->doDelete($id);
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $item;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets an array of the fields in our table.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private function getFields()
|
|
||||||
{
|
|
||||||
return array(static::ID_FIELD, static::DATA_FIELD, static::EXPIRATION_FIELD);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if the item is expired.
|
|
||||||
*
|
|
||||||
* @param array $item
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
private function isExpired(array $item)
|
|
||||||
{
|
|
||||||
return isset($item[static::EXPIRATION_FIELD]) &&
|
|
||||||
$item[self::EXPIRATION_FIELD] !== null &&
|
|
||||||
$item[self::EXPIRATION_FIELD] < time();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
class Version
|
|
||||||
{
|
|
||||||
const VERSION = '1.6.1-DEV';
|
|
||||||
}
|
|
|
@ -1,78 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Void cache driver. The cache could be of use in tests where you don`t need to cache anything.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 1.5
|
|
||||||
* @author Kotlyar Maksim <kotlyar.maksim@gmail.com>
|
|
||||||
*/
|
|
||||||
class VoidCache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,109 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* WinCache cache provider.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 2.2
|
|
||||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
|
||||||
* @author Jonathan Wage <jonwage@gmail.com>
|
|
||||||
* @author Roman Borschel <roman@code-factory.org>
|
|
||||||
* @author David Abdemoulaie <dave@hobodave.com>
|
|
||||||
*/
|
|
||||||
class WinCacheCache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
return wincache_ucache_get($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
return wincache_ucache_exists($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
return wincache_ucache_set($id, $data, $lifeTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
return wincache_ucache_delete($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
return wincache_ucache_clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetchMultiple(array $keys)
|
|
||||||
{
|
|
||||||
return wincache_ucache_get($keys);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
|
||||||
{
|
|
||||||
$result = wincache_ucache_set($keysAndValues, null, $lifetime);
|
|
||||||
|
|
||||||
return empty($result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
$info = wincache_ucache_info();
|
|
||||||
$meminfo = wincache_ucache_meminfo();
|
|
||||||
|
|
||||||
return array(
|
|
||||||
Cache::STATS_HITS => $info['total_hit_count'],
|
|
||||||
Cache::STATS_MISSES => $info['total_miss_count'],
|
|
||||||
Cache::STATS_UPTIME => $info['total_cache_uptime'],
|
|
||||||
Cache::STATS_MEMORY_USAGE => $meminfo['memory_total'],
|
|
||||||
Cache::STATS_MEMORY_AVAILABLE => $meminfo['memory_free'],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,112 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Xcache cache driver.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 2.0
|
|
||||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
|
||||||
* @author Jonathan Wage <jonwage@gmail.com>
|
|
||||||
* @author Roman Borschel <roman@code-factory.org>
|
|
||||||
* @author David Abdemoulaie <dave@hobodave.com>
|
|
||||||
*/
|
|
||||||
class XcacheCache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
return $this->doContains($id) ? unserialize(xcache_get($id)) : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
return xcache_isset($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
return xcache_set($id, serialize($data), (int) $lifeTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
return xcache_unset($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
$this->checkAuthorization();
|
|
||||||
|
|
||||||
xcache_clear_cache(XC_TYPE_VAR);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks that xcache.admin.enable_auth is Off.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @throws \BadMethodCallException When xcache.admin.enable_auth is On.
|
|
||||||
*/
|
|
||||||
protected function checkAuthorization()
|
|
||||||
{
|
|
||||||
if (ini_get('xcache.admin.enable_auth')) {
|
|
||||||
throw new \BadMethodCallException(
|
|
||||||
'To use all features of \Doctrine\Common\Cache\XcacheCache, '
|
|
||||||
. 'you must set "xcache.admin.enable_auth" to "Off" in your php.ini.'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
$this->checkAuthorization();
|
|
||||||
|
|
||||||
$info = xcache_info(XC_TYPE_VAR, 0);
|
|
||||||
return array(
|
|
||||||
Cache::STATS_HITS => $info['hits'],
|
|
||||||
Cache::STATS_MISSES => $info['misses'],
|
|
||||||
Cache::STATS_UPTIME => null,
|
|
||||||
Cache::STATS_MEMORY_USAGE => $info['size'],
|
|
||||||
Cache::STATS_MEMORY_AVAILABLE => $info['avail'],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,83 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Zend Data Cache cache driver.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 2.0
|
|
||||||
* @author Ralph Schindler <ralph.schindler@zend.com>
|
|
||||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
|
||||||
*/
|
|
||||||
class ZendDataCache extends CacheProvider
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFetch($id)
|
|
||||||
{
|
|
||||||
return zend_shm_cache_fetch($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doContains($id)
|
|
||||||
{
|
|
||||||
return (false !== zend_shm_cache_fetch($id));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doSave($id, $data, $lifeTime = 0)
|
|
||||||
{
|
|
||||||
return zend_shm_cache_store($id, $data, $lifeTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doDelete($id)
|
|
||||||
{
|
|
||||||
return zend_shm_cache_delete($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doFlush()
|
|
||||||
{
|
|
||||||
$namespace = $this->getNamespace();
|
|
||||||
if (empty($namespace)) {
|
|
||||||
return zend_shm_cache_clear();
|
|
||||||
}
|
|
||||||
return zend_shm_cache_clear($namespace);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected function doGetStats()
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<phpunit
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
|
|
||||||
backupGlobals="false"
|
|
||||||
colors="true"
|
|
||||||
bootstrap="vendor/autoload.php"
|
|
||||||
>
|
|
||||||
<php>
|
|
||||||
<ini name="error_reporting" value="-1" />
|
|
||||||
</php>
|
|
||||||
|
|
||||||
<testsuites>
|
|
||||||
<testsuite name="Doctrine Cache Test Suite">
|
|
||||||
<directory>./tests/Doctrine/</directory>
|
|
||||||
</testsuite>
|
|
||||||
</testsuites>
|
|
||||||
|
|
||||||
<filter>
|
|
||||||
<whitelist>
|
|
||||||
<directory>./lib/Doctrine/</directory>
|
|
||||||
</whitelist>
|
|
||||||
</filter>
|
|
||||||
</phpunit>
|
|
|
@ -1,28 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\ApcCache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @requires extension apc
|
|
||||||
*/
|
|
||||||
class ApcCacheTest extends CacheTest
|
|
||||||
{
|
|
||||||
protected function setUp()
|
|
||||||
{
|
|
||||||
if (!ini_get('apc.enable_cli')) {
|
|
||||||
$this->markTestSkipped('APC must be enabled for the CLI with the ini setting apc.enable_cli=1');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function _getCacheDriver()
|
|
||||||
{
|
|
||||||
return new ApcCache();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testLifetime()
|
|
||||||
{
|
|
||||||
$this->markTestSkipped('The APC cache TTL is not working in a single process/request. See https://bugs.php.net/bug.php?id=58084');
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\ApcuCache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @requires extension apcu
|
|
||||||
*/
|
|
||||||
class ApcuCacheTest extends CacheTest
|
|
||||||
{
|
|
||||||
protected function setUp()
|
|
||||||
{
|
|
||||||
if (!ini_get('apc.enable_cli')) {
|
|
||||||
$this->markTestSkipped('APC must be enabled for the CLI with the ini setting apc.enable_cli=1');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function _getCacheDriver()
|
|
||||||
{
|
|
||||||
return new ApcuCache();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testLifetime()
|
|
||||||
{
|
|
||||||
$this->markTestSkipped('The APC cache TTL is not working in a single process/request. See https://bugs.php.net/bug.php?id=58084');
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,52 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\ArrayCache;
|
|
||||||
use Doctrine\Common\Cache\Cache;
|
|
||||||
|
|
||||||
class ArrayCacheTest extends CacheTest
|
|
||||||
{
|
|
||||||
protected function _getCacheDriver()
|
|
||||||
{
|
|
||||||
return new ArrayCache();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testGetStats()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$cache->fetch('test1');
|
|
||||||
$cache->fetch('test2');
|
|
||||||
$cache->fetch('test3');
|
|
||||||
|
|
||||||
$cache->save('test1', 123);
|
|
||||||
$cache->save('test2', 123);
|
|
||||||
|
|
||||||
$cache->fetch('test1');
|
|
||||||
$cache->fetch('test2');
|
|
||||||
$cache->fetch('test3');
|
|
||||||
|
|
||||||
$stats = $cache->getStats();
|
|
||||||
$this->assertEquals(2, $stats[Cache::STATS_HITS]);
|
|
||||||
$this->assertEquals(5, $stats[Cache::STATS_MISSES]); // +1 for internal call to DoctrineNamespaceCacheKey
|
|
||||||
$this->assertNotNull($stats[Cache::STATS_UPTIME]);
|
|
||||||
$this->assertNull($stats[Cache::STATS_MEMORY_USAGE]);
|
|
||||||
$this->assertNull($stats[Cache::STATS_MEMORY_AVAILABLE]);
|
|
||||||
|
|
||||||
$cache->delete('test1');
|
|
||||||
$cache->delete('test2');
|
|
||||||
|
|
||||||
$cache->fetch('test1');
|
|
||||||
$cache->fetch('test2');
|
|
||||||
$cache->fetch('test3');
|
|
||||||
|
|
||||||
$stats = $cache->getStats();
|
|
||||||
$this->assertEquals(2, $stats[Cache::STATS_HITS]);
|
|
||||||
$this->assertEquals(8, $stats[Cache::STATS_MISSES]); // +1 for internal call to DoctrineNamespaceCacheKey
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function isSharedStorage()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,155 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\FileCache;
|
|
||||||
use RecursiveDirectoryIterator;
|
|
||||||
use RecursiveIteratorIterator;
|
|
||||||
|
|
||||||
abstract class BaseFileCacheTest extends CacheTest
|
|
||||||
{
|
|
||||||
protected $directory;
|
|
||||||
|
|
||||||
protected function setUp()
|
|
||||||
{
|
|
||||||
do {
|
|
||||||
$this->directory = sys_get_temp_dir() . '/doctrine_cache_'. uniqid();
|
|
||||||
} while (file_exists($this->directory));
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function tearDown()
|
|
||||||
{
|
|
||||||
if ( ! is_dir($this->directory)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$iterator = new RecursiveDirectoryIterator($this->directory);
|
|
||||||
|
|
||||||
foreach (new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::CHILD_FIRST) as $file) {
|
|
||||||
if ($file->isFile()) {
|
|
||||||
@unlink($file->getRealPath());
|
|
||||||
} elseif ($file->isDir()) {
|
|
||||||
@rmdir($file->getRealPath());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@rmdir($this->directory);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testFlushAllRemovesBalancingDirectories()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
$this->assertTrue($cache->save('key1', 1));
|
|
||||||
$this->assertTrue($cache->save('key2', 2));
|
|
||||||
$this->assertTrue($cache->flushAll());
|
|
||||||
|
|
||||||
$iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->directory, \FilesystemIterator::SKIP_DOTS), \RecursiveIteratorIterator::CHILD_FIRST);
|
|
||||||
|
|
||||||
$this->assertCount(0, $iterator);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function isSharedStorage()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPathLengthsToTest()
|
|
||||||
{
|
|
||||||
// Windows officially supports 260 bytes including null terminator
|
|
||||||
// 258 bytes available to use due to php bug #70943
|
|
||||||
// Windows officially supports 260 bytes including null terminator
|
|
||||||
// 259 characters is too large due to PHP bug (https://bugs.php.net/bug.php?id=70943)
|
|
||||||
// 260 characters is too large - null terminator is included in allowable length
|
|
||||||
return array(
|
|
||||||
array(257, false),
|
|
||||||
array(258, false),
|
|
||||||
array(259, true),
|
|
||||||
array(260, true)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static function getBasePathForWindowsPathLengthTests($pathLength)
|
|
||||||
{
|
|
||||||
return FileCacheTest::getBasePathForWindowsPathLengthTests($pathLength);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param int $length
|
|
||||||
* @param string $basePath
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private static function getKeyAndPathFittingLength($length, $basePath)
|
|
||||||
{
|
|
||||||
$baseDirLength = strlen($basePath);
|
|
||||||
$extensionLength = strlen('.doctrine.cache');
|
|
||||||
$directoryLength = strlen(DIRECTORY_SEPARATOR . 'aa' . DIRECTORY_SEPARATOR);
|
|
||||||
$namespaceAndBracketLength = strlen(bin2hex("[][1]"));
|
|
||||||
$keyLength = $length
|
|
||||||
- ($baseDirLength
|
|
||||||
+ $extensionLength
|
|
||||||
+ $directoryLength
|
|
||||||
+ $namespaceAndBracketLength);
|
|
||||||
|
|
||||||
$key = str_repeat('a', floor($keyLength / 2));
|
|
||||||
$namespacedKey = '[' . $key . '][1]';
|
|
||||||
|
|
||||||
$keyHash = hash('sha256', $namespacedKey);
|
|
||||||
|
|
||||||
$keyPath = $basePath
|
|
||||||
. DIRECTORY_SEPARATOR
|
|
||||||
. substr($keyHash, 0, 2)
|
|
||||||
. DIRECTORY_SEPARATOR
|
|
||||||
. bin2hex($namespacedKey)
|
|
||||||
. '.doctrine.cache';
|
|
||||||
|
|
||||||
$hashedKeyPath = $basePath
|
|
||||||
. DIRECTORY_SEPARATOR
|
|
||||||
. substr($keyHash, 0, 2)
|
|
||||||
. DIRECTORY_SEPARATOR
|
|
||||||
. '_' . $keyHash
|
|
||||||
. '.doctrine.cache';
|
|
||||||
|
|
||||||
return array($key, $keyPath, $hashedKeyPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider getPathLengthsToTest
|
|
||||||
*
|
|
||||||
* @param int $length
|
|
||||||
* @param bool $pathShouldBeHashed
|
|
||||||
*/
|
|
||||||
public function testWindowsPathLengthLimitIsCorrectlyHandled($length, $pathShouldBeHashed)
|
|
||||||
{
|
|
||||||
$this->directory = self::getBasePathForWindowsPathLengthTests($length);
|
|
||||||
|
|
||||||
list($key, $keyPath, $hashedKeyPath) = self::getKeyAndPathFittingLength($length, $this->directory);
|
|
||||||
|
|
||||||
$this->assertEquals($length, strlen($keyPath), 'Unhashed path should be of correct length.');
|
|
||||||
|
|
||||||
$cacheClass = get_class($this->_getCacheDriver());
|
|
||||||
/* @var $cache \Doctrine\Common\Cache\FileCache */
|
|
||||||
$cache = new $cacheClass($this->directory, '.doctrine.cache');
|
|
||||||
|
|
||||||
// Trick it into thinking this is windows.
|
|
||||||
$reflClass = new \ReflectionClass(FileCache::class);
|
|
||||||
$reflProp = $reflClass->getProperty('isRunningOnWindows');
|
|
||||||
$reflProp->setAccessible(true);
|
|
||||||
$reflProp->setValue($cache, true);
|
|
||||||
$reflProp->setAccessible(false);
|
|
||||||
|
|
||||||
$value = uniqid('value', true);
|
|
||||||
|
|
||||||
$cache->save($key, $value);
|
|
||||||
$this->assertEquals($value, $cache->fetch($key));
|
|
||||||
|
|
||||||
if ($pathShouldBeHashed) {
|
|
||||||
$this->assertFileExists($hashedKeyPath, 'Path generated for key should be hashed.');
|
|
||||||
unlink($hashedKeyPath);
|
|
||||||
} else {
|
|
||||||
$this->assertFileExists($keyPath, 'Path generated for key should not be hashed.');
|
|
||||||
unlink($keyPath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,103 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
class CacheProviderTest extends \Doctrine\Tests\DoctrineTestCase
|
|
||||||
{
|
|
||||||
public function testFetchMultiWillFilterNonRequestedKeys()
|
|
||||||
{
|
|
||||||
/* @var $cache \Doctrine\Common\Cache\CacheProvider|\PHPUnit_Framework_MockObject_MockObject */
|
|
||||||
$cache = $this->getMockForAbstractClass(
|
|
||||||
'Doctrine\Common\Cache\CacheProvider',
|
|
||||||
array(),
|
|
||||||
'',
|
|
||||||
true,
|
|
||||||
true,
|
|
||||||
true,
|
|
||||||
array('doFetchMultiple')
|
|
||||||
);
|
|
||||||
|
|
||||||
$cache
|
|
||||||
->expects($this->once())
|
|
||||||
->method('doFetchMultiple')
|
|
||||||
->will($this->returnValue(array(
|
|
||||||
'[foo][1]' => 'bar',
|
|
||||||
'[bar][1]' => 'baz',
|
|
||||||
'[baz][1]' => 'tab',
|
|
||||||
)));
|
|
||||||
|
|
||||||
$this->assertEquals(
|
|
||||||
array('foo' => 'bar', 'bar' => 'baz'),
|
|
||||||
$cache->fetchMultiple(array('foo', 'bar'))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testFailedDeleteAllDoesNotChangeNamespaceVersion()
|
|
||||||
{
|
|
||||||
/* @var $cache \Doctrine\Common\Cache\CacheProvider|\PHPUnit_Framework_MockObject_MockObject */
|
|
||||||
$cache = $this->getMockForAbstractClass(
|
|
||||||
'Doctrine\Common\Cache\CacheProvider',
|
|
||||||
array(),
|
|
||||||
'',
|
|
||||||
true,
|
|
||||||
true,
|
|
||||||
true,
|
|
||||||
array('doFetch', 'doSave', 'doContains')
|
|
||||||
);
|
|
||||||
|
|
||||||
$cache
|
|
||||||
->expects($this->once())
|
|
||||||
->method('doFetch')
|
|
||||||
->with('DoctrineNamespaceCacheKey[]')
|
|
||||||
->will($this->returnValue(false));
|
|
||||||
|
|
||||||
// doSave is only called once from deleteAll as we do not need to persist the default version in getNamespaceVersion()
|
|
||||||
$cache
|
|
||||||
->expects($this->once())
|
|
||||||
->method('doSave')
|
|
||||||
->with('DoctrineNamespaceCacheKey[]')
|
|
||||||
->will($this->returnValue(false));
|
|
||||||
|
|
||||||
// After a failed deleteAll() the local namespace version is not increased (still 1). Otherwise all data written afterwards
|
|
||||||
// would be lost outside the current instance.
|
|
||||||
$cache
|
|
||||||
->expects($this->once())
|
|
||||||
->method('doContains')
|
|
||||||
->with('[key][1]')
|
|
||||||
->will($this->returnValue(true));
|
|
||||||
|
|
||||||
$this->assertFalse($cache->deleteAll(), 'deleteAll() returns false when saving the namespace version fails');
|
|
||||||
$cache->contains('key');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testSaveMultipleNoFail()
|
|
||||||
{
|
|
||||||
/* @var $cache \Doctrine\Common\Cache\CacheProvider|\PHPUnit_Framework_MockObject_MockObject */
|
|
||||||
$cache = $this->getMockForAbstractClass(
|
|
||||||
'Doctrine\Common\Cache\CacheProvider',
|
|
||||||
array(),
|
|
||||||
'',
|
|
||||||
true,
|
|
||||||
true,
|
|
||||||
true,
|
|
||||||
array('doSave')
|
|
||||||
);
|
|
||||||
|
|
||||||
$cache
|
|
||||||
->expects($this->at(1))
|
|
||||||
->method('doSave')
|
|
||||||
->with('[kerr][1]', 'verr', 0)
|
|
||||||
->will($this->returnValue(false));
|
|
||||||
|
|
||||||
$cache
|
|
||||||
->expects($this->at(2))
|
|
||||||
->method('doSave')
|
|
||||||
->with('[kok][1]', 'vok', 0)
|
|
||||||
->will($this->returnValue(true));
|
|
||||||
|
|
||||||
$cache->saveMultiple(array(
|
|
||||||
'kerr' => 'verr',
|
|
||||||
'kok' => 'vok',
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,473 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\Cache;
|
|
||||||
use ArrayObject;
|
|
||||||
|
|
||||||
abstract class CacheTest extends \Doctrine\Tests\DoctrineTestCase
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @dataProvider provideDataToCache
|
|
||||||
*/
|
|
||||||
public function testSetContainsFetchDelete($value)
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
// Test saving a value, checking if it exists, and fetching it back
|
|
||||||
$this->assertTrue($cache->save('key', $value));
|
|
||||||
$this->assertTrue($cache->contains('key'));
|
|
||||||
if (is_object($value)) {
|
|
||||||
$this->assertEquals($value, $cache->fetch('key'), 'Objects retrieved from the cache must be equal but not necessarily the same reference');
|
|
||||||
} else {
|
|
||||||
$this->assertSame($value, $cache->fetch('key'), 'Scalar and array data retrieved from the cache must be the same as the original, e.g. same type');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Test deleting a value
|
|
||||||
$this->assertTrue($cache->delete('key'));
|
|
||||||
$this->assertFalse($cache->contains('key'));
|
|
||||||
$this->assertFalse($cache->fetch('key'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider provideDataToCache
|
|
||||||
*/
|
|
||||||
public function testUpdateExistingEntry($value)
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
$this->assertTrue($cache->save('key', 'old-value'));
|
|
||||||
$this->assertTrue($cache->contains('key'));
|
|
||||||
|
|
||||||
$this->assertTrue($cache->save('key', $value));
|
|
||||||
$this->assertTrue($cache->contains('key'));
|
|
||||||
if (is_object($value)) {
|
|
||||||
$this->assertEquals($value, $cache->fetch('key'), 'Objects retrieved from the cache must be equal but not necessarily the same reference');
|
|
||||||
} else {
|
|
||||||
$this->assertSame($value, $cache->fetch('key'), 'Scalar and array data retrieved from the cache must be the same as the original, e.g. same type');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testCacheKeyIsCaseSensitive()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
$this->assertTrue($cache->save('key', 'value'));
|
|
||||||
$this->assertTrue($cache->contains('key'));
|
|
||||||
$this->assertSame('value', $cache->fetch('key'));
|
|
||||||
|
|
||||||
$this->assertFalse($cache->contains('KEY'));
|
|
||||||
$this->assertFalse($cache->fetch('KEY'));
|
|
||||||
|
|
||||||
$cache->delete('KEY');
|
|
||||||
$this->assertTrue($cache->contains('key', 'Deleting cache item with different case must not affect other cache item'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testFetchMultiple()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$values = $this->provideDataToCache();
|
|
||||||
$saved = array();
|
|
||||||
|
|
||||||
foreach ($values as $key => $value) {
|
|
||||||
$cache->save($key, $value[0]);
|
|
||||||
|
|
||||||
$saved[$key] = $value[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
$keys = array_keys($saved);
|
|
||||||
|
|
||||||
$this->assertEquals(
|
|
||||||
$saved,
|
|
||||||
$cache->fetchMultiple($keys),
|
|
||||||
'Testing fetchMultiple with different data types'
|
|
||||||
);
|
|
||||||
$this->assertEquals(
|
|
||||||
array_slice($saved, 0, 1),
|
|
||||||
$cache->fetchMultiple(array_slice($keys, 0, 1)),
|
|
||||||
'Testing fetchMultiple with a single key'
|
|
||||||
);
|
|
||||||
|
|
||||||
$keysWithNonExisting = array();
|
|
||||||
$keysWithNonExisting[] = 'non_existing1';
|
|
||||||
$keysWithNonExisting[] = $keys[0];
|
|
||||||
$keysWithNonExisting[] = 'non_existing2';
|
|
||||||
$keysWithNonExisting[] = $keys[1];
|
|
||||||
$keysWithNonExisting[] = 'non_existing3';
|
|
||||||
|
|
||||||
$this->assertEquals(
|
|
||||||
array_slice($saved, 0, 2),
|
|
||||||
$cache->fetchMultiple($keysWithNonExisting),
|
|
||||||
'Testing fetchMultiple with a subset of keys and mixed with non-existing ones'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testFetchMultipleWithNoKeys()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
$this->assertSame(array(), $cache->fetchMultiple(array()));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testSaveMultiple()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$cache->deleteAll();
|
|
||||||
|
|
||||||
$data = array_map(function ($value) {
|
|
||||||
return $value[0];
|
|
||||||
}, $this->provideDataToCache());
|
|
||||||
|
|
||||||
$this->assertTrue($cache->saveMultiple($data));
|
|
||||||
|
|
||||||
$keys = array_keys($data);
|
|
||||||
|
|
||||||
$this->assertEquals($data, $cache->fetchMultiple($keys));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function provideDataToCache()
|
|
||||||
{
|
|
||||||
$obj = new \stdClass();
|
|
||||||
$obj->foo = 'bar';
|
|
||||||
$obj2 = new \stdClass();
|
|
||||||
$obj2->bar = 'foo';
|
|
||||||
$obj2->obj = $obj;
|
|
||||||
$obj->obj2 = $obj2;
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'array' => array(array('one', 2, 3.01)),
|
|
||||||
'string' => array('value'),
|
|
||||||
'string_invalid_utf8' => array("\xc3\x28"),
|
|
||||||
'string_null_byte' => array('with'."\0".'null char'),
|
|
||||||
'integer' => array(1),
|
|
||||||
'float' => array(1.5),
|
|
||||||
'object' => array(new ArrayObject(array('one', 2, 3.01))),
|
|
||||||
'object_recursive' => array($obj),
|
|
||||||
'true' => array(true),
|
|
||||||
// the following are considered FALSE in boolean context, but caches should still recognize their existence
|
|
||||||
'null' => array(null),
|
|
||||||
'false' => array(false),
|
|
||||||
'array_empty' => array(array()),
|
|
||||||
'string_zero' => array('0'),
|
|
||||||
'integer_zero' => array(0),
|
|
||||||
'float_zero' => array(0.0),
|
|
||||||
'string_empty' => array(''),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testDeleteIsSuccessfulWhenKeyDoesNotExist()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
$cache->delete('key');
|
|
||||||
$this->assertFalse($cache->contains('key'));
|
|
||||||
$this->assertTrue($cache->delete('key'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testDeleteAll()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
$this->assertTrue($cache->save('key1', 1));
|
|
||||||
$this->assertTrue($cache->save('key2', 2));
|
|
||||||
$this->assertTrue($cache->deleteAll());
|
|
||||||
$this->assertFalse($cache->contains('key1'));
|
|
||||||
$this->assertFalse($cache->contains('key2'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider provideCacheIds
|
|
||||||
*/
|
|
||||||
public function testCanHandleSpecialCacheIds($id)
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
$this->assertTrue($cache->save($id, 'value'));
|
|
||||||
$this->assertTrue($cache->contains($id));
|
|
||||||
$this->assertEquals('value', $cache->fetch($id));
|
|
||||||
|
|
||||||
$this->assertTrue($cache->delete($id));
|
|
||||||
$this->assertFalse($cache->contains($id));
|
|
||||||
$this->assertFalse($cache->fetch($id));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testNoCacheIdCollisions()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
$ids = $this->provideCacheIds();
|
|
||||||
|
|
||||||
// fill cache with each id having a different value
|
|
||||||
foreach ($ids as $index => $id) {
|
|
||||||
$cache->save($id[0], $index);
|
|
||||||
}
|
|
||||||
|
|
||||||
// then check value of each cache id
|
|
||||||
foreach ($ids as $index => $id) {
|
|
||||||
$value = $cache->fetch($id[0]);
|
|
||||||
$this->assertNotFalse($value, sprintf('Failed to retrieve data for cache id "%s".', $id[0]));
|
|
||||||
if ($index !== $value) {
|
|
||||||
$this->fail(sprintf('Cache id "%s" collides with id "%s".', $id[0], $ids[$value][0]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns cache ids with special characters that should still work.
|
|
||||||
*
|
|
||||||
* For example, the characters :\/<>"*?| are not valid in Windows filenames. So they must be encoded properly.
|
|
||||||
* Each cache id should be considered different from the others.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function provideCacheIds()
|
|
||||||
{
|
|
||||||
return array(
|
|
||||||
array(':'),
|
|
||||||
array('\\'),
|
|
||||||
array('/'),
|
|
||||||
array('<'),
|
|
||||||
array('>'),
|
|
||||||
array('"'),
|
|
||||||
array('*'),
|
|
||||||
array('?'),
|
|
||||||
array('|'),
|
|
||||||
array('['),
|
|
||||||
array(']'),
|
|
||||||
array('ä'),
|
|
||||||
array('a'),
|
|
||||||
array('é'),
|
|
||||||
array('e'),
|
|
||||||
array('.'), // directory traversal
|
|
||||||
array('..'), // directory traversal
|
|
||||||
array('-'),
|
|
||||||
array('_'),
|
|
||||||
array('$'),
|
|
||||||
array('%'),
|
|
||||||
array(' '),
|
|
||||||
array("\0"),
|
|
||||||
array(''),
|
|
||||||
array(str_repeat('a', 300)), // long key
|
|
||||||
array(str_repeat('a', 113)),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testLifetime()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$cache->save('expire', 'value', 1);
|
|
||||||
$this->assertTrue($cache->contains('expire'), 'Data should not be expired yet');
|
|
||||||
// @TODO should more TTL-based tests pop up, so then we should mock the `time` API instead
|
|
||||||
sleep(2);
|
|
||||||
$this->assertFalse($cache->contains('expire'), 'Data should be expired');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testNoExpire()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$cache->save('noexpire', 'value', 0);
|
|
||||||
// @TODO should more TTL-based tests pop up, so then we should mock the `time` API instead
|
|
||||||
sleep(1);
|
|
||||||
$this->assertTrue($cache->contains('noexpire'), 'Data with lifetime of zero should not expire');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testLongLifetime()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$cache->save('longlifetime', 'value', 30 * 24 * 3600 + 1);
|
|
||||||
$this->assertTrue($cache->contains('longlifetime'), 'Data with lifetime > 30 days should be accepted');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testDeleteAllAndNamespaceVersioningBetweenCaches()
|
|
||||||
{
|
|
||||||
if ( ! $this->isSharedStorage()) {
|
|
||||||
$this->markTestSkipped('The cache storage needs to be shared.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$cache1 = $this->_getCacheDriver();
|
|
||||||
$cache2 = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
$this->assertTrue($cache1->save('key1', 1));
|
|
||||||
$this->assertTrue($cache2->save('key2', 2));
|
|
||||||
|
|
||||||
/* Both providers are initialized with the same namespace version, so
|
|
||||||
* they can see entries set by each other.
|
|
||||||
*/
|
|
||||||
$this->assertTrue($cache1->contains('key1'));
|
|
||||||
$this->assertTrue($cache1->contains('key2'));
|
|
||||||
$this->assertTrue($cache2->contains('key1'));
|
|
||||||
$this->assertTrue($cache2->contains('key2'));
|
|
||||||
|
|
||||||
/* Deleting all entries through one provider will only increment the
|
|
||||||
* namespace version on that object (and in the cache itself, which new
|
|
||||||
* instances will use to initialize). The second provider will retain
|
|
||||||
* its original version and still see stale data.
|
|
||||||
*/
|
|
||||||
$this->assertTrue($cache1->deleteAll());
|
|
||||||
$this->assertFalse($cache1->contains('key1'));
|
|
||||||
$this->assertFalse($cache1->contains('key2'));
|
|
||||||
$this->assertTrue($cache2->contains('key1'));
|
|
||||||
$this->assertTrue($cache2->contains('key2'));
|
|
||||||
|
|
||||||
/* A new cache provider should not see the deleted entries, since its
|
|
||||||
* namespace version will be initialized.
|
|
||||||
*/
|
|
||||||
$cache3 = $this->_getCacheDriver();
|
|
||||||
$this->assertFalse($cache3->contains('key1'));
|
|
||||||
$this->assertFalse($cache3->contains('key2'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testFlushAll()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
$this->assertTrue($cache->save('key1', 1));
|
|
||||||
$this->assertTrue($cache->save('key2', 2));
|
|
||||||
$this->assertTrue($cache->flushAll());
|
|
||||||
$this->assertFalse($cache->contains('key1'));
|
|
||||||
$this->assertFalse($cache->contains('key2'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testFlushAllAndNamespaceVersioningBetweenCaches()
|
|
||||||
{
|
|
||||||
if ( ! $this->isSharedStorage()) {
|
|
||||||
$this->markTestSkipped('The cache storage needs to be shared.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$cache1 = $this->_getCacheDriver();
|
|
||||||
$cache2 = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
/* Deleting all elements from the first provider should increment its
|
|
||||||
* namespace version before saving the first entry.
|
|
||||||
*/
|
|
||||||
$cache1->deleteAll();
|
|
||||||
$this->assertTrue($cache1->save('key1', 1));
|
|
||||||
|
|
||||||
/* The second provider will be initialized with the same namespace
|
|
||||||
* version upon its first save operation.
|
|
||||||
*/
|
|
||||||
$this->assertTrue($cache2->save('key2', 2));
|
|
||||||
|
|
||||||
/* Both providers have the same namespace version and can see entries
|
|
||||||
* set by each other.
|
|
||||||
*/
|
|
||||||
$this->assertTrue($cache1->contains('key1'));
|
|
||||||
$this->assertTrue($cache1->contains('key2'));
|
|
||||||
$this->assertTrue($cache2->contains('key1'));
|
|
||||||
$this->assertTrue($cache2->contains('key2'));
|
|
||||||
|
|
||||||
/* Flushing all entries through one cache will remove all entries from
|
|
||||||
* the cache but leave their namespace version as-is.
|
|
||||||
*/
|
|
||||||
$this->assertTrue($cache1->flushAll());
|
|
||||||
$this->assertFalse($cache1->contains('key1'));
|
|
||||||
$this->assertFalse($cache1->contains('key2'));
|
|
||||||
$this->assertFalse($cache2->contains('key1'));
|
|
||||||
$this->assertFalse($cache2->contains('key2'));
|
|
||||||
|
|
||||||
/* Inserting a new entry will use the same, incremented namespace
|
|
||||||
* version, and it will be visible to both providers.
|
|
||||||
*/
|
|
||||||
$this->assertTrue($cache1->save('key1', 1));
|
|
||||||
$this->assertTrue($cache1->contains('key1'));
|
|
||||||
$this->assertTrue($cache2->contains('key1'));
|
|
||||||
|
|
||||||
/* A new cache provider will be initialized with the original namespace
|
|
||||||
* version and not share any visibility with the first two providers.
|
|
||||||
*/
|
|
||||||
$cache3 = $this->_getCacheDriver();
|
|
||||||
$this->assertFalse($cache3->contains('key1'));
|
|
||||||
$this->assertFalse($cache3->contains('key2'));
|
|
||||||
$this->assertTrue($cache3->save('key3', 3));
|
|
||||||
$this->assertTrue($cache3->contains('key3'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testNamespace()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
$cache->setNamespace('ns1_');
|
|
||||||
|
|
||||||
$this->assertTrue($cache->save('key1', 1));
|
|
||||||
$this->assertTrue($cache->contains('key1'));
|
|
||||||
|
|
||||||
$cache->setNamespace('ns2_');
|
|
||||||
|
|
||||||
$this->assertFalse($cache->contains('key1'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testDeleteAllNamespace()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
$cache->setNamespace('ns1');
|
|
||||||
$this->assertFalse($cache->contains('key1'));
|
|
||||||
$cache->save('key1', 'test');
|
|
||||||
$this->assertTrue($cache->contains('key1'));
|
|
||||||
|
|
||||||
$cache->setNamespace('ns2');
|
|
||||||
$this->assertFalse($cache->contains('key1'));
|
|
||||||
$cache->save('key1', 'test');
|
|
||||||
$this->assertTrue($cache->contains('key1'));
|
|
||||||
|
|
||||||
$cache->setNamespace('ns1');
|
|
||||||
$this->assertTrue($cache->contains('key1'));
|
|
||||||
$cache->deleteAll();
|
|
||||||
$this->assertFalse($cache->contains('key1'));
|
|
||||||
|
|
||||||
$cache->setNamespace('ns2');
|
|
||||||
$this->assertTrue($cache->contains('key1'));
|
|
||||||
$cache->deleteAll();
|
|
||||||
$this->assertFalse($cache->contains('key1'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @group DCOM-43
|
|
||||||
*/
|
|
||||||
public function testGetStats()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$stats = $cache->getStats();
|
|
||||||
|
|
||||||
$this->assertArrayHasKey(Cache::STATS_HITS, $stats);
|
|
||||||
$this->assertArrayHasKey(Cache::STATS_MISSES, $stats);
|
|
||||||
$this->assertArrayHasKey(Cache::STATS_UPTIME, $stats);
|
|
||||||
$this->assertArrayHasKey(Cache::STATS_MEMORY_USAGE, $stats);
|
|
||||||
$this->assertArrayHasKey(Cache::STATS_MEMORY_AVAILABLE, $stats);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testSaveReturnsTrueWithAndWithoutTTlSet()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$cache->deleteAll();
|
|
||||||
$this->assertTrue($cache->save('without_ttl', 'without_ttl'));
|
|
||||||
$this->assertTrue($cache->save('with_ttl', 'with_ttl', 3600));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testValueThatIsFalseBooleanIsProperlyRetrieved()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$cache->deleteAll();
|
|
||||||
|
|
||||||
$this->assertTrue($cache->save('key1', false));
|
|
||||||
$this->assertTrue($cache->contains('key1'));
|
|
||||||
$this->assertFalse($cache->fetch('key1'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return whether multiple cache providers share the same storage.
|
|
||||||
*
|
|
||||||
* This is used for skipping certain tests for shared storage behavior.
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
protected function isSharedStorage()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return \Doctrine\Common\Cache\CacheProvider
|
|
||||||
*/
|
|
||||||
abstract protected function _getCacheDriver();
|
|
||||||
}
|
|
|
@ -1,99 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\ApcCache;
|
|
||||||
use Doctrine\Common\Cache\ArrayCache;
|
|
||||||
use Doctrine\Common\Cache\ChainCache;
|
|
||||||
|
|
||||||
class ChainCacheTest extends CacheTest
|
|
||||||
{
|
|
||||||
protected function _getCacheDriver()
|
|
||||||
{
|
|
||||||
return new ChainCache(array(new ArrayCache()));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testLifetime()
|
|
||||||
{
|
|
||||||
$this->markTestSkipped('The ChainCache test uses ArrayCache which does not implement TTL currently.');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testGetStats()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$stats = $cache->getStats();
|
|
||||||
|
|
||||||
$this->assertInternalType('array', $stats);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testOnlyFetchFirstOne()
|
|
||||||
{
|
|
||||||
$cache1 = new ArrayCache();
|
|
||||||
$cache2 = $this->getMockForAbstractClass('Doctrine\Common\Cache\CacheProvider');
|
|
||||||
|
|
||||||
$cache2->expects($this->never())->method('doFetch');
|
|
||||||
|
|
||||||
$chainCache = new ChainCache(array($cache1, $cache2));
|
|
||||||
$chainCache->save('id', 'bar');
|
|
||||||
|
|
||||||
$this->assertEquals('bar', $chainCache->fetch('id'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testFetchPropagateToFastestCache()
|
|
||||||
{
|
|
||||||
$cache1 = new ArrayCache();
|
|
||||||
$cache2 = new ArrayCache();
|
|
||||||
|
|
||||||
$cache2->save('bar', 'value');
|
|
||||||
|
|
||||||
$chainCache = new ChainCache(array($cache1, $cache2));
|
|
||||||
|
|
||||||
$this->assertFalse($cache1->contains('bar'));
|
|
||||||
|
|
||||||
$result = $chainCache->fetch('bar');
|
|
||||||
|
|
||||||
$this->assertEquals('value', $result);
|
|
||||||
$this->assertTrue($cache2->contains('bar'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testNamespaceIsPropagatedToAllProviders()
|
|
||||||
{
|
|
||||||
$cache1 = new ArrayCache();
|
|
||||||
$cache2 = new ArrayCache();
|
|
||||||
|
|
||||||
$chainCache = new ChainCache(array($cache1, $cache2));
|
|
||||||
$chainCache->setNamespace('bar');
|
|
||||||
|
|
||||||
$this->assertEquals('bar', $cache1->getNamespace());
|
|
||||||
$this->assertEquals('bar', $cache2->getNamespace());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testDeleteToAllProviders()
|
|
||||||
{
|
|
||||||
$cache1 = $this->getMockForAbstractClass('Doctrine\Common\Cache\CacheProvider');
|
|
||||||
$cache2 = $this->getMockForAbstractClass('Doctrine\Common\Cache\CacheProvider');
|
|
||||||
|
|
||||||
$cache1->expects($this->once())->method('doDelete');
|
|
||||||
$cache2->expects($this->once())->method('doDelete');
|
|
||||||
|
|
||||||
$chainCache = new ChainCache(array($cache1, $cache2));
|
|
||||||
$chainCache->delete('bar');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testFlushToAllProviders()
|
|
||||||
{
|
|
||||||
$cache1 = $this->getMockForAbstractClass('Doctrine\Common\Cache\CacheProvider');
|
|
||||||
$cache2 = $this->getMockForAbstractClass('Doctrine\Common\Cache\CacheProvider');
|
|
||||||
|
|
||||||
$cache1->expects($this->once())->method('doFlush');
|
|
||||||
$cache2->expects($this->once())->method('doFlush');
|
|
||||||
|
|
||||||
$chainCache = new ChainCache(array($cache1, $cache2));
|
|
||||||
$chainCache->flushAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function isSharedStorage()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Couchbase;
|
|
||||||
use Doctrine\Common\Cache\CouchbaseCache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @requires extension couchbase
|
|
||||||
*/
|
|
||||||
class CouchbaseCacheTest extends CacheTest
|
|
||||||
{
|
|
||||||
private $couchbase;
|
|
||||||
|
|
||||||
protected function setUp()
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
$this->couchbase = new Couchbase('127.0.0.1', 'Administrator', 'password', 'default');
|
|
||||||
} catch(Exception $ex) {
|
|
||||||
$this->markTestSkipped('Could not instantiate the Couchbase cache because of: ' . $ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function _getCacheDriver()
|
|
||||||
{
|
|
||||||
$driver = new CouchbaseCache();
|
|
||||||
$driver->setCouchbase($this->couchbase);
|
|
||||||
return $driver;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,268 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @group DCOM-101
|
|
||||||
*/
|
|
||||||
class FileCacheTest extends \Doctrine\Tests\DoctrineTestCase
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var \Doctrine\Common\Cache\FileCache
|
|
||||||
*/
|
|
||||||
private $driver;
|
|
||||||
|
|
||||||
protected function setUp()
|
|
||||||
{
|
|
||||||
$this->driver = $this->getMock(
|
|
||||||
'Doctrine\Common\Cache\FileCache',
|
|
||||||
array('doFetch', 'doContains', 'doSave'),
|
|
||||||
array(), '', false
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testFilenameShouldCreateThePathWithOneSubDirectory()
|
|
||||||
{
|
|
||||||
$cache = $this->driver;
|
|
||||||
$method = new \ReflectionMethod($cache, 'getFilename');
|
|
||||||
$key = 'item-key';
|
|
||||||
$expectedDir = array(
|
|
||||||
'84',
|
|
||||||
);
|
|
||||||
$expectedDir = implode(DIRECTORY_SEPARATOR, $expectedDir);
|
|
||||||
|
|
||||||
$method->setAccessible(true);
|
|
||||||
|
|
||||||
$path = $method->invoke($cache, $key);
|
|
||||||
$dirname = pathinfo($path, PATHINFO_DIRNAME);
|
|
||||||
|
|
||||||
$this->assertEquals(DIRECTORY_SEPARATOR . $expectedDir, $dirname);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testFileExtensionCorrectlyEscaped()
|
|
||||||
{
|
|
||||||
$driver1 = $this->getMock(
|
|
||||||
'Doctrine\Common\Cache\FileCache',
|
|
||||||
array('doFetch', 'doContains', 'doSave'),
|
|
||||||
array(__DIR__, '.*')
|
|
||||||
);
|
|
||||||
$driver2 = $this->getMock(
|
|
||||||
'Doctrine\Common\Cache\FileCache',
|
|
||||||
array('doFetch', 'doContains', 'doSave'),
|
|
||||||
array(__DIR__, '.php')
|
|
||||||
);
|
|
||||||
|
|
||||||
$doGetStats = new \ReflectionMethod($driver1, 'doGetStats');
|
|
||||||
|
|
||||||
$doGetStats->setAccessible(true);
|
|
||||||
|
|
||||||
$stats1 = $doGetStats->invoke($driver1);
|
|
||||||
$stats2 = $doGetStats->invoke($driver2);
|
|
||||||
|
|
||||||
$this->assertSame(0, $stats1[Cache::STATS_MEMORY_USAGE]);
|
|
||||||
$this->assertGreaterThan(0, $stats2[Cache::STATS_MEMORY_USAGE]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @group DCOM-266
|
|
||||||
*/
|
|
||||||
public function testFileExtensionSlashCorrectlyEscaped()
|
|
||||||
{
|
|
||||||
$driver = $this->getMock(
|
|
||||||
'Doctrine\Common\Cache\FileCache',
|
|
||||||
array('doFetch', 'doContains', 'doSave'),
|
|
||||||
array(__DIR__ . '/../', DIRECTORY_SEPARATOR . basename(__FILE__))
|
|
||||||
);
|
|
||||||
|
|
||||||
$doGetStats = new \ReflectionMethod($driver, 'doGetStats');
|
|
||||||
|
|
||||||
$doGetStats->setAccessible(true);
|
|
||||||
|
|
||||||
$stats = $doGetStats->invoke($driver);
|
|
||||||
|
|
||||||
$this->assertGreaterThan(0, $stats[Cache::STATS_MEMORY_USAGE]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testNonIntUmaskThrowsInvalidArgumentException()
|
|
||||||
{
|
|
||||||
$this->setExpectedException('InvalidArgumentException');
|
|
||||||
|
|
||||||
$this->getMock(
|
|
||||||
'Doctrine\Common\Cache\FileCache',
|
|
||||||
array('doFetch', 'doContains', 'doSave'),
|
|
||||||
array('', '', 'invalid')
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testGetDirectoryReturnsRealpathDirectoryString()
|
|
||||||
{
|
|
||||||
$directory = __DIR__ . '/../';
|
|
||||||
$driver = $this->getMock(
|
|
||||||
'Doctrine\Common\Cache\FileCache',
|
|
||||||
array('doFetch', 'doContains', 'doSave'),
|
|
||||||
array($directory)
|
|
||||||
);
|
|
||||||
|
|
||||||
$doGetDirectory = new \ReflectionMethod($driver, 'getDirectory');
|
|
||||||
|
|
||||||
$actualDirectory = $doGetDirectory->invoke($driver);
|
|
||||||
$expectedDirectory = realpath($directory);
|
|
||||||
|
|
||||||
$this->assertEquals($expectedDirectory, $actualDirectory);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testGetExtensionReturnsExtensionString()
|
|
||||||
{
|
|
||||||
$directory = __DIR__ . '/../';
|
|
||||||
$extension = DIRECTORY_SEPARATOR . basename(__FILE__);
|
|
||||||
$driver = $this->getMock(
|
|
||||||
'Doctrine\Common\Cache\FileCache',
|
|
||||||
array('doFetch', 'doContains', 'doSave'),
|
|
||||||
array($directory, $extension)
|
|
||||||
);
|
|
||||||
|
|
||||||
$doGetExtension = new \ReflectionMethod($driver, 'getExtension');
|
|
||||||
|
|
||||||
$actualExtension = $doGetExtension->invoke($driver);
|
|
||||||
|
|
||||||
$this->assertEquals($extension, $actualExtension);
|
|
||||||
}
|
|
||||||
|
|
||||||
const WIN_MAX_PATH_LEN = 258;
|
|
||||||
|
|
||||||
public static function getBasePathForWindowsPathLengthTests($pathLength)
|
|
||||||
{
|
|
||||||
// Not using __DIR__ because it can get screwed up when xdebug debugger is attached.
|
|
||||||
$basePath = realpath(sys_get_temp_dir()) . '/' . uniqid('doctrine-cache', true);
|
|
||||||
|
|
||||||
/** @noinspection MkdirRaceConditionInspection */
|
|
||||||
@mkdir($basePath);
|
|
||||||
|
|
||||||
$basePath = realpath($basePath);
|
|
||||||
|
|
||||||
// Test whether the desired path length is odd or even.
|
|
||||||
$desiredPathLengthIsOdd = ($pathLength % 2) == 1;
|
|
||||||
|
|
||||||
// If the cache key is not too long, the filecache codepath will add
|
|
||||||
// a slash and bin2hex($key). The length of the added portion will be an odd number.
|
|
||||||
// len(desired) = len(base path) + len(slash . bin2hex($key))
|
|
||||||
// odd = even + odd
|
|
||||||
// even = odd + odd
|
|
||||||
$basePathLengthShouldBeOdd = !$desiredPathLengthIsOdd;
|
|
||||||
|
|
||||||
$basePathLengthIsOdd = (strlen($basePath) % 2) == 1;
|
|
||||||
|
|
||||||
// If the base path needs to be odd or even where it is not, we add an odd number of
|
|
||||||
// characters as a pad. In this case, we're adding '\aa' (or '/aa' depending on platform)
|
|
||||||
// This is all to make it so that the key we're testing would result in
|
|
||||||
// a path that is exactly the length we want to test IF the path length limit
|
|
||||||
// were not in place in FileCache.
|
|
||||||
if ($basePathLengthIsOdd != $basePathLengthShouldBeOdd) {
|
|
||||||
$basePath .= DIRECTORY_SEPARATOR . "aa";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $basePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param int $length
|
|
||||||
* @param string $basePath
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public static function getKeyAndPathFittingLength($length, $basePath)
|
|
||||||
{
|
|
||||||
$baseDirLength = strlen($basePath);
|
|
||||||
$extensionLength = strlen('.doctrine.cache');
|
|
||||||
$directoryLength = strlen(DIRECTORY_SEPARATOR . 'aa' . DIRECTORY_SEPARATOR);
|
|
||||||
$keyLength = $length - ($baseDirLength + $extensionLength + $directoryLength); // - 1 because of slash
|
|
||||||
|
|
||||||
$key = str_repeat('a', floor($keyLength / 2));
|
|
||||||
|
|
||||||
$keyHash = hash('sha256', $key);
|
|
||||||
|
|
||||||
$keyPath = $basePath
|
|
||||||
. DIRECTORY_SEPARATOR
|
|
||||||
. substr($keyHash, 0, 2)
|
|
||||||
. DIRECTORY_SEPARATOR
|
|
||||||
. bin2hex($key)
|
|
||||||
. '.doctrine.cache';
|
|
||||||
|
|
||||||
$hashedKeyPath = $basePath
|
|
||||||
. DIRECTORY_SEPARATOR
|
|
||||||
. substr($keyHash, 0, 2)
|
|
||||||
. DIRECTORY_SEPARATOR
|
|
||||||
. '_' . $keyHash
|
|
||||||
. '.doctrine.cache';
|
|
||||||
|
|
||||||
return array($key, $keyPath, $hashedKeyPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPathLengthsToTest()
|
|
||||||
{
|
|
||||||
// Windows officially supports 260 bytes including null terminator
|
|
||||||
// 259 characters is too large due to PHP bug (https://bugs.php.net/bug.php?id=70943)
|
|
||||||
// 260 characters is too large - null terminator is included in allowable length
|
|
||||||
return array(
|
|
||||||
array(257, false),
|
|
||||||
array(258, false),
|
|
||||||
array(259, true),
|
|
||||||
array(260, true)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @runInSeparateProcess
|
|
||||||
* @dataProvider getPathLengthsToTest
|
|
||||||
*
|
|
||||||
* @covers \Doctrine\Common\Cache\FileCache::getFilename
|
|
||||||
*
|
|
||||||
* @param int $length
|
|
||||||
* @param bool $pathShouldBeHashed
|
|
||||||
*/
|
|
||||||
public function testWindowsPathLengthLimitationsAreCorrectlyRespected($length, $pathShouldBeHashed)
|
|
||||||
{
|
|
||||||
if (! defined('PHP_WINDOWS_VERSION_BUILD')) {
|
|
||||||
define('PHP_WINDOWS_VERSION_BUILD', 'Yes, this is the "usual suspect", with the usual limitations');
|
|
||||||
}
|
|
||||||
|
|
||||||
$basePath = self::getBasePathForWindowsPathLengthTests($length);
|
|
||||||
|
|
||||||
$fileCache = $this->getMockForAbstractClass(
|
|
||||||
'Doctrine\Common\Cache\FileCache',
|
|
||||||
array($basePath, '.doctrine.cache')
|
|
||||||
);
|
|
||||||
|
|
||||||
list($key, $keyPath, $hashedKeyPath) = self::getKeyAndPathFittingLength($length, $basePath);
|
|
||||||
|
|
||||||
$getFileName = new \ReflectionMethod($fileCache, 'getFilename');
|
|
||||||
|
|
||||||
$getFileName->setAccessible(true);
|
|
||||||
|
|
||||||
$this->assertEquals(
|
|
||||||
$length,
|
|
||||||
strlen($keyPath),
|
|
||||||
sprintf('Path expected to be %d characters long is %d characters long', $length, strlen($keyPath))
|
|
||||||
);
|
|
||||||
|
|
||||||
if ($pathShouldBeHashed) {
|
|
||||||
$keyPath = $hashedKeyPath;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($pathShouldBeHashed) {
|
|
||||||
$this->assertSame(
|
|
||||||
$hashedKeyPath,
|
|
||||||
$getFileName->invoke($fileCache, $key),
|
|
||||||
'Keys should be hashed correctly if they are over the limit.'
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$this->assertSame(
|
|
||||||
$keyPath,
|
|
||||||
$getFileName->invoke($fileCache, $key),
|
|
||||||
'Keys below limit of the allowed length are used directly, unhashed'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,61 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\Cache;
|
|
||||||
use Doctrine\Common\Cache\FilesystemCache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @group DCOM-101
|
|
||||||
*/
|
|
||||||
class FilesystemCacheTest extends BaseFileCacheTest
|
|
||||||
{
|
|
||||||
public function testGetStats()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$stats = $cache->getStats();
|
|
||||||
|
|
||||||
$this->assertNull($stats[Cache::STATS_HITS]);
|
|
||||||
$this->assertNull($stats[Cache::STATS_MISSES]);
|
|
||||||
$this->assertNull($stats[Cache::STATS_UPTIME]);
|
|
||||||
$this->assertEquals(0, $stats[Cache::STATS_MEMORY_USAGE]);
|
|
||||||
$this->assertGreaterThan(0, $stats[Cache::STATS_MEMORY_AVAILABLE]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testCacheInSharedDirectoryIsPerExtension()
|
|
||||||
{
|
|
||||||
$cache1 = new FilesystemCache($this->directory, '.foo');
|
|
||||||
$cache2 = new FilesystemCache($this->directory, '.bar');
|
|
||||||
|
|
||||||
$this->assertTrue($cache1->save('key1', 11));
|
|
||||||
$this->assertTrue($cache1->save('key2', 12));
|
|
||||||
|
|
||||||
$this->assertTrue($cache2->save('key1', 21));
|
|
||||||
$this->assertTrue($cache2->save('key2', 22));
|
|
||||||
|
|
||||||
$this->assertSame(11, $cache1->fetch('key1'), 'Cache value must not be influenced by a different cache in the same directory but different extension');
|
|
||||||
$this->assertSame(12, $cache1->fetch('key2'));
|
|
||||||
$this->assertTrue($cache1->flushAll());
|
|
||||||
$this->assertFalse($cache1->fetch('key1'), 'flushAll() must delete all items with the current extension');
|
|
||||||
$this->assertFalse($cache1->fetch('key2'));
|
|
||||||
|
|
||||||
$this->assertSame(21, $cache2->fetch('key1'), 'flushAll() must not remove items with a different extension in a shared directory');
|
|
||||||
$this->assertSame(22, $cache2->fetch('key2'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testFlushAllWithNoExtension()
|
|
||||||
{
|
|
||||||
$cache = new FilesystemCache($this->directory, '');
|
|
||||||
|
|
||||||
$this->assertTrue($cache->save('key1', 1));
|
|
||||||
$this->assertTrue($cache->save('key2', 2));
|
|
||||||
$this->assertTrue($cache->flushAll());
|
|
||||||
$this->assertFalse($cache->contains('key1'));
|
|
||||||
$this->assertFalse($cache->contains('key2'));
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function _getCacheDriver()
|
|
||||||
{
|
|
||||||
return new FilesystemCache($this->directory);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,59 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\MemcacheCache;
|
|
||||||
use Memcache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @requires extension memcache
|
|
||||||
*/
|
|
||||||
class MemcacheCacheTest extends CacheTest
|
|
||||||
{
|
|
||||||
private $memcache;
|
|
||||||
|
|
||||||
protected function setUp()
|
|
||||||
{
|
|
||||||
$this->memcache = new Memcache();
|
|
||||||
|
|
||||||
if (@$this->memcache->connect('localhost', 11211) === false) {
|
|
||||||
unset($this->memcache);
|
|
||||||
$this->markTestSkipped('Cannot connect to Memcache.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function tearDown()
|
|
||||||
{
|
|
||||||
if ($this->memcache instanceof Memcache) {
|
|
||||||
$this->memcache->flush();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*
|
|
||||||
* Memcache does not support " " and null byte as key so we remove them from the tests.
|
|
||||||
*/
|
|
||||||
public function provideCacheIds()
|
|
||||||
{
|
|
||||||
$ids = parent::provideCacheIds();
|
|
||||||
unset($ids[21], $ids[22]);
|
|
||||||
|
|
||||||
return $ids;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testGetMemcacheReturnsInstanceOfMemcache()
|
|
||||||
{
|
|
||||||
$this->assertInstanceOf('Memcache', $this->_getCacheDriver()->getMemcache());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function _getCacheDriver()
|
|
||||||
{
|
|
||||||
$driver = new MemcacheCache();
|
|
||||||
$driver->setMemcache($this->memcache);
|
|
||||||
return $driver;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,61 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\MemcachedCache;
|
|
||||||
use Memcached;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @requires extension memcached
|
|
||||||
*/
|
|
||||||
class MemcachedCacheTest extends CacheTest
|
|
||||||
{
|
|
||||||
private $memcached;
|
|
||||||
|
|
||||||
protected function setUp()
|
|
||||||
{
|
|
||||||
$this->memcached = new Memcached();
|
|
||||||
$this->memcached->setOption(Memcached::OPT_COMPRESSION, false);
|
|
||||||
$this->memcached->addServer('127.0.0.1', 11211);
|
|
||||||
|
|
||||||
if (@fsockopen('127.0.0.1', 11211) === false) {
|
|
||||||
unset($this->memcached);
|
|
||||||
$this->markTestSkipped('Cannot connect to Memcached.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function tearDown()
|
|
||||||
{
|
|
||||||
if ($this->memcached instanceof Memcached) {
|
|
||||||
$this->memcached->flush();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*
|
|
||||||
* Memcached does not support " ", null byte and very long keys so we remove them from the tests.
|
|
||||||
*/
|
|
||||||
public function provideCacheIds()
|
|
||||||
{
|
|
||||||
$ids = parent::provideCacheIds();
|
|
||||||
unset($ids[21], $ids[22], $ids[24]);
|
|
||||||
|
|
||||||
return $ids;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testGetMemcachedReturnsInstanceOfMemcached()
|
|
||||||
{
|
|
||||||
$this->assertInstanceOf('Memcached', $this->_getCacheDriver()->getMemcached());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function _getCacheDriver()
|
|
||||||
{
|
|
||||||
$driver = new MemcachedCache();
|
|
||||||
$driver->setMemcached($this->memcached);
|
|
||||||
return $driver;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,68 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\Cache;
|
|
||||||
use Doctrine\Common\Cache\MongoDBCache;
|
|
||||||
use MongoClient;
|
|
||||||
use MongoCollection;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @requires extension mongo
|
|
||||||
*/
|
|
||||||
class MongoDBCacheTest extends CacheTest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var MongoCollection
|
|
||||||
*/
|
|
||||||
private $collection;
|
|
||||||
|
|
||||||
protected function setUp()
|
|
||||||
{
|
|
||||||
if ( ! version_compare(phpversion('mongo'), '1.3.0', '>=')) {
|
|
||||||
$this->markTestSkipped('Mongo >= 1.3.0 is required.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$mongo = new MongoClient();
|
|
||||||
$this->collection = $mongo->selectCollection('doctrine_common_cache', 'test');
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function tearDown()
|
|
||||||
{
|
|
||||||
if ($this->collection instanceof MongoCollection) {
|
|
||||||
$this->collection->drop();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testGetStats()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$stats = $cache->getStats();
|
|
||||||
|
|
||||||
$this->assertNull($stats[Cache::STATS_HITS]);
|
|
||||||
$this->assertNull($stats[Cache::STATS_MISSES]);
|
|
||||||
$this->assertGreaterThan(0, $stats[Cache::STATS_UPTIME]);
|
|
||||||
$this->assertEquals(0, $stats[Cache::STATS_MEMORY_USAGE]);
|
|
||||||
$this->assertNull($stats[Cache::STATS_MEMORY_AVAILABLE]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @group 108
|
|
||||||
*/
|
|
||||||
public function testMongoCursorExceptionsDoNotBubbleUp()
|
|
||||||
{
|
|
||||||
/* @var $collection \MongoCollection|\PHPUnit_Framework_MockObject_MockObject */
|
|
||||||
$collection = $this->getMock('MongoCollection', array(), array(), '', false);
|
|
||||||
|
|
||||||
$collection->expects(self::once())->method('update')->willThrowException(new \MongoCursorException());
|
|
||||||
|
|
||||||
$cache = new MongoDBCache($collection);
|
|
||||||
|
|
||||||
self::assertFalse($cache->save('foo', 'bar'));
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function _getCacheDriver()
|
|
||||||
{
|
|
||||||
return new MongoDBCache($this->collection);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,98 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\Cache;
|
|
||||||
use Doctrine\Common\Cache\PhpFileCache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @group DCOM-101
|
|
||||||
*/
|
|
||||||
class PhpFileCacheTest extends BaseFileCacheTest
|
|
||||||
{
|
|
||||||
public function provideDataToCache()
|
|
||||||
{
|
|
||||||
$data = parent::provideDataToCache();
|
|
||||||
|
|
||||||
unset($data['object'], $data['object_recursive']); // PhpFileCache only allows objects that implement __set_state() and fully support var_export()
|
|
||||||
|
|
||||||
if (PHP_VERSION_ID < 70002) {
|
|
||||||
unset($data['float_zero']); // var_export exports float(0) as int(0): https://bugs.php.net/bug.php?id=66179
|
|
||||||
}
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testImplementsSetState()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
// Test save
|
|
||||||
$cache->save('test_set_state', new SetStateClass(array(1,2,3)));
|
|
||||||
|
|
||||||
//Test __set_state call
|
|
||||||
$this->assertCount(0, SetStateClass::$values);
|
|
||||||
|
|
||||||
// Test fetch
|
|
||||||
$value = $cache->fetch('test_set_state');
|
|
||||||
$this->assertInstanceOf('Doctrine\Tests\Common\Cache\SetStateClass', $value);
|
|
||||||
$this->assertEquals(array(1,2,3), $value->getValue());
|
|
||||||
|
|
||||||
//Test __set_state call
|
|
||||||
$this->assertCount(1, SetStateClass::$values);
|
|
||||||
|
|
||||||
// Test contains
|
|
||||||
$this->assertTrue($cache->contains('test_set_state'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testNotImplementsSetState()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
|
|
||||||
$this->setExpectedException('InvalidArgumentException');
|
|
||||||
$cache->save('test_not_set_state', new NotSetStateClass(array(1,2,3)));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testGetStats()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$stats = $cache->getStats();
|
|
||||||
|
|
||||||
$this->assertNull($stats[Cache::STATS_HITS]);
|
|
||||||
$this->assertNull($stats[Cache::STATS_MISSES]);
|
|
||||||
$this->assertNull($stats[Cache::STATS_UPTIME]);
|
|
||||||
$this->assertEquals(0, $stats[Cache::STATS_MEMORY_USAGE]);
|
|
||||||
$this->assertGreaterThan(0, $stats[Cache::STATS_MEMORY_AVAILABLE]);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function _getCacheDriver()
|
|
||||||
{
|
|
||||||
return new PhpFileCache($this->directory);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class NotSetStateClass
|
|
||||||
{
|
|
||||||
private $value;
|
|
||||||
|
|
||||||
public function __construct($value)
|
|
||||||
{
|
|
||||||
$this->value = $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getValue()
|
|
||||||
{
|
|
||||||
return $this->value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class SetStateClass extends NotSetStateClass
|
|
||||||
{
|
|
||||||
public static $values = array();
|
|
||||||
|
|
||||||
public static function __set_state($data)
|
|
||||||
{
|
|
||||||
self::$values = $data;
|
|
||||||
return new self($data['value']);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,87 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\Cache;
|
|
||||||
use Doctrine\Common\Cache\PredisCache;
|
|
||||||
use Predis\Client;
|
|
||||||
use Predis\Connection\ConnectionException;
|
|
||||||
|
|
||||||
class PredisCacheTest extends CacheTest
|
|
||||||
{
|
|
||||||
private $client;
|
|
||||||
|
|
||||||
protected function setUp()
|
|
||||||
{
|
|
||||||
if (!class_exists('Predis\Client')) {
|
|
||||||
$this->markTestSkipped('Predis\Client is missing. Make sure to "composer install" to have all dev dependencies.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->client = new Client();
|
|
||||||
|
|
||||||
try {
|
|
||||||
$this->client->connect();
|
|
||||||
} catch (ConnectionException $e) {
|
|
||||||
$this->markTestSkipped('Cannot connect to Redis because of: ' . $e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testHitMissesStatsAreProvided()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$stats = $cache->getStats();
|
|
||||||
|
|
||||||
$this->assertNotNull($stats[Cache::STATS_HITS]);
|
|
||||||
$this->assertNotNull($stats[Cache::STATS_MISSES]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return PredisCache
|
|
||||||
*/
|
|
||||||
protected function _getCacheDriver()
|
|
||||||
{
|
|
||||||
return new PredisCache($this->client);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*
|
|
||||||
* @dataProvider provideDataToCache
|
|
||||||
*/
|
|
||||||
public function testSetContainsFetchDelete($value)
|
|
||||||
{
|
|
||||||
if (array() === $value) {
|
|
||||||
$this->markTestIncomplete(
|
|
||||||
'Predis currently doesn\'t support saving empty array values. '
|
|
||||||
. 'See https://github.com/nrk/predis/issues/241'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
parent::testSetContainsFetchDelete($value);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*
|
|
||||||
* @dataProvider provideDataToCache
|
|
||||||
*/
|
|
||||||
public function testUpdateExistingEntry($value)
|
|
||||||
{
|
|
||||||
if (array() === $value) {
|
|
||||||
$this->markTestIncomplete(
|
|
||||||
'Predis currently doesn\'t support saving empty array values. '
|
|
||||||
. 'See https://github.com/nrk/predis/issues/241'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
parent::testUpdateExistingEntry($value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testAllowsGenericPredisClient()
|
|
||||||
{
|
|
||||||
/* @var $predisClient \Predis\ClientInterface */
|
|
||||||
$predisClient = $this->getMock('Predis\\ClientInterface');
|
|
||||||
|
|
||||||
$this->assertInstanceOf('Doctrine\\Common\\Cache\\PredisCache', new PredisCache($predisClient));
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,59 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\RedisCache;
|
|
||||||
use Doctrine\Common\Cache\Cache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @requires extension redis
|
|
||||||
*/
|
|
||||||
class RedisCacheTest extends CacheTest
|
|
||||||
{
|
|
||||||
private $_redis;
|
|
||||||
|
|
||||||
protected function setUp()
|
|
||||||
{
|
|
||||||
$this->_redis = new \Redis();
|
|
||||||
$ok = @$this->_redis->connect('127.0.0.1');
|
|
||||||
if (!$ok) {
|
|
||||||
$this->markTestSkipped('Cannot connect to Redis.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testHitMissesStatsAreProvided()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$stats = $cache->getStats();
|
|
||||||
|
|
||||||
$this->assertNotNull($stats[Cache::STATS_HITS]);
|
|
||||||
$this->assertNotNull($stats[Cache::STATS_MISSES]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testGetRedisReturnsInstanceOfRedis()
|
|
||||||
{
|
|
||||||
$this->assertInstanceOf('Redis', $this->_getCacheDriver()->getRedis());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testSerializerOptionWithOutIgbinaryExtension()
|
|
||||||
{
|
|
||||||
if (defined('Redis::SERIALIZER_IGBINARY') && extension_loaded('igbinary')) {
|
|
||||||
$this->markTestSkipped('Extension igbinary is loaded.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->assertEquals(
|
|
||||||
\Redis::SERIALIZER_PHP,
|
|
||||||
$this->_getCacheDriver()->getRedis()->getOption(\Redis::OPT_SERIALIZER)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function _getCacheDriver()
|
|
||||||
{
|
|
||||||
$driver = new RedisCache();
|
|
||||||
$driver->setRedis($this->_redis);
|
|
||||||
return $driver;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Riak\Bucket;
|
|
||||||
use Riak\Connection;
|
|
||||||
use Riak\Exception;
|
|
||||||
use Doctrine\Common\Cache\RiakCache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* RiakCache test
|
|
||||||
*
|
|
||||||
* @group Riak
|
|
||||||
* @requires extension riak
|
|
||||||
*/
|
|
||||||
class RiakCacheTest extends CacheTest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var \Riak\Connection
|
|
||||||
*/
|
|
||||||
private $connection;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var \Riak\Bucket
|
|
||||||
*/
|
|
||||||
private $bucket;
|
|
||||||
|
|
||||||
protected function setUp()
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
$this->connection = new Connection('127.0.0.1', 8087);
|
|
||||||
$this->bucket = new Bucket($this->connection, 'test');
|
|
||||||
} catch (Exception\RiakException $e) {
|
|
||||||
$this->markTestSkipped('Cannot connect to Riak.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function testGetStats()
|
|
||||||
{
|
|
||||||
$cache = $this->_getCacheDriver();
|
|
||||||
$stats = $cache->getStats();
|
|
||||||
|
|
||||||
$this->assertNull($stats);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieve RiakCache instance.
|
|
||||||
*
|
|
||||||
* @return \Doctrine\Common\Cache\RiakCache
|
|
||||||
*/
|
|
||||||
protected function _getCacheDriver()
|
|
||||||
{
|
|
||||||
return new RiakCache($this->bucket);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\Cache;
|
|
||||||
use Doctrine\Common\Cache\SQLite3Cache;
|
|
||||||
use SQLite3;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @requires extension sqlite3
|
|
||||||
*/
|
|
||||||
class SQLite3Test extends CacheTest
|
|
||||||
{
|
|
||||||
private $file;
|
|
||||||
private $sqlite;
|
|
||||||
|
|
||||||
protected function setUp()
|
|
||||||
{
|
|
||||||
$this->file = tempnam(null, 'doctrine-cache-test-');
|
|
||||||
unlink($this->file);
|
|
||||||
$this->sqlite = new SQLite3($this->file);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function tearDown()
|
|
||||||
{
|
|
||||||
$this->sqlite = null; // DB must be closed before
|
|
||||||
unlink($this->file);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testGetStats()
|
|
||||||
{
|
|
||||||
$this->assertNull($this->_getCacheDriver()->getStats());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected function _getCacheDriver()
|
|
||||||
{
|
|
||||||
return new SQLite3Cache($this->sqlite, 'test_table');
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\Common\Cache;
|
|
||||||
|
|
||||||
use Doctrine\Common\Cache\VoidCache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @covers \Doctrine\Common\Cache\VoidCache
|
|
||||||
*/
|
|
||||||
class VoidCacheTest extends \PHPUnit_Framework_TestCase
|
|
||||||
{
|
|
||||||
public function testShouldAlwaysReturnFalseOnContains()
|
|
||||||
{
|
|
||||||
$cache = new VoidCache();
|
|
||||||
|
|
||||||
$this->assertFalse($cache->contains('foo'));
|
|
||||||
$this->assertFalse($cache->contains('bar'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testShouldAlwaysReturnFalseOnFetch()
|
|
||||||
{
|
|
||||||
$cache = new VoidCache();
|
|
||||||
|
|
||||||
$this->assertFalse($cache->fetch('foo'));
|
|
||||||
$this->assertFalse($cache->fetch('bar'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testShouldAlwaysReturnTrueOnSaveButNotStoreAnything()
|
|
||||||
{
|
|
||||||
$cache = new VoidCache();
|
|
||||||
|
|
||||||
$this->assertTrue($cache->save('foo', 'fooVal'));
|
|
||||||
|
|
||||||
$this->assertFalse($cache->contains('foo'));
|
|
||||||
$this->assertFalse($cache->fetch('foo'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testShouldAlwaysReturnTrueOnDelete()
|
|
||||||
{
|
|
||||||
$cache = new VoidCache();
|
|
||||||
|
|
||||||
$this->assertTrue($cache->delete('foo'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testShouldAlwaysReturnNullOnGetStatus()
|
|
||||||
{
|
|
||||||
$cache = new VoidCache();
|
|
||||||
|
|
||||||
$this->assertNull($cache->getStats());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testShouldAlwaysReturnTrueOnFlush()
|
|
||||||
{
|
|
||||||
$cache = new VoidCache();
|
|
||||||
|
|
||||||
$this->assertTrue($cache->flushAll());
|
|
||||||
}
|
|
||||||
}
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue