mirror of
https://gitee.com/ledc/IYUUAutoReseed
synced 2025-05-23 10:05:23 +00:00
整合vendor依赖目录
This commit is contained in:
parent
8561fac8c4
commit
19197d36ce
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,7 +2,6 @@
|
|||||||
/config/config.php
|
/config/config.php
|
||||||
/config/sites.json
|
/config/sites.json
|
||||||
/php-7.2.12-nts
|
/php-7.2.12-nts
|
||||||
/vendor
|
|
||||||
/*.bat
|
/*.bat
|
||||||
/*.sh
|
/*.sh
|
||||||
.idea
|
.idea
|
||||||
|
7
vendor/autoload.php
vendored
Normal file
7
vendor/autoload.php
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload.php @generated by Composer
|
||||||
|
|
||||||
|
require_once __DIR__ . '/composer/autoload_real.php';
|
||||||
|
|
||||||
|
return ComposerAutoloaderInitc1e5fbd59e164c9ce8925e2ca672401d::getLoader();
|
445
vendor/composer/ClassLoader.php
vendored
Normal file
445
vendor/composer/ClassLoader.php
vendored
Normal file
@ -0,0 +1,445 @@
|
|||||||
|
<?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;
|
||||||
|
private $missingClasses = array();
|
||||||
|
private $apcuPrefix;
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
||||||
|
*
|
||||||
|
* @param string|null $apcuPrefix
|
||||||
|
*/
|
||||||
|
public function setApcuPrefix($apcuPrefix)
|
||||||
|
{
|
||||||
|
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The APCu prefix in use, or null if APCu caching is not enabled.
|
||||||
|
*
|
||||||
|
* @return string|null
|
||||||
|
*/
|
||||||
|
public function getApcuPrefix()
|
||||||
|
{
|
||||||
|
return $this->apcuPrefix;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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)
|
||||||
|
{
|
||||||
|
// class map lookup
|
||||||
|
if (isset($this->classMap[$class])) {
|
||||||
|
return $this->classMap[$class];
|
||||||
|
}
|
||||||
|
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (null !== $this->apcuPrefix) {
|
||||||
|
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
|
||||||
|
if ($hit) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$file = $this->findFileWithExtension($class, '.php');
|
||||||
|
|
||||||
|
// Search for Hack files if we are running on HHVM
|
||||||
|
if (false === $file && defined('HHVM_VERSION')) {
|
||||||
|
$file = $this->findFileWithExtension($class, '.hh');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null !== $this->apcuPrefix) {
|
||||||
|
apcu_add($this->apcuPrefix.$class, $file);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (false === $file) {
|
||||||
|
// Remember that this class does not exist.
|
||||||
|
$this->missingClasses[$class] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function findFileWithExtension($class, $ext)
|
||||||
|
{
|
||||||
|
// PSR-4 lookup
|
||||||
|
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
|
||||||
|
|
||||||
|
$first = $class[0];
|
||||||
|
if (isset($this->prefixLengthsPsr4[$first])) {
|
||||||
|
$subPath = $class;
|
||||||
|
while (false !== $lastPos = strrpos($subPath, '\\')) {
|
||||||
|
$subPath = substr($subPath, 0, $lastPos);
|
||||||
|
$search = $subPath . '\\';
|
||||||
|
if (isset($this->prefixDirsPsr4[$search])) {
|
||||||
|
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
|
||||||
|
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
||||||
|
if (file_exists($file = $dir . $pathEnd)) {
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scope isolated include.
|
||||||
|
*
|
||||||
|
* Prevents access to $this/self from included files.
|
||||||
|
*/
|
||||||
|
function includeFile($file)
|
||||||
|
{
|
||||||
|
include $file;
|
||||||
|
}
|
21
vendor/composer/LICENSE
vendored
Normal file
21
vendor/composer/LICENSE
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
Copyright (c) Nils Adermann, Jordi Boggiano
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
9
vendor/composer/autoload_classmap.php
vendored
Normal file
9
vendor/composer/autoload_classmap.php
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload_classmap.php @generated by Composer
|
||||||
|
|
||||||
|
$vendorDir = dirname(dirname(__FILE__));
|
||||||
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
|
return array(
|
||||||
|
);
|
10
vendor/composer/autoload_files.php
vendored
Normal file
10
vendor/composer/autoload_files.php
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload_files.php @generated by Composer
|
||||||
|
|
||||||
|
$vendorDir = dirname(dirname(__FILE__));
|
||||||
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'f32902f145fce7a432f59959f59e5a18' => $baseDir . '/app/helper.php',
|
||||||
|
);
|
10
vendor/composer/autoload_namespaces.php
vendored
Normal file
10
vendor/composer/autoload_namespaces.php
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload_namespaces.php @generated by Composer
|
||||||
|
|
||||||
|
$vendorDir = dirname(dirname(__FILE__));
|
||||||
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'Curl' => array($vendorDir . '/curl/curl/src'),
|
||||||
|
);
|
10
vendor/composer/autoload_psr4.php
vendored
Normal file
10
vendor/composer/autoload_psr4.php
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload_psr4.php @generated by Composer
|
||||||
|
|
||||||
|
$vendorDir = dirname(dirname(__FILE__));
|
||||||
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'IYUU\\' => array($baseDir . '/app'),
|
||||||
|
);
|
70
vendor/composer/autoload_real.php
vendored
Normal file
70
vendor/composer/autoload_real.php
vendored
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload_real.php @generated by Composer
|
||||||
|
|
||||||
|
class ComposerAutoloaderInitc1e5fbd59e164c9ce8925e2ca672401d
|
||||||
|
{
|
||||||
|
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('ComposerAutoloaderInitc1e5fbd59e164c9ce8925e2ca672401d', 'loadClassLoader'), true, true);
|
||||||
|
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
||||||
|
spl_autoload_unregister(array('ComposerAutoloaderInitc1e5fbd59e164c9ce8925e2ca672401d', 'loadClassLoader'));
|
||||||
|
|
||||||
|
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
||||||
|
if ($useStaticLoader) {
|
||||||
|
require_once __DIR__ . '/autoload_static.php';
|
||||||
|
|
||||||
|
call_user_func(\Composer\Autoload\ComposerStaticInitc1e5fbd59e164c9ce8925e2ca672401d::getInitializer($loader));
|
||||||
|
} else {
|
||||||
|
$map = require __DIR__ . '/autoload_namespaces.php';
|
||||||
|
foreach ($map as $namespace => $path) {
|
||||||
|
$loader->set($namespace, $path);
|
||||||
|
}
|
||||||
|
|
||||||
|
$map = require __DIR__ . '/autoload_psr4.php';
|
||||||
|
foreach ($map as $namespace => $path) {
|
||||||
|
$loader->setPsr4($namespace, $path);
|
||||||
|
}
|
||||||
|
|
||||||
|
$classMap = require __DIR__ . '/autoload_classmap.php';
|
||||||
|
if ($classMap) {
|
||||||
|
$loader->addClassMap($classMap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$loader->register(true);
|
||||||
|
|
||||||
|
if ($useStaticLoader) {
|
||||||
|
$includeFiles = Composer\Autoload\ComposerStaticInitc1e5fbd59e164c9ce8925e2ca672401d::$files;
|
||||||
|
} else {
|
||||||
|
$includeFiles = require __DIR__ . '/autoload_files.php';
|
||||||
|
}
|
||||||
|
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||||
|
composerRequirec1e5fbd59e164c9ce8925e2ca672401d($fileIdentifier, $file);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $loader;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function composerRequirec1e5fbd59e164c9ce8925e2ca672401d($fileIdentifier, $file)
|
||||||
|
{
|
||||||
|
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||||
|
require $file;
|
||||||
|
|
||||||
|
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||||
|
}
|
||||||
|
}
|
46
vendor/composer/autoload_static.php
vendored
Normal file
46
vendor/composer/autoload_static.php
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload_static.php @generated by Composer
|
||||||
|
|
||||||
|
namespace Composer\Autoload;
|
||||||
|
|
||||||
|
class ComposerStaticInitc1e5fbd59e164c9ce8925e2ca672401d
|
||||||
|
{
|
||||||
|
public static $files = array (
|
||||||
|
'f32902f145fce7a432f59959f59e5a18' => __DIR__ . '/../..' . '/app/helper.php',
|
||||||
|
);
|
||||||
|
|
||||||
|
public static $prefixLengthsPsr4 = array (
|
||||||
|
'I' =>
|
||||||
|
array (
|
||||||
|
'IYUU\\' => 5,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
public static $prefixDirsPsr4 = array (
|
||||||
|
'IYUU\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/../..' . '/app',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
public static $prefixesPsr0 = array (
|
||||||
|
'C' =>
|
||||||
|
array (
|
||||||
|
'Curl' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/curl/curl/src',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
public static function getInitializer(ClassLoader $loader)
|
||||||
|
{
|
||||||
|
return \Closure::bind(function () use ($loader) {
|
||||||
|
$loader->prefixLengthsPsr4 = ComposerStaticInitc1e5fbd59e164c9ce8925e2ca672401d::$prefixLengthsPsr4;
|
||||||
|
$loader->prefixDirsPsr4 = ComposerStaticInitc1e5fbd59e164c9ce8925e2ca672401d::$prefixDirsPsr4;
|
||||||
|
$loader->prefixesPsr0 = ComposerStaticInitc1e5fbd59e164c9ce8925e2ca672401d::$prefixesPsr0;
|
||||||
|
|
||||||
|
}, null, ClassLoader::class);
|
||||||
|
}
|
||||||
|
}
|
65
vendor/composer/installed.json
vendored
Normal file
65
vendor/composer/installed.json
vendored
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "curl/curl",
|
||||||
|
"version": "2.2.0",
|
||||||
|
"version_normalized": "2.2.0.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/php-mod/curl.git",
|
||||||
|
"reference": "d22086dd2eee5ca02e4c29b9a5bdf3645bfdbbff"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/php-mod/curl/zipball/d22086dd2eee5ca02e4c29b9a5bdf3645bfdbbff",
|
||||||
|
"reference": "d22086dd2eee5ca02e4c29b9a5bdf3645bfdbbff",
|
||||||
|
"shasum": "",
|
||||||
|
"mirrors": [
|
||||||
|
{
|
||||||
|
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
|
||||||
|
"preferred": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-curl": "*",
|
||||||
|
"php": "^5.6 | ^7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^5.7",
|
||||||
|
"squizlabs/php_codesniffer": "~2.1"
|
||||||
|
},
|
||||||
|
"time": "2018-12-04T19:47:03+00:00",
|
||||||
|
"type": "library",
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Curl": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Hassan Amouhzi",
|
||||||
|
"email": "hassan@anezi.net",
|
||||||
|
"homepage": "http://hassan.amouhzi.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "php-curl-class",
|
||||||
|
"homepage": "https://github.com/php-curl-class"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "user52",
|
||||||
|
"homepage": "https://github.com/user52"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "cURL class for PHP",
|
||||||
|
"homepage": "https://github.com/php-mod/curl",
|
||||||
|
"keywords": [
|
||||||
|
"curl",
|
||||||
|
"dot"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
11
vendor/curl/curl/.gitignore
vendored
Normal file
11
vendor/curl/curl/.gitignore
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
vendor/*
|
||||||
|
*.orig
|
||||||
|
.buildpath
|
||||||
|
.project
|
||||||
|
.settings/*
|
||||||
|
.idea/*
|
||||||
|
composer.lock
|
||||||
|
*~
|
||||||
|
tests/phpunit_report/*
|
||||||
|
/.settings/
|
||||||
|
/.php_cs.cache
|
113
vendor/curl/curl/.gitlab-ci.yml
vendored
Normal file
113
vendor/curl/curl/.gitlab-ci.yml
vendored
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
stages:
|
||||||
|
- build
|
||||||
|
- test
|
||||||
|
|
||||||
|
build-test-server:
|
||||||
|
image: docker:latest
|
||||||
|
stage: build
|
||||||
|
services:
|
||||||
|
- docker:dind
|
||||||
|
script:
|
||||||
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
||||||
|
- docker build --pull -t "$CI_REGISTRY_IMAGE:server-test" tests/server
|
||||||
|
- docker push "$CI_REGISTRY_IMAGE:server-test"
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- tests/server
|
||||||
|
|
||||||
|
tests-php5.6:
|
||||||
|
image: alpine:3.7
|
||||||
|
stage: test
|
||||||
|
services:
|
||||||
|
- name: "$CI_REGISTRY_IMAGE:server-test"
|
||||||
|
alias: server_test
|
||||||
|
script:
|
||||||
|
- apk add --no-cache php5-cli php5-curl php5-gd php5-phar php5-json php5-openssl php5-dom php5-xml php5-zlib
|
||||||
|
- ln -s /usr/bin/php5 /usr/bin/php
|
||||||
|
- php --version
|
||||||
|
- if [ ! -f composer.phar ]; then DOWLOAD_COMPOSER=1 ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php composer-setup.php ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php -r "unlink('composer-setup.php');" ; fi;
|
||||||
|
- php composer.phar install
|
||||||
|
- vendor/bin/phpcs --warning-severity=0 --standard=PSR2 src
|
||||||
|
- vendor/bin/phpunit
|
||||||
|
cache:
|
||||||
|
key: php5.6
|
||||||
|
paths:
|
||||||
|
- composer.phar
|
||||||
|
- vendor
|
||||||
|
|
||||||
|
tests-php7.0:
|
||||||
|
image: alpine:3.5
|
||||||
|
stage: test
|
||||||
|
services:
|
||||||
|
- name: "$CI_REGISTRY_IMAGE:server-test"
|
||||||
|
alias: server_test
|
||||||
|
script:
|
||||||
|
- apk add --no-cache php7 php7-curl php7-gd php7-phar php7-json php7-openssl php7-dom php7-mbstring
|
||||||
|
- ln -s /usr/bin/php7 /usr/bin/php
|
||||||
|
- php --version
|
||||||
|
- if [ ! -f composer.phar ]; then DOWLOAD_COMPOSER=1 ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php composer-setup.php ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php -r "unlink('composer-setup.php');" ; fi;
|
||||||
|
- php composer.phar install
|
||||||
|
- vendor/bin/phpcs --warning-severity=0 --standard=PSR2 src
|
||||||
|
- nohup php -S localhost:8000 -t tests/server/php-curl-test > phpd.log 2>&1 &
|
||||||
|
- vendor/bin/phpunit
|
||||||
|
cache:
|
||||||
|
key: php7.0
|
||||||
|
paths:
|
||||||
|
- composer.phar
|
||||||
|
- vendor
|
||||||
|
|
||||||
|
tests-php7.1:
|
||||||
|
image: alpine:3.7
|
||||||
|
stage: test
|
||||||
|
services:
|
||||||
|
- name: "$CI_REGISTRY_IMAGE:server-test"
|
||||||
|
alias: server_test
|
||||||
|
script:
|
||||||
|
- apk add --no-cache php7-cli php7-curl php7-gd php7-phar php7-json php7-openssl php7-dom php7-simplexml php7-tokenizer php7-mbstring php7-xml
|
||||||
|
- php --version
|
||||||
|
- if [ ! -f composer.phar ]; then DOWLOAD_COMPOSER=1 ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php composer-setup.php ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php -r "unlink('composer-setup.php');" ; fi;
|
||||||
|
- php composer.phar install
|
||||||
|
- vendor/bin/phpcs --warning-severity=0 --standard=PSR2 src
|
||||||
|
- nohup php -S localhost:8000 -t tests/server/php-curl-test > phpd.log 2>&1 &
|
||||||
|
- vendor/bin/phpunit
|
||||||
|
cache:
|
||||||
|
key: php7.1
|
||||||
|
paths:
|
||||||
|
- composer.phar
|
||||||
|
- vendor
|
||||||
|
|
||||||
|
tests-php7.2:
|
||||||
|
image: alpine:3.8
|
||||||
|
stage: test
|
||||||
|
services:
|
||||||
|
- name: "$CI_REGISTRY_IMAGE:server-test"
|
||||||
|
alias: server_test
|
||||||
|
script:
|
||||||
|
- apk add --no-cache php7-cli php7-curl php7-gd php7-phar php7-json php7-openssl php7-dom php7-simplexml php7-tokenizer php7-mbstring php7-xml
|
||||||
|
- php --version
|
||||||
|
- if [ ! -f composer.phar ]; then DOWLOAD_COMPOSER=1 ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php composer-setup.php ; fi;
|
||||||
|
- if [ -n "$DOWLOAD_COMPOSER" ] ; then php -r "unlink('composer-setup.php');" ; fi;
|
||||||
|
- php composer.phar install
|
||||||
|
- vendor/bin/phpcs --warning-severity=0 --standard=PSR2 src
|
||||||
|
- nohup php -S localhost:8000 -t tests/server/php-curl-test > phpd.log 2>&1 &
|
||||||
|
- vendor/bin/phpunit
|
||||||
|
cache:
|
||||||
|
key: php7.2
|
||||||
|
paths:
|
||||||
|
- composer.phar
|
||||||
|
- vendor
|
20
vendor/curl/curl/LICENSE
vendored
Normal file
20
vendor/curl/curl/LICENSE
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2013 php-mod
|
||||||
|
|
||||||
|
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.
|
125
vendor/curl/curl/README.md
vendored
Normal file
125
vendor/curl/curl/README.md
vendored
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
# PHP Curl Class
|
||||||
|
|
||||||
|
This library provides an object-oriented wrapper of the PHP cURL extension.
|
||||||
|
|
||||||
|
If you have questions or problems with installation or usage [create an Issue](https://github.com/php-mod/curl/issues).
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
In order to install this library via composer run the following command in the console:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
composer require curl/curl
|
||||||
|
```
|
||||||
|
|
||||||
|
or add the package manually to your composer.json file in the require section:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"curl/curl": "^2.0"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage examples
|
||||||
|
|
||||||
|
```php
|
||||||
|
$curl = new Curl\Curl();
|
||||||
|
$curl->get('http://www.example.com/');
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
$curl = new Curl\Curl();
|
||||||
|
$curl->get('http://www.example.com/search', array(
|
||||||
|
'q' => 'keyword',
|
||||||
|
));
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
$curl = new Curl\Curl();
|
||||||
|
$curl->post('http://www.example.com/login/', array(
|
||||||
|
'username' => 'myusername',
|
||||||
|
'password' => 'mypassword',
|
||||||
|
));
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
$curl = new Curl\Curl();
|
||||||
|
$curl->setBasicAuthentication('username', 'password');
|
||||||
|
$curl->setUserAgent('');
|
||||||
|
$curl->setReferrer('');
|
||||||
|
$curl->setHeader('X-Requested-With', 'XMLHttpRequest');
|
||||||
|
$curl->setCookie('key', 'value');
|
||||||
|
$curl->get('http://www.example.com/');
|
||||||
|
|
||||||
|
if ($curl->error) {
|
||||||
|
echo $curl->error_code;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo $curl->response;
|
||||||
|
}
|
||||||
|
|
||||||
|
var_dump($curl->request_headers);
|
||||||
|
var_dump($curl->response_headers);
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
$curl = new Curl\Curl();
|
||||||
|
$curl->setOpt(CURLOPT_RETURNTRANSFER, TRUE);
|
||||||
|
$curl->setOpt(CURLOPT_SSL_VERIFYPEER, FALSE);
|
||||||
|
$curl->get('https://encrypted.example.com/');
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
$curl = new Curl\Curl();
|
||||||
|
$curl->put('http://api.example.com/user/', array(
|
||||||
|
'first_name' => 'Zach',
|
||||||
|
'last_name' => 'Borboa',
|
||||||
|
));
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
$curl = new Curl\Curl();
|
||||||
|
$curl->patch('http://api.example.com/profile/', array(
|
||||||
|
'image' => '@path/to/file.jpg',
|
||||||
|
));
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
$curl = new Curl\Curl();
|
||||||
|
$curl->delete('http://api.example.com/user/', array(
|
||||||
|
'id' => '1234',
|
||||||
|
));
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
$curl->close();
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
// Example access to curl object.
|
||||||
|
curl_set_opt($curl->curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1');
|
||||||
|
curl_close($curl->curl);
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
// Example of downloading a file or any other content
|
||||||
|
$curl = new Curl\Curl();
|
||||||
|
// open the file where the request response should be written
|
||||||
|
$file_handle = fopen($target_file, 'w+');
|
||||||
|
// pass it to the curl resource
|
||||||
|
$curl->setOpt(CURLOPT_FILE, $file_handle);
|
||||||
|
// do any type of request
|
||||||
|
$curl->get('https://github.com');
|
||||||
|
// disable writing to file
|
||||||
|
$curl->setOpt(CURLOPT_FILE, null);
|
||||||
|
// close the file for writing
|
||||||
|
fclose($file_handle);
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
In order to test the library:
|
||||||
|
|
||||||
|
1. Create a fork
|
||||||
|
2. Clone the fork to your machine
|
||||||
|
3. Install the depencies `composer install`
|
||||||
|
4. Run the unit tests `./vendor/bin/phpunit tests`
|
36
vendor/curl/curl/composer.json
vendored
Normal file
36
vendor/curl/curl/composer.json
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"name": "curl/curl",
|
||||||
|
"description": "cURL class for PHP",
|
||||||
|
"keywords": ["dot", "curl"],
|
||||||
|
"homepage": "https://github.com/php-mod/curl",
|
||||||
|
"type": "library",
|
||||||
|
"license": "MIT",
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "php-curl-class",
|
||||||
|
"homepage": "https://github.com/php-curl-class"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Hassan Amouhzi",
|
||||||
|
"email": "hassan@anezi.net",
|
||||||
|
"homepage": "http://hassan.amouhzi.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "user52",
|
||||||
|
"homepage": "https://github.com/user52"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"require": {
|
||||||
|
"php": "^5.6 | ^7.0",
|
||||||
|
"ext-curl": "*"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^5.7",
|
||||||
|
"squizlabs/php_codesniffer": "~2.1"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Curl": "src/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
24
vendor/curl/curl/phpunit.xml.dist
vendored
Normal file
24
vendor/curl/curl/phpunit.xml.dist
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<phpunit backupGlobals="false"
|
||||||
|
backupStaticAttributes="false"
|
||||||
|
colors="true"
|
||||||
|
convertErrorsToExceptions="true"
|
||||||
|
convertNoticesToExceptions="true"
|
||||||
|
convertWarningsToExceptions="true"
|
||||||
|
processIsolation="false"
|
||||||
|
stopOnFailure="false"
|
||||||
|
syntaxCheck="true"
|
||||||
|
verbose="false"
|
||||||
|
bootstrap="vendor/autoload.php"
|
||||||
|
>
|
||||||
|
<php>
|
||||||
|
<ini name="display_errors" value="on"/>
|
||||||
|
</php>
|
||||||
|
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="PHP MP4Box Tests Suite">
|
||||||
|
<directory>tests</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
|
|
||||||
|
</phpunit>
|
719
vendor/curl/curl/src/Curl/Curl.php
vendored
Normal file
719
vendor/curl/curl/src/Curl/Curl.php
vendored
Normal file
@ -0,0 +1,719 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Curl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An object-oriented wrapper of the PHP cURL extension.
|
||||||
|
*
|
||||||
|
* This library requires to have the php cURL extensions installed:
|
||||||
|
* https://php.net/manual/curl.setup.php
|
||||||
|
*
|
||||||
|
* Example of making a get request with parameters:
|
||||||
|
*
|
||||||
|
* ```php
|
||||||
|
* $curl = new Curl\Curl();
|
||||||
|
* $curl->get('http://www.example.com/search', array(
|
||||||
|
* 'q' => 'keyword',
|
||||||
|
* ));
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* Example post request with post data:
|
||||||
|
*
|
||||||
|
* ```php
|
||||||
|
* $curl = new Curl\Curl();
|
||||||
|
* $curl->post('http://www.example.com/login/', array(
|
||||||
|
* 'username' => 'myusername',
|
||||||
|
* 'password' => 'mypassword',
|
||||||
|
* ));
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @see https://php.net/manual/curl.setup.php
|
||||||
|
*/
|
||||||
|
class Curl
|
||||||
|
{
|
||||||
|
// The HTTP authentication method(s) to use.
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Type AUTH_BASIC
|
||||||
|
*/
|
||||||
|
const AUTH_BASIC = CURLAUTH_BASIC;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Type AUTH_DIGEST
|
||||||
|
*/
|
||||||
|
const AUTH_DIGEST = CURLAUTH_DIGEST;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Type AUTH_GSSNEGOTIATE
|
||||||
|
*/
|
||||||
|
const AUTH_GSSNEGOTIATE = CURLAUTH_GSSNEGOTIATE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Type AUTH_NTLM
|
||||||
|
*/
|
||||||
|
const AUTH_NTLM = CURLAUTH_NTLM;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Type AUTH_ANY
|
||||||
|
*/
|
||||||
|
const AUTH_ANY = CURLAUTH_ANY;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Type AUTH_ANYSAFE
|
||||||
|
*/
|
||||||
|
const AUTH_ANYSAFE = CURLAUTH_ANYSAFE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string The user agent name which is set when making a request
|
||||||
|
*/
|
||||||
|
const USER_AGENT = 'PHP Curl/1.9 (+https://github.com/php-mod/curl)';
|
||||||
|
|
||||||
|
private $_cookies = array();
|
||||||
|
|
||||||
|
private $_headers = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var resource Contains the curl resource created by `curl_init()` function
|
||||||
|
*/
|
||||||
|
public $curl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bool Whether an error occured or not
|
||||||
|
*/
|
||||||
|
public $error = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var int Contains the error code of the curren request, 0 means no error happend
|
||||||
|
*/
|
||||||
|
public $error_code = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string If the curl request failed, the error message is contained
|
||||||
|
*/
|
||||||
|
public $error_message = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bool Whether an error occured or not
|
||||||
|
*/
|
||||||
|
public $curl_error = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var int Contains the error code of the curren request, 0 means no error happend.
|
||||||
|
* @see https://curl.haxx.se/libcurl/c/libcurl-errors.html
|
||||||
|
*/
|
||||||
|
public $curl_error_code = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string If the curl request failed, the error message is contained
|
||||||
|
*/
|
||||||
|
public $curl_error_message = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bool Whether an error occured or not
|
||||||
|
*/
|
||||||
|
public $http_error = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var int Contains the status code of the current processed request.
|
||||||
|
*/
|
||||||
|
public $http_status_code = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string If the curl request failed, the error message is contained
|
||||||
|
*/
|
||||||
|
public $http_error_message = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string|array TBD (ensure type) Contains the request header informations
|
||||||
|
*/
|
||||||
|
public $request_headers = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string|array TBD (ensure type) Contains the response header informations
|
||||||
|
*/
|
||||||
|
public $response_headers = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Contains the response from the curl request
|
||||||
|
*/
|
||||||
|
public $response = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bool Whether the current section of response headers is after 'HTTP/1.1 100 Continue'
|
||||||
|
*/
|
||||||
|
protected $response_header_continue = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor ensures the available curl extension is loaded.
|
||||||
|
*
|
||||||
|
* @throws \ErrorException
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
if (!extension_loaded('curl')) {
|
||||||
|
throw new \ErrorException('The cURL extensions is not loaded, make sure you have installed the cURL extension: https://php.net/manual/curl.setup.php');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->init();
|
||||||
|
}
|
||||||
|
|
||||||
|
// private methods
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializer for the curl resource.
|
||||||
|
*
|
||||||
|
* Is called by the __construct() of the class or when the curl request is reseted.
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
private function init()
|
||||||
|
{
|
||||||
|
$this->curl = curl_init();
|
||||||
|
$this->setUserAgent(self::USER_AGENT);
|
||||||
|
$this->setOpt(CURLINFO_HEADER_OUT, true);
|
||||||
|
$this->setOpt(CURLOPT_HEADER, false);
|
||||||
|
$this->setOpt(CURLOPT_RETURNTRANSFER, true);
|
||||||
|
$this->setOpt(CURLOPT_HEADERFUNCTION, array($this, 'addResponseHeaderLine'));
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle writing the response headers
|
||||||
|
*
|
||||||
|
* @param resource $curl The current curl resource
|
||||||
|
* @param string $header_line A line from the list of response headers
|
||||||
|
*
|
||||||
|
* @return int Returns the length of the $header_line
|
||||||
|
*/
|
||||||
|
public function addResponseHeaderLine($curl, $header_line)
|
||||||
|
{
|
||||||
|
$trimmed_header = trim($header_line, "\r\n");
|
||||||
|
|
||||||
|
if ($trimmed_header === "") {
|
||||||
|
$this->response_header_continue = false;
|
||||||
|
} elseif (strtolower($trimmed_header) === 'http/1.1 100 continue') {
|
||||||
|
$this->response_header_continue = true;
|
||||||
|
} elseif (!$this->response_header_continue) {
|
||||||
|
$this->response_headers[] = $trimmed_header;
|
||||||
|
}
|
||||||
|
|
||||||
|
return strlen($header_line);
|
||||||
|
}
|
||||||
|
|
||||||
|
// protected methods
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the curl request based on the respectiv settings.
|
||||||
|
*
|
||||||
|
* @return int Returns the error code for the current curl request
|
||||||
|
*/
|
||||||
|
protected function exec()
|
||||||
|
{
|
||||||
|
$this->response_headers = array();
|
||||||
|
$this->response = curl_exec($this->curl);
|
||||||
|
$this->curl_error_code = curl_errno($this->curl);
|
||||||
|
$this->curl_error_message = curl_error($this->curl);
|
||||||
|
$this->curl_error = !($this->curl_error_code === 0);
|
||||||
|
$this->http_status_code = curl_getinfo($this->curl, CURLINFO_HTTP_CODE);
|
||||||
|
$this->http_error = in_array(floor($this->http_status_code / 100), array(4, 5));
|
||||||
|
$this->error = $this->curl_error || $this->http_error;
|
||||||
|
$this->error_code = $this->error ? ($this->curl_error ? $this->curl_error_code : $this->http_status_code) : 0;
|
||||||
|
$this->request_headers = preg_split('/\r\n/', curl_getinfo($this->curl, CURLINFO_HEADER_OUT), null, PREG_SPLIT_NO_EMPTY);
|
||||||
|
$this->http_error_message = $this->error ? (isset($this->response_headers['0']) ? $this->response_headers['0'] : '') : '';
|
||||||
|
$this->error_message = $this->curl_error ? $this->curl_error_message : $this->http_error_message;
|
||||||
|
|
||||||
|
return $this->error_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array|object|string $data
|
||||||
|
*/
|
||||||
|
protected function preparePayload($data)
|
||||||
|
{
|
||||||
|
$this->setOpt(CURLOPT_POST, true);
|
||||||
|
|
||||||
|
if (is_array($data) || is_object($data)) {
|
||||||
|
$skip = false;
|
||||||
|
foreach ($data as $key => $value) {
|
||||||
|
// If a value is an instance of CurlFile skip the http_build_query
|
||||||
|
// see issue https://github.com/php-mod/curl/issues/46
|
||||||
|
// suggestion from: https://stackoverflow.com/a/36603038/4611030
|
||||||
|
if ($value instanceof \CurlFile) {
|
||||||
|
$skip = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$skip) {
|
||||||
|
$data = http_build_query($data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->setOpt(CURLOPT_POSTFIELDS, $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set auth options for the current request.
|
||||||
|
*
|
||||||
|
* Available auth types are:
|
||||||
|
*
|
||||||
|
* + self::AUTH_BASIC
|
||||||
|
* + self::AUTH_DIGEST
|
||||||
|
* + self::AUTH_GSSNEGOTIATE
|
||||||
|
* + self::AUTH_NTLM
|
||||||
|
* + self::AUTH_ANY
|
||||||
|
* + self::AUTH_ANYSAFE
|
||||||
|
*
|
||||||
|
* @param int $httpauth The type of authentication
|
||||||
|
*/
|
||||||
|
protected function setHttpAuth($httpauth)
|
||||||
|
{
|
||||||
|
$this->setOpt(CURLOPT_HTTPAUTH, $httpauth);
|
||||||
|
}
|
||||||
|
|
||||||
|
// public methods
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated calling exec() directly is discouraged
|
||||||
|
*/
|
||||||
|
public function _exec()
|
||||||
|
{
|
||||||
|
return $this->exec();
|
||||||
|
}
|
||||||
|
|
||||||
|
// functions
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Make a get request with optional data.
|
||||||
|
*
|
||||||
|
* The get request has no body data, the data will be correctly added to the $url with the http_build_query() method.
|
||||||
|
*
|
||||||
|
* @param string $url The url to make the get request for
|
||||||
|
* @param array $data Optional arguments who are part of the url
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function get($url, $data = array())
|
||||||
|
{
|
||||||
|
if (count($data) > 0) {
|
||||||
|
$this->setOpt(CURLOPT_URL, $url.'?'.http_build_query($data));
|
||||||
|
} else {
|
||||||
|
$this->setOpt(CURLOPT_URL, $url);
|
||||||
|
}
|
||||||
|
$this->setOpt(CURLOPT_HTTPGET, true);
|
||||||
|
$this->exec();
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Make a post request with optional post data.
|
||||||
|
*
|
||||||
|
* @param string $url The url to make the post request
|
||||||
|
* @param array $data Post data to pass to the url
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function post($url, $data = array())
|
||||||
|
{
|
||||||
|
$this->setOpt(CURLOPT_URL, $url);
|
||||||
|
$this->preparePayload($data);
|
||||||
|
$this->exec();
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Make a put request with optional data.
|
||||||
|
*
|
||||||
|
* The put request data can be either sent via payload or as get paramters of the string.
|
||||||
|
*
|
||||||
|
* @param string $url The url to make the put request
|
||||||
|
* @param array $data Optional data to pass to the $url
|
||||||
|
* @param bool $payload Whether the data should be transmitted trough payload or as get parameters of the string
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function put($url, $data = array(), $payload = false)
|
||||||
|
{
|
||||||
|
if (! empty($data)) {
|
||||||
|
if ($payload === false) {
|
||||||
|
$url .= '?'.http_build_query($data);
|
||||||
|
} else {
|
||||||
|
$this->preparePayload($data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->setOpt(CURLOPT_URL, $url);
|
||||||
|
$this->setOpt(CURLOPT_CUSTOMREQUEST, 'PUT');
|
||||||
|
$this->exec();
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Make a patch request with optional data.
|
||||||
|
*
|
||||||
|
* The patch request data can be either sent via payload or as get paramters of the string.
|
||||||
|
*
|
||||||
|
* @param string $url The url to make the patch request
|
||||||
|
* @param array $data Optional data to pass to the $url
|
||||||
|
* @param bool $payload Whether the data should be transmitted trough payload or as get parameters of the string
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function patch($url, $data = array(), $payload = false)
|
||||||
|
{
|
||||||
|
if (! empty($data)) {
|
||||||
|
if ($payload === false) {
|
||||||
|
$url .= '?'.http_build_query($data);
|
||||||
|
} else {
|
||||||
|
$this->preparePayload($data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->setOpt(CURLOPT_URL, $url);
|
||||||
|
$this->setOpt(CURLOPT_CUSTOMREQUEST, 'PATCH');
|
||||||
|
$this->exec();
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Make a delete request with optional data.
|
||||||
|
*
|
||||||
|
* @param string $url The url to make the delete request
|
||||||
|
* @param array $data Optional data to pass to the $url
|
||||||
|
* @param bool $payload Whether the data should be transmitted trough payload or as get parameters of the string
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function delete($url, $data = array(), $payload = false)
|
||||||
|
{
|
||||||
|
if (! empty($data)) {
|
||||||
|
if ($payload === false) {
|
||||||
|
$url .= '?'.http_build_query($data);
|
||||||
|
} else {
|
||||||
|
$this->preparePayload($data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->setOpt(CURLOPT_URL, $url);
|
||||||
|
$this->setOpt(CURLOPT_CUSTOMREQUEST, 'DELETE');
|
||||||
|
$this->exec();
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
// setters
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pass basic auth data.
|
||||||
|
*
|
||||||
|
* If the the rquested url is secured by an httaccess basic auth mechanism you can use this method to provided the auth data.
|
||||||
|
*
|
||||||
|
* ```php
|
||||||
|
* $curl = new Curl();
|
||||||
|
* $curl->setBasicAuthentication('john', 'doe');
|
||||||
|
* $curl->get('http://example.com/secure.php');
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param string $username The username for the authentification
|
||||||
|
* @param string $password The password for the given username for the authentification
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function setBasicAuthentication($username, $password)
|
||||||
|
{
|
||||||
|
$this->setHttpAuth(self::AUTH_BASIC);
|
||||||
|
$this->setOpt(CURLOPT_USERPWD, $username.':'.$password);
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provide optional header informations.
|
||||||
|
*
|
||||||
|
* In order to pass optional headers by key value pairing:
|
||||||
|
*
|
||||||
|
* ```php
|
||||||
|
* $curl = new Curl();
|
||||||
|
* $curl->setHeader('X-Requested-With', 'XMLHttpRequest');
|
||||||
|
* $curl->get('http://example.com/request.php');
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param string $key The header key
|
||||||
|
* @param string $value The value for the given header key
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function setHeader($key, $value)
|
||||||
|
{
|
||||||
|
$this->_headers[$key] = $key.': '.$value;
|
||||||
|
$this->setOpt(CURLOPT_HTTPHEADER, array_values($this->_headers));
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provide a User Agent.
|
||||||
|
*
|
||||||
|
* In order to provide you cusomtized user agent name you can use this method.
|
||||||
|
*
|
||||||
|
* ```php
|
||||||
|
* $curl = new Curl();
|
||||||
|
* $curl->setUserAgent('My John Doe Agent 1.0');
|
||||||
|
* $curl->get('http://example.com/request.php');
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param string $useragent The name of the user agent to set for the current request
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function setUserAgent($useragent)
|
||||||
|
{
|
||||||
|
$this->setOpt(CURLOPT_USERAGENT, $useragent);
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Call setReferer() instead
|
||||||
|
*/
|
||||||
|
public function setReferrer($referrer)
|
||||||
|
{
|
||||||
|
$this->setReferer($referrer);
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the HTTP referer header.
|
||||||
|
*
|
||||||
|
* The $referer informations can help identify the requested client where the requested was made.
|
||||||
|
*
|
||||||
|
* @param string $referer An url to pass and will be set as referer header
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function setReferer($referer)
|
||||||
|
{
|
||||||
|
$this->setOpt(CURLOPT_REFERER, $referer);
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set contents of HTTP Cookie header.
|
||||||
|
*
|
||||||
|
* @param string $key The name of the cookie
|
||||||
|
* @param string $value The value for the provided cookie name
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function setCookie($key, $value)
|
||||||
|
{
|
||||||
|
$this->_cookies[$key] = $value;
|
||||||
|
$this->setOpt(CURLOPT_COOKIE, http_build_query($this->_cookies, '', '; '));
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set customized curl options.
|
||||||
|
*
|
||||||
|
* To see a full list of options: http://php.net/curl_setopt
|
||||||
|
*
|
||||||
|
* @see http://php.net/curl_setopt
|
||||||
|
*
|
||||||
|
* @param int $option The curl option constante e.g. `CURLOPT_AUTOREFERER`, `CURLOPT_COOKIESESSION`
|
||||||
|
* @param mixed $value The value to pass for the given $option
|
||||||
|
*/
|
||||||
|
public function setOpt($option, $value)
|
||||||
|
{
|
||||||
|
return curl_setopt($this->curl, $option, $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get customized curl options.
|
||||||
|
*
|
||||||
|
* To see a full list of options: http://php.net/curl_getinfo
|
||||||
|
*
|
||||||
|
* @see http://php.net/curl_getinfo
|
||||||
|
*
|
||||||
|
* @param int $option The curl option constante e.g. `CURLOPT_AUTOREFERER`, `CURLOPT_COOKIESESSION`
|
||||||
|
* @param mixed $value The value to check for the given $option
|
||||||
|
*/
|
||||||
|
public function getOpt($option)
|
||||||
|
{
|
||||||
|
return curl_getinfo($this->curl, $option);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the endpoint set for curl
|
||||||
|
*
|
||||||
|
* @see http://php.net/curl_getinfo
|
||||||
|
*
|
||||||
|
* @return string of endpoint
|
||||||
|
*/
|
||||||
|
public function getEndpoint()
|
||||||
|
{
|
||||||
|
return $this->getOpt(CURLINFO_EFFECTIVE_URL);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable verbositiy.
|
||||||
|
*
|
||||||
|
* @todo As to keep naming convention it should be renamed to `setVerbose()`
|
||||||
|
*
|
||||||
|
* @param string $on
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function verbose($on = true)
|
||||||
|
{
|
||||||
|
$this->setOpt(CURLOPT_VERBOSE, $on);
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reset all curl options.
|
||||||
|
*
|
||||||
|
* In order to make multiple requests with the same curl object all settings requires to be reset.
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function reset()
|
||||||
|
{
|
||||||
|
$this->close();
|
||||||
|
$this->_cookies = array();
|
||||||
|
$this->_headers = array();
|
||||||
|
$this->error = false;
|
||||||
|
$this->error_code = 0;
|
||||||
|
$this->error_message = null;
|
||||||
|
$this->curl_error = false;
|
||||||
|
$this->curl_error_code = 0;
|
||||||
|
$this->curl_error_message = null;
|
||||||
|
$this->http_error = false;
|
||||||
|
$this->http_status_code = 0;
|
||||||
|
$this->http_error_message = null;
|
||||||
|
$this->request_headers = null;
|
||||||
|
$this->response_headers = array();
|
||||||
|
$this->response = null;
|
||||||
|
$this->init();
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Closing the current open curl resource.
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function close()
|
||||||
|
{
|
||||||
|
if (is_resource($this->curl)) {
|
||||||
|
curl_close($this->curl);
|
||||||
|
}
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Close the connection when the Curl object will be destroyed.
|
||||||
|
*/
|
||||||
|
public function __destruct()
|
||||||
|
{
|
||||||
|
$this->close();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Was an 'info' header returned.
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isInfo()
|
||||||
|
{
|
||||||
|
return $this->http_status_code >= 100 && $this->http_status_code < 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Was an 'OK' response returned.
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isSuccess()
|
||||||
|
{
|
||||||
|
return $this->http_status_code >= 200 && $this->http_status_code < 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Was a 'redirect' returned.
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isRedirect()
|
||||||
|
{
|
||||||
|
return $this->http_status_code >= 300 && $this->http_status_code < 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Was an 'error' returned (client error or server error).
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isError()
|
||||||
|
{
|
||||||
|
return $this->http_status_code >= 400 && $this->http_status_code < 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Was a 'client error' returned.
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isClientError()
|
||||||
|
{
|
||||||
|
return $this->http_status_code >= 400 && $this->http_status_code < 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Was a 'server error' returned.
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isServerError()
|
||||||
|
{
|
||||||
|
return $this->http_status_code >= 500 && $this->http_status_code < 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a specific response header key or all values from the response headers array.
|
||||||
|
*
|
||||||
|
* Usage example:
|
||||||
|
*
|
||||||
|
* ```php
|
||||||
|
* $curl = (new Curl())->get('http://example.com');
|
||||||
|
*
|
||||||
|
* echo $curl->getResponseHeaders('Content-Type');
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* Or in order to dump all keys with the given values use:
|
||||||
|
*
|
||||||
|
* ```php
|
||||||
|
* $curl = (new Curl())->get('http://example.com');
|
||||||
|
*
|
||||||
|
* var_dump($curl->getResponseHeaders());
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param string $headerKey Optional key to get from the array.
|
||||||
|
* @return bool|string
|
||||||
|
* @since 1.9
|
||||||
|
*/
|
||||||
|
public function getResponseHeaders($headerKey = null)
|
||||||
|
{
|
||||||
|
$headers = array();
|
||||||
|
$headerKey = strtolower($headerKey);
|
||||||
|
|
||||||
|
foreach ($this->response_headers as $header) {
|
||||||
|
$parts = explode(":", $header, 2);
|
||||||
|
|
||||||
|
$key = isset($parts[0]) ? $parts[0] : null;
|
||||||
|
$value = isset($parts[1]) ? $parts[1] : null;
|
||||||
|
|
||||||
|
$headers[trim(strtolower($key))] = trim($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($headerKey) {
|
||||||
|
return isset($headers[$headerKey]) ? $headers[$headerKey] : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $headers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getResponse()
|
||||||
|
{
|
||||||
|
return $this->response;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getErrorCode()
|
||||||
|
{
|
||||||
|
return $this->curl_error_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getErrorMessage()
|
||||||
|
{
|
||||||
|
return $this->curl_error_message;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getHttpStatus()
|
||||||
|
{
|
||||||
|
return $this->http_status_code;
|
||||||
|
}
|
||||||
|
}
|
277
vendor/curl/curl/tests/CurlTest.php
vendored
Normal file
277
vendor/curl/curl/tests/CurlTest.php
vendored
Normal file
@ -0,0 +1,277 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Curl;
|
||||||
|
|
||||||
|
class CurlTest extends \PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
|
||||||
|
const TEST_URL = 'http://server_test';
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @var Curl
|
||||||
|
*/
|
||||||
|
protected $curl;
|
||||||
|
|
||||||
|
function setUp() {
|
||||||
|
$this->curl = new Curl();
|
||||||
|
$this->curl->setOpt(CURLOPT_SSL_VERIFYPEER, FALSE);
|
||||||
|
$this->curl->setOpt(CURLOPT_SSL_VERIFYHOST, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
function server($request_method, $data='') {
|
||||||
|
$request_method = strtolower($request_method);
|
||||||
|
$this->curl->$request_method(self::TEST_URL . '/server.php', $data);
|
||||||
|
return $this->curl->response;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testExtensionLoaded() {
|
||||||
|
|
||||||
|
$this->assertTrue(extension_loaded('curl'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testUserAgent() {
|
||||||
|
|
||||||
|
$this->curl->setUserAgent(Curl::USER_AGENT);
|
||||||
|
$this->assertEquals(Curl::USER_AGENT, $this->server('GET', array(
|
||||||
|
'test' => 'server',
|
||||||
|
'key' => 'HTTP_USER_AGENT',
|
||||||
|
)));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGet() {
|
||||||
|
$this->assertTrue($this->server('GET', array(
|
||||||
|
'test' => 'server',
|
||||||
|
'key' => 'REQUEST_METHOD',
|
||||||
|
)) === 'GET');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPostRequestMethod() {
|
||||||
|
$this->assertTrue($this->server('POST', array(
|
||||||
|
'test' => 'server',
|
||||||
|
'key' => 'REQUEST_METHOD',
|
||||||
|
)) === 'POST');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPostData() {
|
||||||
|
$this->assertTrue($this->server('POST', array(
|
||||||
|
'test' => 'post',
|
||||||
|
'key' => 'test',
|
||||||
|
)) === 'post');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPostMultidimensionalData() {
|
||||||
|
|
||||||
|
$data = array(
|
||||||
|
'key' => 'file',
|
||||||
|
'file' => array(
|
||||||
|
'wibble',
|
||||||
|
'wubble',
|
||||||
|
'wobble',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->curl->post(self::TEST_URL . '/post_multidimensional.php', $data);
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
'key=file&file%5B0%5D=wibble&file%5B1%5D=wubble&file%5B2%5D=wobble',
|
||||||
|
$this->curl->response);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPostFilePathUpload()
|
||||||
|
{
|
||||||
|
|
||||||
|
$file_path = $this->get_png();
|
||||||
|
|
||||||
|
$data = array(
|
||||||
|
'key' => 'image',
|
||||||
|
'image' => '@' . $file_path,
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->curl->setOpt(CURLOPT_RETURNTRANSFER, true);
|
||||||
|
|
||||||
|
$this->curl->post(self::TEST_URL . '/post_file_path_upload.php', $data);
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
array(
|
||||||
|
'request_method' => 'POST',
|
||||||
|
'key' => 'image',
|
||||||
|
'mime_content_type' => 'ERROR', // Temp change the image response, but assuming this is not fixing the issue indeed.
|
||||||
|
//'mime_content_type' => 'image/png'
|
||||||
|
),
|
||||||
|
json_decode($this->curl->response, true));
|
||||||
|
|
||||||
|
unlink($file_path);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPutRequestMethod() {
|
||||||
|
$this->assertTrue($this->server('PUT', array(
|
||||||
|
'test' => 'server',
|
||||||
|
'key' => 'REQUEST_METHOD',
|
||||||
|
)) === 'PUT');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPutData() {
|
||||||
|
$this->assertTrue($this->server('PUT', array(
|
||||||
|
'test' => 'put',
|
||||||
|
'key' => 'test',
|
||||||
|
)) === 'put');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPutFileHandle() {
|
||||||
|
$png = $this->create_png();
|
||||||
|
$tmp_file = $this->create_tmp_file($png);
|
||||||
|
|
||||||
|
$this->curl->setOpt(CURLOPT_PUT, TRUE);
|
||||||
|
$this->curl->setOpt(CURLOPT_INFILE, $tmp_file);
|
||||||
|
$this->curl->setOpt(CURLOPT_INFILESIZE, strlen($png));
|
||||||
|
$this->curl->put(self::TEST_URL . '/server.php', array(
|
||||||
|
'test' => 'put_file_handle',
|
||||||
|
));
|
||||||
|
|
||||||
|
fclose($tmp_file);
|
||||||
|
|
||||||
|
$this->assertTrue($this->curl->response === 'image/png');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDelete() {
|
||||||
|
$this->assertTrue($this->server('DELETE', array(
|
||||||
|
'test' => 'server',
|
||||||
|
'key' => 'REQUEST_METHOD',
|
||||||
|
)) === 'DELETE');
|
||||||
|
|
||||||
|
$this->assertTrue($this->server('DELETE', array(
|
||||||
|
'test' => 'delete',
|
||||||
|
'key' => 'test',
|
||||||
|
)) === 'delete');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testBasicHttpAuth() {
|
||||||
|
|
||||||
|
$data = array();
|
||||||
|
|
||||||
|
$this->curl->get(self::TEST_URL . '/http_basic_auth.php', $data);
|
||||||
|
|
||||||
|
$this->assertEquals('canceled', $this->curl->response);
|
||||||
|
|
||||||
|
$username = 'myusername';
|
||||||
|
$password = 'mypassword';
|
||||||
|
|
||||||
|
$this->curl->setBasicAuthentication($username, $password);
|
||||||
|
|
||||||
|
$this->curl->get(self::TEST_URL . '/http_basic_auth.php', $data);
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
'{"username":"myusername","password":"mypassword"}',
|
||||||
|
$this->curl->response);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testReferrer() {
|
||||||
|
$this->curl->setReferer('myreferrer');
|
||||||
|
$this->assertTrue($this->server('GET', array(
|
||||||
|
'test' => 'server',
|
||||||
|
'key' => 'HTTP_REFERER',
|
||||||
|
)) === 'myreferrer');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDeprecatedReferrer() {
|
||||||
|
$this->curl->setReferrer('myreferrer');
|
||||||
|
$this->assertTrue($this->server('GET', array(
|
||||||
|
'test' => 'server',
|
||||||
|
'key' => 'HTTP_REFERER',
|
||||||
|
)) === 'myreferrer');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCookies() {
|
||||||
|
$this->curl->setCookie('mycookie', 'yum');
|
||||||
|
$this->assertTrue($this->server('GET', array(
|
||||||
|
'test' => 'cookie',
|
||||||
|
'key' => 'mycookie',
|
||||||
|
)) === 'yum');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testError() {
|
||||||
|
$this->curl->setOpt(CURLOPT_CONNECTTIMEOUT_MS, 2000);
|
||||||
|
$this->curl->get('http://1.2.3.4/');
|
||||||
|
$this->assertTrue($this->curl->error === TRUE);
|
||||||
|
$this->assertTrue($this->curl->curl_error === TRUE);
|
||||||
|
$this->assertTrue($this->curl->curl_error_code === CURLE_OPERATION_TIMEOUTED);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testHeaders() {
|
||||||
|
$this->curl->setHeader('Content-Type', 'application/json');
|
||||||
|
$this->curl->setHeader('X-Requested-With', 'XMLHttpRequest');
|
||||||
|
$this->curl->setHeader('Accept', 'application/json');
|
||||||
|
$this->assertTrue($this->server('GET', array(
|
||||||
|
'test' => 'server',
|
||||||
|
'key' => 'CONTENT_TYPE',
|
||||||
|
)) === 'application/json');
|
||||||
|
$this->assertTrue($this->server('GET', array(
|
||||||
|
'test' => 'server',
|
||||||
|
'key' => 'HTTP_X_REQUESTED_WITH',
|
||||||
|
)) === 'XMLHttpRequest');
|
||||||
|
$this->assertTrue($this->server('GET', array(
|
||||||
|
'test' => 'server',
|
||||||
|
'key' => 'HTTP_ACCEPT',
|
||||||
|
)) === 'application/json');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testHeadersWithContinue() {
|
||||||
|
$headers = file(dirname(__FILE__) . '/data/response_headers_with_continue.txt');
|
||||||
|
|
||||||
|
$this->curl->response_headers = array();
|
||||||
|
foreach($headers as $header_line) {
|
||||||
|
$this->curl->addResponseHeaderLine(null, $header_line);
|
||||||
|
}
|
||||||
|
|
||||||
|
$expected_headers = array_values(array_filter(array_map(function($l) { return trim($l, "\r\n"); }, array_slice($headers, 1))));
|
||||||
|
|
||||||
|
$this->assertEquals($expected_headers, $this->curl->response_headers);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testReset()
|
||||||
|
{
|
||||||
|
$curl = $this->getMockBuilder(get_class($this->curl))->getMock();
|
||||||
|
$curl->expects($this->once())->method('reset')->with();
|
||||||
|
// lets make small request
|
||||||
|
$curl->setOpt(CURLOPT_CONNECTTIMEOUT_MS, 2000);
|
||||||
|
$curl->get('http://1.2.3.4/');
|
||||||
|
$curl->reset();
|
||||||
|
$this->assertFalse($curl->error);
|
||||||
|
$this->assertSame(0, $curl->error_code);
|
||||||
|
$this->assertNull($curl->error_message);
|
||||||
|
$this->assertFalse($curl->curl_error);
|
||||||
|
$this->assertSame(0, $curl->curl_error_code);
|
||||||
|
$this->assertNull($curl->curl_error_message);
|
||||||
|
$this->assertFalse($curl->http_error);
|
||||||
|
$this->assertSame(0, $curl->http_status_code);
|
||||||
|
$this->assertNull($curl->http_error_message);
|
||||||
|
$this->assertNull($curl->request_headers);
|
||||||
|
$this->assertEmpty($curl->response_headers);
|
||||||
|
$this->assertNull($curl->response);
|
||||||
|
}
|
||||||
|
|
||||||
|
function create_png() {
|
||||||
|
// PNG image data, 1 x 1, 1-bit colormap, non-interlaced
|
||||||
|
ob_start();
|
||||||
|
imagepng(imagecreatefromstring(base64_decode('R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7')));
|
||||||
|
$raw_image = ob_get_contents();
|
||||||
|
ob_end_clean();
|
||||||
|
return $raw_image;
|
||||||
|
}
|
||||||
|
|
||||||
|
function create_tmp_file($data) {
|
||||||
|
$tmp_file = tmpfile();
|
||||||
|
fwrite($tmp_file, $data);
|
||||||
|
rewind($tmp_file);
|
||||||
|
return $tmp_file;
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_png() {
|
||||||
|
$tmp_filename = tempnam('/tmp', 'php-curl-class.');
|
||||||
|
file_put_contents($tmp_filename, $this->create_png());
|
||||||
|
return $tmp_filename;
|
||||||
|
}
|
||||||
|
}
|
13
vendor/curl/curl/tests/data/response_headers_with_continue.txt
vendored
Normal file
13
vendor/curl/curl/tests/data/response_headers_with_continue.txt
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
HTTP/1.1 100 Continue
|
||||||
|
|
||||||
|
HTTP/1.1 200 OK
|
||||||
|
Server: nginx/1.1.19
|
||||||
|
Date: Fri, 11 Aug 2017 13:22:00 GMT
|
||||||
|
Content-Type: image/jpeg
|
||||||
|
Content-Length: 62574
|
||||||
|
Connection: close
|
||||||
|
Cache-Control: max-age=7257600
|
||||||
|
Expires: Fri, 03 Nov 2017 13:22:00 GMT
|
||||||
|
Strict-Transport-Security: max-age=31536000; includeSubDomains
|
||||||
|
X-Frame-Option: DENY
|
||||||
|
|
BIN
vendor/curl/curl/tests/data/test.png
vendored
Normal file
BIN
vendor/curl/curl/tests/data/test.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.8 KiB |
9
vendor/curl/curl/tests/server/Dockerfile
vendored
Normal file
9
vendor/curl/curl/tests/server/Dockerfile
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
FROM alpine:3.7
|
||||||
|
|
||||||
|
RUN apk add --no-cache php5-cli php5-curl php5-gd php5-phar php5-json php5-openssl php5-dom
|
||||||
|
|
||||||
|
COPY php-curl-test php-curl-test
|
||||||
|
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
CMD ["php5", "-S", "0.0.0.0:80", "-t", "php-curl-test"]
|
37
vendor/curl/curl/tests/server/php-curl-test/deploy.php
vendored
Normal file
37
vendor/curl/curl/tests/server/php-curl-test/deploy.php
vendored
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// The commands
|
||||||
|
$commands = array(
|
||||||
|
'cd ../../.. && git pull',
|
||||||
|
);
|
||||||
|
|
||||||
|
// Run the commands for output
|
||||||
|
$output = '';
|
||||||
|
foreach($commands AS $command){
|
||||||
|
// Run it
|
||||||
|
$tmp = shell_exec($command);
|
||||||
|
// Output
|
||||||
|
$output .= "<span style=\"color: #6BE234;\">\$</span> <span style=\"color: #729FCF;\">{$command}\n</span>";
|
||||||
|
$output .= htmlentities(trim($tmp)) . "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make it pretty for manual user access (and why not?)
|
||||||
|
?>
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>GIT DEPLOYMENT SCRIPT</title>
|
||||||
|
</head>
|
||||||
|
<body style="background-color: #000000; color: #FFFFFF; font-weight: bold; padding: 0 10px;">
|
||||||
|
<pre>
|
||||||
|
. ____ . ____________________________
|
||||||
|
|/ \| | |
|
||||||
|
[| <span style="color: #FF0000;">♥ ♥</span> |] | Git Deployment Script v0.1 |
|
||||||
|
|___==___| / © oodavid 2012 |
|
||||||
|
|____________________________|
|
||||||
|
|
||||||
|
<?php echo $output; ?>
|
||||||
|
</pre>
|
||||||
|
</body>
|
||||||
|
</html>
|
14
vendor/curl/curl/tests/server/php-curl-test/http_basic_auth.php
vendored
Normal file
14
vendor/curl/curl/tests/server/php-curl-test/http_basic_auth.php
vendored
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
if (!isset($_SERVER['PHP_AUTH_USER'])) {
|
||||||
|
header('WWW-Authenticate: Basic realm="My Realm"');
|
||||||
|
header('HTTP/1.0 401 Unauthorized');
|
||||||
|
echo 'canceled';
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
echo json_encode(array(
|
||||||
|
'username' => $_SERVER['PHP_AUTH_USER'],
|
||||||
|
'password' => $_SERVER['PHP_AUTH_PW'],
|
||||||
|
));
|
21
vendor/curl/curl/tests/server/php-curl-test/post_file_path_upload.php
vendored
Normal file
21
vendor/curl/curl/tests/server/php-curl-test/post_file_path_upload.php
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
$request_method = isset($_SERVER['REQUEST_METHOD']) ?
|
||||||
|
$_SERVER['REQUEST_METHOD'] : '';
|
||||||
|
|
||||||
|
$data_values = $request_method === 'POST' ? $_POST : $_GET;
|
||||||
|
|
||||||
|
$key = isset($data_values['key']) ? $data_values['key'] : '';
|
||||||
|
|
||||||
|
$response = array();
|
||||||
|
|
||||||
|
$response['request_method'] = $request_method;
|
||||||
|
$response['key'] = $key;
|
||||||
|
|
||||||
|
if(isset($_FILES[$key])) {
|
||||||
|
$response['mime_content_type'] = mime_content_type($_FILES[$key]['tmp_name']);
|
||||||
|
} else {
|
||||||
|
$response['mime_content_type'] = 'ERROR';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo json_encode($response);
|
4
vendor/curl/curl/tests/server/php-curl-test/post_multidimensional.php
vendored
Normal file
4
vendor/curl/curl/tests/server/php-curl-test/post_multidimensional.php
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
$http_raw_post_data = file_get_contents('php://input');
|
||||||
|
echo $http_raw_post_data;
|
31
vendor/curl/curl/tests/server/php-curl-test/server.php
vendored
Normal file
31
vendor/curl/curl/tests/server/php-curl-test/server.php
vendored
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
$request_method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : '';
|
||||||
|
$data_values = $request_method === 'POST' ? $_POST : $_GET;
|
||||||
|
$test = isset($data_values['test']) ? $data_values['test'] : '';
|
||||||
|
$key = isset($data_values['key']) ? $data_values['key'] : '';
|
||||||
|
|
||||||
|
if ($test === 'put_file_handle') {
|
||||||
|
$tmp_filename = tempnam('/tmp', 'php-curl-class.');
|
||||||
|
file_put_contents($tmp_filename, file_get_contents('php://input'));
|
||||||
|
echo mime_content_type($tmp_filename);
|
||||||
|
unlink($tmp_filename);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
header('Content-Type: text/plain');
|
||||||
|
|
||||||
|
$data_mapping = array(
|
||||||
|
'cookie' => '_COOKIE',
|
||||||
|
'delete' => '_GET',
|
||||||
|
'post' => '_POST',
|
||||||
|
'put' => '_GET',
|
||||||
|
'server' => '_SERVER',
|
||||||
|
);
|
||||||
|
|
||||||
|
if(isset($data_mapping[$test])) {
|
||||||
|
$data = ${$data_mapping[$test]};
|
||||||
|
$value = isset($data[$key]) ? $data[$key] : '';
|
||||||
|
echo $value;
|
||||||
|
} else {
|
||||||
|
echo "Error.";
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user