mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2025-05-21 22:39:16 +08:00
ComposerUpdate
This commit is contained in:
parent
9f21dbd35d
commit
0be81159cc
7
vendor/autoload.php
vendored
7
vendor/autoload.php
vendored
@ -1,7 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload.php @generated by Composer
|
|
||||||
|
|
||||||
require_once __DIR__ . '/composer/autoload_real.php';
|
|
||||||
|
|
||||||
return ComposerAutoloaderInitbaef8a191be4ee8c4809e47d0e71601b::getLoader();
|
|
445
vendor/composer/ClassLoader.php
vendored
445
vendor/composer/ClassLoader.php
vendored
@ -1,445 +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;
|
|
||||||
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
21
vendor/composer/LICENSE
vendored
@ -1,21 +0,0 @@
|
|||||||
|
|
||||||
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.
|
|
||||||
|
|
375
vendor/composer/autoload_classmap.php
vendored
375
vendor/composer/autoload_classmap.php
vendored
@ -1,375 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_classmap.php @generated by Composer
|
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
|
||||||
$baseDir = dirname($vendorDir);
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'Ip2Region' => $vendorDir . '/zoujingli/ip2region/Ip2Region.php',
|
|
||||||
'League\\Flysystem\\AdapterInterface' => $vendorDir . '/league/flysystem/src/AdapterInterface.php',
|
|
||||||
'League\\Flysystem\\Adapter\\AbstractAdapter' => $vendorDir . '/league/flysystem/src/Adapter/AbstractAdapter.php',
|
|
||||||
'League\\Flysystem\\Adapter\\AbstractFtpAdapter' => $vendorDir . '/league/flysystem/src/Adapter/AbstractFtpAdapter.php',
|
|
||||||
'League\\Flysystem\\Adapter\\CanOverwriteFiles' => $vendorDir . '/league/flysystem/src/Adapter/CanOverwriteFiles.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Ftp' => $vendorDir . '/league/flysystem/src/Adapter/Ftp.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Ftpd' => $vendorDir . '/league/flysystem/src/Adapter/Ftpd.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Local' => $vendorDir . '/league/flysystem/src/Adapter/Local.php',
|
|
||||||
'League\\Flysystem\\Adapter\\NullAdapter' => $vendorDir . '/league/flysystem/src/Adapter/NullAdapter.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Polyfill\\NotSupportingVisibilityTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Polyfill\\StreamedCopyTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedCopyTrait.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Polyfill\\StreamedReadingTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Polyfill\\StreamedTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Polyfill\\StreamedWritingTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedWritingTrait.php',
|
|
||||||
'League\\Flysystem\\Adapter\\SynologyFtp' => $vendorDir . '/league/flysystem/src/Adapter/SynologyFtp.php',
|
|
||||||
'League\\Flysystem\\Cached\\CacheInterface' => $vendorDir . '/league/flysystem-cached-adapter/src/CacheInterface.php',
|
|
||||||
'League\\Flysystem\\Cached\\CachedAdapter' => $vendorDir . '/league/flysystem-cached-adapter/src/CachedAdapter.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\AbstractCache' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/AbstractCache.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\Adapter' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/Adapter.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\Memcached' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/Memcached.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\Memory' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/Memory.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\Noop' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/Noop.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\PhpRedis' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/PhpRedis.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\Predis' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/Predis.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\Psr6Cache' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/Psr6Cache.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\Stash' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/Stash.php',
|
|
||||||
'League\\Flysystem\\Config' => $vendorDir . '/league/flysystem/src/Config.php',
|
|
||||||
'League\\Flysystem\\ConfigAwareTrait' => $vendorDir . '/league/flysystem/src/ConfigAwareTrait.php',
|
|
||||||
'League\\Flysystem\\Directory' => $vendorDir . '/league/flysystem/src/Directory.php',
|
|
||||||
'League\\Flysystem\\Exception' => $vendorDir . '/league/flysystem/src/Exception.php',
|
|
||||||
'League\\Flysystem\\File' => $vendorDir . '/league/flysystem/src/File.php',
|
|
||||||
'League\\Flysystem\\FileExistsException' => $vendorDir . '/league/flysystem/src/FileExistsException.php',
|
|
||||||
'League\\Flysystem\\FileNotFoundException' => $vendorDir . '/league/flysystem/src/FileNotFoundException.php',
|
|
||||||
'League\\Flysystem\\Filesystem' => $vendorDir . '/league/flysystem/src/Filesystem.php',
|
|
||||||
'League\\Flysystem\\FilesystemInterface' => $vendorDir . '/league/flysystem/src/FilesystemInterface.php',
|
|
||||||
'League\\Flysystem\\FilesystemNotFoundException' => $vendorDir . '/league/flysystem/src/FilesystemNotFoundException.php',
|
|
||||||
'League\\Flysystem\\Handler' => $vendorDir . '/league/flysystem/src/Handler.php',
|
|
||||||
'League\\Flysystem\\MountManager' => $vendorDir . '/league/flysystem/src/MountManager.php',
|
|
||||||
'League\\Flysystem\\NotSupportedException' => $vendorDir . '/league/flysystem/src/NotSupportedException.php',
|
|
||||||
'League\\Flysystem\\PluginInterface' => $vendorDir . '/league/flysystem/src/PluginInterface.php',
|
|
||||||
'League\\Flysystem\\Plugin\\AbstractPlugin' => $vendorDir . '/league/flysystem/src/Plugin/AbstractPlugin.php',
|
|
||||||
'League\\Flysystem\\Plugin\\EmptyDir' => $vendorDir . '/league/flysystem/src/Plugin/EmptyDir.php',
|
|
||||||
'League\\Flysystem\\Plugin\\ForcedCopy' => $vendorDir . '/league/flysystem/src/Plugin/ForcedCopy.php',
|
|
||||||
'League\\Flysystem\\Plugin\\ForcedRename' => $vendorDir . '/league/flysystem/src/Plugin/ForcedRename.php',
|
|
||||||
'League\\Flysystem\\Plugin\\GetWithMetadata' => $vendorDir . '/league/flysystem/src/Plugin/GetWithMetadata.php',
|
|
||||||
'League\\Flysystem\\Plugin\\ListFiles' => $vendorDir . '/league/flysystem/src/Plugin/ListFiles.php',
|
|
||||||
'League\\Flysystem\\Plugin\\ListPaths' => $vendorDir . '/league/flysystem/src/Plugin/ListPaths.php',
|
|
||||||
'League\\Flysystem\\Plugin\\ListWith' => $vendorDir . '/league/flysystem/src/Plugin/ListWith.php',
|
|
||||||
'League\\Flysystem\\Plugin\\PluggableTrait' => $vendorDir . '/league/flysystem/src/Plugin/PluggableTrait.php',
|
|
||||||
'League\\Flysystem\\Plugin\\PluginNotFoundException' => $vendorDir . '/league/flysystem/src/Plugin/PluginNotFoundException.php',
|
|
||||||
'League\\Flysystem\\ReadInterface' => $vendorDir . '/league/flysystem/src/ReadInterface.php',
|
|
||||||
'League\\Flysystem\\RootViolationException' => $vendorDir . '/league/flysystem/src/RootViolationException.php',
|
|
||||||
'League\\Flysystem\\SafeStorage' => $vendorDir . '/league/flysystem/src/SafeStorage.php',
|
|
||||||
'League\\Flysystem\\UnreadableFileException' => $vendorDir . '/league/flysystem/src/UnreadableFileException.php',
|
|
||||||
'League\\Flysystem\\Util' => $vendorDir . '/league/flysystem/src/Util.php',
|
|
||||||
'League\\Flysystem\\Util\\ContentListingFormatter' => $vendorDir . '/league/flysystem/src/Util/ContentListingFormatter.php',
|
|
||||||
'League\\Flysystem\\Util\\MimeType' => $vendorDir . '/league/flysystem/src/Util/MimeType.php',
|
|
||||||
'League\\Flysystem\\Util\\StreamHasher' => $vendorDir . '/league/flysystem/src/Util/StreamHasher.php',
|
|
||||||
'Opis\\Closure\\Analyzer' => $vendorDir . '/opis/closure/src/Analyzer.php',
|
|
||||||
'Opis\\Closure\\ClosureContext' => $vendorDir . '/opis/closure/src/ClosureContext.php',
|
|
||||||
'Opis\\Closure\\ClosureScope' => $vendorDir . '/opis/closure/src/ClosureScope.php',
|
|
||||||
'Opis\\Closure\\ClosureStream' => $vendorDir . '/opis/closure/src/ClosureStream.php',
|
|
||||||
'Opis\\Closure\\ISecurityProvider' => $vendorDir . '/opis/closure/src/ISecurityProvider.php',
|
|
||||||
'Opis\\Closure\\ReflectionClosure' => $vendorDir . '/opis/closure/src/ReflectionClosure.php',
|
|
||||||
'Opis\\Closure\\SecurityException' => $vendorDir . '/opis/closure/src/SecurityException.php',
|
|
||||||
'Opis\\Closure\\SecurityProvider' => $vendorDir . '/opis/closure/src/SecurityProvider.php',
|
|
||||||
'Opis\\Closure\\SelfReference' => $vendorDir . '/opis/closure/src/SelfReference.php',
|
|
||||||
'Opis\\Closure\\SerializableClosure' => $vendorDir . '/opis/closure/src/SerializableClosure.php',
|
|
||||||
'Psr\\Cache\\CacheException' => $vendorDir . '/psr/cache/src/CacheException.php',
|
|
||||||
'Psr\\Cache\\CacheItemInterface' => $vendorDir . '/psr/cache/src/CacheItemInterface.php',
|
|
||||||
'Psr\\Cache\\CacheItemPoolInterface' => $vendorDir . '/psr/cache/src/CacheItemPoolInterface.php',
|
|
||||||
'Psr\\Cache\\InvalidArgumentException' => $vendorDir . '/psr/cache/src/InvalidArgumentException.php',
|
|
||||||
'Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php',
|
|
||||||
'Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php',
|
|
||||||
'Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php',
|
|
||||||
'Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/Psr/Log/AbstractLogger.php',
|
|
||||||
'Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/Psr/Log/InvalidArgumentException.php',
|
|
||||||
'Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/Psr/Log/LogLevel.php',
|
|
||||||
'Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareInterface.php',
|
|
||||||
'Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareTrait.php',
|
|
||||||
'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerInterface.php',
|
|
||||||
'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerTrait.php',
|
|
||||||
'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php',
|
|
||||||
'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
|
||||||
'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
|
||||||
'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php',
|
|
||||||
'Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php',
|
|
||||||
'Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php',
|
|
||||||
'Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php',
|
|
||||||
'app\\admin\\controller\\Auth' => $baseDir . '/app/admin/controller/Auth.php',
|
|
||||||
'app\\admin\\controller\\Config' => $baseDir . '/app/admin/controller/Config.php',
|
|
||||||
'app\\admin\\controller\\Index' => $baseDir . '/app/admin/controller/Index.php',
|
|
||||||
'app\\admin\\controller\\Login' => $baseDir . '/app/admin/controller/Login.php',
|
|
||||||
'app\\admin\\controller\\Menu' => $baseDir . '/app/admin/controller/Menu.php',
|
|
||||||
'app\\admin\\controller\\Oplog' => $baseDir . '/app/admin/controller/Oplog.php',
|
|
||||||
'app\\admin\\controller\\Queue' => $baseDir . '/app/admin/controller/Queue.php',
|
|
||||||
'app\\admin\\controller\\User' => $baseDir . '/app/admin/controller/User.php',
|
|
||||||
'app\\admin\\controller\\api\\Plugs' => $baseDir . '/app/admin/controller/api/Plugs.php',
|
|
||||||
'app\\admin\\controller\\api\\Update' => $baseDir . '/app/admin/controller/api/Update.php',
|
|
||||||
'app\\admin\\service\\AuthService' => $baseDir . '/app/admin/service/AuthService.php',
|
|
||||||
'app\\admin\\service\\MenuService' => $baseDir . '/app/admin/service/MenuService.php',
|
|
||||||
'app\\index\\controller\\Index' => $baseDir . '/app/index/controller/Index.php',
|
|
||||||
'think\\App' => $vendorDir . '/topthink/framework/src/think/App.php',
|
|
||||||
'think\\Cache' => $vendorDir . '/topthink/framework/src/think/Cache.php',
|
|
||||||
'think\\Collection' => $vendorDir . '/topthink/think-helper/src/Collection.php',
|
|
||||||
'think\\Config' => $vendorDir . '/topthink/framework/src/think/Config.php',
|
|
||||||
'think\\Console' => $vendorDir . '/topthink/framework/src/think/Console.php',
|
|
||||||
'think\\Container' => $vendorDir . '/topthink/framework/src/think/Container.php',
|
|
||||||
'think\\Cookie' => $vendorDir . '/topthink/framework/src/think/Cookie.php',
|
|
||||||
'think\\Db' => $vendorDir . '/topthink/framework/src/think/Db.php',
|
|
||||||
'think\\DbManager' => $vendorDir . '/topthink/think-orm/src/DbManager.php',
|
|
||||||
'think\\Env' => $vendorDir . '/topthink/framework/src/think/Env.php',
|
|
||||||
'think\\Event' => $vendorDir . '/topthink/framework/src/think/Event.php',
|
|
||||||
'think\\Exception' => $vendorDir . '/topthink/framework/src/think/Exception.php',
|
|
||||||
'think\\Facade' => $vendorDir . '/topthink/framework/src/think/Facade.php',
|
|
||||||
'think\\File' => $vendorDir . '/topthink/framework/src/think/File.php',
|
|
||||||
'think\\Filesystem' => $vendorDir . '/topthink/framework/src/think/Filesystem.php',
|
|
||||||
'think\\Http' => $vendorDir . '/topthink/framework/src/think/Http.php',
|
|
||||||
'think\\Lang' => $vendorDir . '/topthink/framework/src/think/Lang.php',
|
|
||||||
'think\\Log' => $vendorDir . '/topthink/framework/src/think/Log.php',
|
|
||||||
'think\\Manager' => $vendorDir . '/topthink/framework/src/think/Manager.php',
|
|
||||||
'think\\Middleware' => $vendorDir . '/topthink/framework/src/think/Middleware.php',
|
|
||||||
'think\\Model' => $vendorDir . '/topthink/think-orm/src/Model.php',
|
|
||||||
'think\\Paginator' => $vendorDir . '/topthink/think-orm/src/Paginator.php',
|
|
||||||
'think\\Pipeline' => $vendorDir . '/topthink/framework/src/think/Pipeline.php',
|
|
||||||
'think\\Request' => $vendorDir . '/topthink/framework/src/think/Request.php',
|
|
||||||
'think\\Response' => $vendorDir . '/topthink/framework/src/think/Response.php',
|
|
||||||
'think\\Route' => $vendorDir . '/topthink/framework/src/think/Route.php',
|
|
||||||
'think\\Service' => $vendorDir . '/topthink/framework/src/think/Service.php',
|
|
||||||
'think\\Session' => $vendorDir . '/topthink/framework/src/think/Session.php',
|
|
||||||
'think\\Template' => $vendorDir . '/topthink/think-template/src/Template.php',
|
|
||||||
'think\\Validate' => $vendorDir . '/topthink/framework/src/think/Validate.php',
|
|
||||||
'think\\View' => $vendorDir . '/topthink/framework/src/think/View.php',
|
|
||||||
'think\\admin\\Controller' => $vendorDir . '/zoujingli/think-library/src/Controller.php',
|
|
||||||
'think\\admin\\Queue' => $vendorDir . '/zoujingli/think-library/src/Queue.php',
|
|
||||||
'think\\admin\\Storage' => $vendorDir . '/zoujingli/think-library/src/Storage.php',
|
|
||||||
'think\\admin\\ThinkLibrary' => $vendorDir . '/zoujingli/think-library/src/ThinkLibrary.php',
|
|
||||||
'think\\admin\\extend\\CaptchaExtend' => $vendorDir . '/zoujingli/think-library/src/extend/CaptchaExtend.php',
|
|
||||||
'think\\admin\\extend\\CodeExtend' => $vendorDir . '/zoujingli/think-library/src/extend/CodeExtend.php',
|
|
||||||
'think\\admin\\extend\\CsvExtend' => $vendorDir . '/zoujingli/think-library/src/extend/CsvExtend.php',
|
|
||||||
'think\\admin\\extend\\DataExtend' => $vendorDir . '/zoujingli/think-library/src/extend/DataExtend.php',
|
|
||||||
'think\\admin\\extend\\ExpressExtend' => $vendorDir . '/zoujingli/think-library/src/extend/ExpressExtend.php',
|
|
||||||
'think\\admin\\extend\\HttpExtend' => $vendorDir . '/zoujingli/think-library/src/extend/HttpExtend.php',
|
|
||||||
'think\\admin\\extend\\NodeExtend' => $vendorDir . '/zoujingli/think-library/src/extend/NodeExtend.php',
|
|
||||||
'think\\admin\\extend\\ProcessExtend' => $vendorDir . '/zoujingli/think-library/src/extend/ProcessExtend.php',
|
|
||||||
'think\\admin\\extend\\TokenExtend' => $vendorDir . '/zoujingli/think-library/src/extend/TokenExtend.php',
|
|
||||||
'think\\admin\\helper\\DeleteHelper' => $vendorDir . '/zoujingli/think-library/src/helper/DeleteHelper.php',
|
|
||||||
'think\\admin\\helper\\FormHelper' => $vendorDir . '/zoujingli/think-library/src/helper/FormHelper.php',
|
|
||||||
'think\\admin\\helper\\Helper' => $vendorDir . '/zoujingli/think-library/src/helper/Helper.php',
|
|
||||||
'think\\admin\\helper\\PageHelper' => $vendorDir . '/zoujingli/think-library/src/helper/PageHelper.php',
|
|
||||||
'think\\admin\\helper\\QueryHelper' => $vendorDir . '/zoujingli/think-library/src/helper/QueryHelper.php',
|
|
||||||
'think\\admin\\helper\\SaveHelper' => $vendorDir . '/zoujingli/think-library/src/helper/SaveHelper.php',
|
|
||||||
'think\\admin\\helper\\TokenHelper' => $vendorDir . '/zoujingli/think-library/src/helper/TokenHelper.php',
|
|
||||||
'think\\admin\\plugs\\AdminPlugs' => $vendorDir . '/zoujingli/think-library/src/plugs/AdminPlugs.php',
|
|
||||||
'think\\admin\\plugs\\Plugs' => $vendorDir . '/zoujingli/think-library/src/plugs/Plugs.php',
|
|
||||||
'think\\admin\\queue\\ListenQueue' => $vendorDir . '/zoujingli/think-library/src/queue/ListenQueue.php',
|
|
||||||
'think\\admin\\queue\\QueryQueue' => $vendorDir . '/zoujingli/think-library/src/queue/QueryQueue.php',
|
|
||||||
'think\\admin\\queue\\StartQueue' => $vendorDir . '/zoujingli/think-library/src/queue/StartQueue.php',
|
|
||||||
'think\\admin\\queue\\StateQueue' => $vendorDir . '/zoujingli/think-library/src/queue/StateQueue.php',
|
|
||||||
'think\\admin\\queue\\StopQueue' => $vendorDir . '/zoujingli/think-library/src/queue/StopQueue.php',
|
|
||||||
'think\\admin\\queue\\WorkQueue' => $vendorDir . '/zoujingli/think-library/src/queue/WorkQueue.php',
|
|
||||||
'think\\admin\\storage\\LocalStorage' => $vendorDir . '/zoujingli/think-library/src/storage/LocalStorage.php',
|
|
||||||
'think\\admin\\storage\\QiniuStorage' => $vendorDir . '/zoujingli/think-library/src/storage/QiniuStorage.php',
|
|
||||||
'think\\app\\MultiApp' => $vendorDir . '/topthink/think-multi-app/src/MultiApp.php',
|
|
||||||
'think\\app\\Service' => $vendorDir . '/topthink/think-multi-app/src/Service.php',
|
|
||||||
'think\\app\\Url' => $vendorDir . '/topthink/think-multi-app/src/Url.php',
|
|
||||||
'think\\app\\command\\Build' => $vendorDir . '/topthink/think-multi-app/src/command/Build.php',
|
|
||||||
'think\\cache\\Driver' => $vendorDir . '/topthink/framework/src/think/cache/Driver.php',
|
|
||||||
'think\\cache\\TagSet' => $vendorDir . '/topthink/framework/src/think/cache/TagSet.php',
|
|
||||||
'think\\cache\\driver\\File' => $vendorDir . '/topthink/framework/src/think/cache/driver/File.php',
|
|
||||||
'think\\cache\\driver\\Memcache' => $vendorDir . '/topthink/framework/src/think/cache/driver/Memcache.php',
|
|
||||||
'think\\cache\\driver\\Memcached' => $vendorDir . '/topthink/framework/src/think/cache/driver/Memcached.php',
|
|
||||||
'think\\cache\\driver\\Redis' => $vendorDir . '/topthink/framework/src/think/cache/driver/Redis.php',
|
|
||||||
'think\\cache\\driver\\Wincache' => $vendorDir . '/topthink/framework/src/think/cache/driver/Wincache.php',
|
|
||||||
'think\\console\\Command' => $vendorDir . '/topthink/framework/src/think/console/Command.php',
|
|
||||||
'think\\console\\Input' => $vendorDir . '/topthink/framework/src/think/console/Input.php',
|
|
||||||
'think\\console\\Output' => $vendorDir . '/topthink/framework/src/think/console/Output.php',
|
|
||||||
'think\\console\\Table' => $vendorDir . '/topthink/framework/src/think/console/Table.php',
|
|
||||||
'think\\console\\command\\Clear' => $vendorDir . '/topthink/framework/src/think/console/command/Clear.php',
|
|
||||||
'think\\console\\command\\Help' => $vendorDir . '/topthink/framework/src/think/console/command/Help.php',
|
|
||||||
'think\\console\\command\\Lists' => $vendorDir . '/topthink/framework/src/think/console/command/Lists.php',
|
|
||||||
'think\\console\\command\\Make' => $vendorDir . '/topthink/framework/src/think/console/command/Make.php',
|
|
||||||
'think\\console\\command\\RouteList' => $vendorDir . '/topthink/framework/src/think/console/command/RouteList.php',
|
|
||||||
'think\\console\\command\\RunServer' => $vendorDir . '/topthink/framework/src/think/console/command/RunServer.php',
|
|
||||||
'think\\console\\command\\ServiceDiscover' => $vendorDir . '/topthink/framework/src/think/console/command/ServiceDiscover.php',
|
|
||||||
'think\\console\\command\\VendorPublish' => $vendorDir . '/topthink/framework/src/think/console/command/VendorPublish.php',
|
|
||||||
'think\\console\\command\\Version' => $vendorDir . '/topthink/framework/src/think/console/command/Version.php',
|
|
||||||
'think\\console\\command\\make\\Command' => $vendorDir . '/topthink/framework/src/think/console/command/make/Command.php',
|
|
||||||
'think\\console\\command\\make\\Controller' => $vendorDir . '/topthink/framework/src/think/console/command/make/Controller.php',
|
|
||||||
'think\\console\\command\\make\\Event' => $vendorDir . '/topthink/framework/src/think/console/command/make/Event.php',
|
|
||||||
'think\\console\\command\\make\\Listener' => $vendorDir . '/topthink/framework/src/think/console/command/make/Listener.php',
|
|
||||||
'think\\console\\command\\make\\Middleware' => $vendorDir . '/topthink/framework/src/think/console/command/make/Middleware.php',
|
|
||||||
'think\\console\\command\\make\\Model' => $vendorDir . '/topthink/framework/src/think/console/command/make/Model.php',
|
|
||||||
'think\\console\\command\\make\\Service' => $vendorDir . '/topthink/framework/src/think/console/command/make/Service.php',
|
|
||||||
'think\\console\\command\\make\\Subscribe' => $vendorDir . '/topthink/framework/src/think/console/command/make/Subscribe.php',
|
|
||||||
'think\\console\\command\\make\\Validate' => $vendorDir . '/topthink/framework/src/think/console/command/make/Validate.php',
|
|
||||||
'think\\console\\command\\optimize\\Route' => $vendorDir . '/topthink/framework/src/think/console/command/optimize/Route.php',
|
|
||||||
'think\\console\\command\\optimize\\Schema' => $vendorDir . '/topthink/framework/src/think/console/command/optimize/Schema.php',
|
|
||||||
'think\\console\\input\\Argument' => $vendorDir . '/topthink/framework/src/think/console/input/Argument.php',
|
|
||||||
'think\\console\\input\\Definition' => $vendorDir . '/topthink/framework/src/think/console/input/Definition.php',
|
|
||||||
'think\\console\\input\\Option' => $vendorDir . '/topthink/framework/src/think/console/input/Option.php',
|
|
||||||
'think\\console\\output\\Ask' => $vendorDir . '/topthink/framework/src/think/console/output/Ask.php',
|
|
||||||
'think\\console\\output\\Descriptor' => $vendorDir . '/topthink/framework/src/think/console/output/Descriptor.php',
|
|
||||||
'think\\console\\output\\Formatter' => $vendorDir . '/topthink/framework/src/think/console/output/Formatter.php',
|
|
||||||
'think\\console\\output\\Question' => $vendorDir . '/topthink/framework/src/think/console/output/Question.php',
|
|
||||||
'think\\console\\output\\descriptor\\Console' => $vendorDir . '/topthink/framework/src/think/console/output/descriptor/Console.php',
|
|
||||||
'think\\console\\output\\driver\\Buffer' => $vendorDir . '/topthink/framework/src/think/console/output/driver/Buffer.php',
|
|
||||||
'think\\console\\output\\driver\\Console' => $vendorDir . '/topthink/framework/src/think/console/output/driver/Console.php',
|
|
||||||
'think\\console\\output\\driver\\Nothing' => $vendorDir . '/topthink/framework/src/think/console/output/driver/Nothing.php',
|
|
||||||
'think\\console\\output\\formatter\\Stack' => $vendorDir . '/topthink/framework/src/think/console/output/formatter/Stack.php',
|
|
||||||
'think\\console\\output\\formatter\\Style' => $vendorDir . '/topthink/framework/src/think/console/output/formatter/Style.php',
|
|
||||||
'think\\console\\output\\question\\Choice' => $vendorDir . '/topthink/framework/src/think/console/output/question/Choice.php',
|
|
||||||
'think\\console\\output\\question\\Confirmation' => $vendorDir . '/topthink/framework/src/think/console/output/question/Confirmation.php',
|
|
||||||
'think\\contract\\Arrayable' => $vendorDir . '/topthink/think-helper/src/contract/Arrayable.php',
|
|
||||||
'think\\contract\\CacheHandlerInterface' => $vendorDir . '/topthink/framework/src/think/contract/CacheHandlerInterface.php',
|
|
||||||
'think\\contract\\Jsonable' => $vendorDir . '/topthink/think-helper/src/contract/Jsonable.php',
|
|
||||||
'think\\contract\\LogHandlerInterface' => $vendorDir . '/topthink/framework/src/think/contract/LogHandlerInterface.php',
|
|
||||||
'think\\contract\\ModelRelationInterface' => $vendorDir . '/topthink/framework/src/think/contract/ModelRelationInterface.php',
|
|
||||||
'think\\contract\\SessionHandlerInterface' => $vendorDir . '/topthink/framework/src/think/contract/SessionHandlerInterface.php',
|
|
||||||
'think\\contract\\TemplateHandlerInterface' => $vendorDir . '/topthink/framework/src/think/contract/TemplateHandlerInterface.php',
|
|
||||||
'think\\db\\BaseQuery' => $vendorDir . '/topthink/think-orm/src/db/BaseQuery.php',
|
|
||||||
'think\\db\\Builder' => $vendorDir . '/topthink/think-orm/src/db/Builder.php',
|
|
||||||
'think\\db\\CacheItem' => $vendorDir . '/topthink/think-orm/src/db/CacheItem.php',
|
|
||||||
'think\\db\\Connection' => $vendorDir . '/topthink/think-orm/src/db/Connection.php',
|
|
||||||
'think\\db\\ConnectionInterface' => $vendorDir . '/topthink/think-orm/src/db/ConnectionInterface.php',
|
|
||||||
'think\\db\\Fetch' => $vendorDir . '/topthink/think-orm/src/db/Fetch.php',
|
|
||||||
'think\\db\\Mongo' => $vendorDir . '/topthink/think-orm/src/db/Mongo.php',
|
|
||||||
'think\\db\\PDOConnection' => $vendorDir . '/topthink/think-orm/src/db/PDOConnection.php',
|
|
||||||
'think\\db\\Query' => $vendorDir . '/topthink/think-orm/src/db/Query.php',
|
|
||||||
'think\\db\\Raw' => $vendorDir . '/topthink/think-orm/src/db/Raw.php',
|
|
||||||
'think\\db\\Where' => $vendorDir . '/topthink/think-orm/src/db/Where.php',
|
|
||||||
'think\\db\\builder\\Mongo' => $vendorDir . '/topthink/think-orm/src/db/builder/Mongo.php',
|
|
||||||
'think\\db\\builder\\Mysql' => $vendorDir . '/topthink/think-orm/src/db/builder/Mysql.php',
|
|
||||||
'think\\db\\builder\\Oracle' => $vendorDir . '/topthink/think-orm/src/db/builder/Oracle.php',
|
|
||||||
'think\\db\\builder\\Pgsql' => $vendorDir . '/topthink/think-orm/src/db/builder/Pgsql.php',
|
|
||||||
'think\\db\\builder\\Sqlite' => $vendorDir . '/topthink/think-orm/src/db/builder/Sqlite.php',
|
|
||||||
'think\\db\\builder\\Sqlsrv' => $vendorDir . '/topthink/think-orm/src/db/builder/Sqlsrv.php',
|
|
||||||
'think\\db\\concern\\AggregateQuery' => $vendorDir . '/topthink/think-orm/src/db/concern/AggregateQuery.php',
|
|
||||||
'think\\db\\concern\\JoinAndViewQuery' => $vendorDir . '/topthink/think-orm/src/db/concern/JoinAndViewQuery.php',
|
|
||||||
'think\\db\\concern\\ModelRelationQuery' => $vendorDir . '/topthink/think-orm/src/db/concern/ModelRelationQuery.php',
|
|
||||||
'think\\db\\concern\\ParamsBind' => $vendorDir . '/topthink/think-orm/src/db/concern/ParamsBind.php',
|
|
||||||
'think\\db\\concern\\ResultOperation' => $vendorDir . '/topthink/think-orm/src/db/concern/ResultOperation.php',
|
|
||||||
'think\\db\\concern\\TableFieldInfo' => $vendorDir . '/topthink/think-orm/src/db/concern/TableFieldInfo.php',
|
|
||||||
'think\\db\\concern\\TimeFieldQuery' => $vendorDir . '/topthink/think-orm/src/db/concern/TimeFieldQuery.php',
|
|
||||||
'think\\db\\concern\\Transaction' => $vendorDir . '/topthink/think-orm/src/db/concern/Transaction.php',
|
|
||||||
'think\\db\\concern\\WhereQuery' => $vendorDir . '/topthink/think-orm/src/db/concern/WhereQuery.php',
|
|
||||||
'think\\db\\connector\\Mongo' => $vendorDir . '/topthink/think-orm/src/db/connector/Mongo.php',
|
|
||||||
'think\\db\\connector\\Mysql' => $vendorDir . '/topthink/think-orm/src/db/connector/Mysql.php',
|
|
||||||
'think\\db\\connector\\Oracle' => $vendorDir . '/topthink/think-orm/src/db/connector/Oracle.php',
|
|
||||||
'think\\db\\connector\\Pgsql' => $vendorDir . '/topthink/think-orm/src/db/connector/Pgsql.php',
|
|
||||||
'think\\db\\connector\\Sqlite' => $vendorDir . '/topthink/think-orm/src/db/connector/Sqlite.php',
|
|
||||||
'think\\db\\connector\\Sqlsrv' => $vendorDir . '/topthink/think-orm/src/db/connector/Sqlsrv.php',
|
|
||||||
'think\\db\\exception\\BindParamException' => $vendorDir . '/topthink/think-orm/src/db/exception/BindParamException.php',
|
|
||||||
'think\\db\\exception\\DataNotFoundException' => $vendorDir . '/topthink/think-orm/src/db/exception/DataNotFoundException.php',
|
|
||||||
'think\\db\\exception\\DbException' => $vendorDir . '/topthink/think-orm/src/db/exception/DbException.php',
|
|
||||||
'think\\db\\exception\\InvalidArgumentException' => $vendorDir . '/topthink/think-orm/src/db/exception/InvalidArgumentException.php',
|
|
||||||
'think\\db\\exception\\ModelEventException' => $vendorDir . '/topthink/think-orm/src/db/exception/ModelEventException.php',
|
|
||||||
'think\\db\\exception\\ModelNotFoundException' => $vendorDir . '/topthink/think-orm/src/db/exception/ModelNotFoundException.php',
|
|
||||||
'think\\db\\exception\\PDOException' => $vendorDir . '/topthink/think-orm/src/db/exception/PDOException.php',
|
|
||||||
'think\\event\\AppInit' => $vendorDir . '/topthink/framework/src/think/event/AppInit.php',
|
|
||||||
'think\\event\\HttpEnd' => $vendorDir . '/topthink/framework/src/think/event/HttpEnd.php',
|
|
||||||
'think\\event\\HttpRun' => $vendorDir . '/topthink/framework/src/think/event/HttpRun.php',
|
|
||||||
'think\\event\\LogWrite' => $vendorDir . '/topthink/framework/src/think/event/LogWrite.php',
|
|
||||||
'think\\event\\RouteLoaded' => $vendorDir . '/topthink/framework/src/think/event/RouteLoaded.php',
|
|
||||||
'think\\exception\\ClassNotFoundException' => $vendorDir . '/topthink/framework/src/think/exception/ClassNotFoundException.php',
|
|
||||||
'think\\exception\\ErrorException' => $vendorDir . '/topthink/framework/src/think/exception/ErrorException.php',
|
|
||||||
'think\\exception\\FileException' => $vendorDir . '/topthink/framework/src/think/exception/FileException.php',
|
|
||||||
'think\\exception\\FuncNotFoundException' => $vendorDir . '/topthink/framework/src/think/exception/FuncNotFoundException.php',
|
|
||||||
'think\\exception\\Handle' => $vendorDir . '/topthink/framework/src/think/exception/Handle.php',
|
|
||||||
'think\\exception\\HttpException' => $vendorDir . '/topthink/framework/src/think/exception/HttpException.php',
|
|
||||||
'think\\exception\\HttpResponseException' => $vendorDir . '/topthink/framework/src/think/exception/HttpResponseException.php',
|
|
||||||
'think\\exception\\InvalidArgumentException' => $vendorDir . '/topthink/framework/src/think/exception/InvalidArgumentException.php',
|
|
||||||
'think\\exception\\RouteNotFoundException' => $vendorDir . '/topthink/framework/src/think/exception/RouteNotFoundException.php',
|
|
||||||
'think\\exception\\ValidateException' => $vendorDir . '/topthink/framework/src/think/exception/ValidateException.php',
|
|
||||||
'think\\facade\\App' => $vendorDir . '/topthink/framework/src/think/facade/App.php',
|
|
||||||
'think\\facade\\Cache' => $vendorDir . '/topthink/framework/src/think/facade/Cache.php',
|
|
||||||
'think\\facade\\Config' => $vendorDir . '/topthink/framework/src/think/facade/Config.php',
|
|
||||||
'think\\facade\\Console' => $vendorDir . '/topthink/framework/src/think/facade/Console.php',
|
|
||||||
'think\\facade\\Cookie' => $vendorDir . '/topthink/framework/src/think/facade/Cookie.php',
|
|
||||||
'think\\facade\\Db' => $vendorDir . '/topthink/think-orm/src/facade/Db.php',
|
|
||||||
'think\\facade\\Env' => $vendorDir . '/topthink/framework/src/think/facade/Env.php',
|
|
||||||
'think\\facade\\Event' => $vendorDir . '/topthink/framework/src/think/facade/Event.php',
|
|
||||||
'think\\facade\\Facade' => $vendorDir . '/topthink/think-orm/src/facade/Db.php',
|
|
||||||
'think\\facade\\Filesystem' => $vendorDir . '/topthink/framework/src/think/facade/Filesystem.php',
|
|
||||||
'think\\facade\\Lang' => $vendorDir . '/topthink/framework/src/think/facade/Lang.php',
|
|
||||||
'think\\facade\\Log' => $vendorDir . '/topthink/framework/src/think/facade/Log.php',
|
|
||||||
'think\\facade\\Middleware' => $vendorDir . '/topthink/framework/src/think/facade/Middleware.php',
|
|
||||||
'think\\facade\\Request' => $vendorDir . '/topthink/framework/src/think/facade/Request.php',
|
|
||||||
'think\\facade\\Route' => $vendorDir . '/topthink/framework/src/think/facade/Route.php',
|
|
||||||
'think\\facade\\Session' => $vendorDir . '/topthink/framework/src/think/facade/Session.php',
|
|
||||||
'think\\facade\\Template' => $vendorDir . '/topthink/think-template/src/facade/Template.php',
|
|
||||||
'think\\facade\\Validate' => $vendorDir . '/topthink/framework/src/think/facade/Validate.php',
|
|
||||||
'think\\facade\\View' => $vendorDir . '/topthink/framework/src/think/facade/View.php',
|
|
||||||
'think\\file\\UploadedFile' => $vendorDir . '/topthink/framework/src/think/file/UploadedFile.php',
|
|
||||||
'think\\filesystem\\CacheStore' => $vendorDir . '/topthink/framework/src/think/filesystem/CacheStore.php',
|
|
||||||
'think\\filesystem\\Driver' => $vendorDir . '/topthink/framework/src/think/filesystem/Driver.php',
|
|
||||||
'think\\filesystem\\driver\\Local' => $vendorDir . '/topthink/framework/src/think/filesystem/driver/Local.php',
|
|
||||||
'think\\helper\\Arr' => $vendorDir . '/topthink/think-helper/src/helper/Arr.php',
|
|
||||||
'think\\helper\\Str' => $vendorDir . '/topthink/think-helper/src/helper/Str.php',
|
|
||||||
'think\\initializer\\BootService' => $vendorDir . '/topthink/framework/src/think/initializer/BootService.php',
|
|
||||||
'think\\initializer\\Error' => $vendorDir . '/topthink/framework/src/think/initializer/Error.php',
|
|
||||||
'think\\initializer\\RegisterService' => $vendorDir . '/topthink/framework/src/think/initializer/RegisterService.php',
|
|
||||||
'think\\log\\Channel' => $vendorDir . '/topthink/framework/src/think/log/Channel.php',
|
|
||||||
'think\\log\\ChannelSet' => $vendorDir . '/topthink/framework/src/think/log/ChannelSet.php',
|
|
||||||
'think\\log\\driver\\File' => $vendorDir . '/topthink/framework/src/think/log/driver/File.php',
|
|
||||||
'think\\log\\driver\\Socket' => $vendorDir . '/topthink/framework/src/think/log/driver/Socket.php',
|
|
||||||
'think\\middleware\\AllowCrossDomain' => $vendorDir . '/topthink/framework/src/think/middleware/AllowCrossDomain.php',
|
|
||||||
'think\\middleware\\CheckRequestCache' => $vendorDir . '/topthink/framework/src/think/middleware/CheckRequestCache.php',
|
|
||||||
'think\\middleware\\FormTokenCheck' => $vendorDir . '/topthink/framework/src/think/middleware/FormTokenCheck.php',
|
|
||||||
'think\\middleware\\LoadLangPack' => $vendorDir . '/topthink/framework/src/think/middleware/LoadLangPack.php',
|
|
||||||
'think\\middleware\\SessionInit' => $vendorDir . '/topthink/framework/src/think/middleware/SessionInit.php',
|
|
||||||
'think\\model\\Collection' => $vendorDir . '/topthink/think-orm/src/model/Collection.php',
|
|
||||||
'think\\model\\Pivot' => $vendorDir . '/topthink/think-orm/src/model/Pivot.php',
|
|
||||||
'think\\model\\Relation' => $vendorDir . '/topthink/think-orm/src/model/Relation.php',
|
|
||||||
'think\\model\\concern\\Attribute' => $vendorDir . '/topthink/think-orm/src/model/concern/Attribute.php',
|
|
||||||
'think\\model\\concern\\Conversion' => $vendorDir . '/topthink/think-orm/src/model/concern/Conversion.php',
|
|
||||||
'think\\model\\concern\\ModelEvent' => $vendorDir . '/topthink/think-orm/src/model/concern/ModelEvent.php',
|
|
||||||
'think\\model\\concern\\OptimLock' => $vendorDir . '/topthink/think-orm/src/model/concern/OptimLock.php',
|
|
||||||
'think\\model\\concern\\RelationShip' => $vendorDir . '/topthink/think-orm/src/model/concern/RelationShip.php',
|
|
||||||
'think\\model\\concern\\SoftDelete' => $vendorDir . '/topthink/think-orm/src/model/concern/SoftDelete.php',
|
|
||||||
'think\\model\\concern\\TimeStamp' => $vendorDir . '/topthink/think-orm/src/model/concern/TimeStamp.php',
|
|
||||||
'think\\model\\relation\\BelongsTo' => $vendorDir . '/topthink/think-orm/src/model/relation/BelongsTo.php',
|
|
||||||
'think\\model\\relation\\BelongsToMany' => $vendorDir . '/topthink/think-orm/src/model/relation/BelongsToMany.php',
|
|
||||||
'think\\model\\relation\\HasMany' => $vendorDir . '/topthink/think-orm/src/model/relation/HasMany.php',
|
|
||||||
'think\\model\\relation\\HasManyThrough' => $vendorDir . '/topthink/think-orm/src/model/relation/HasManyThrough.php',
|
|
||||||
'think\\model\\relation\\HasOne' => $vendorDir . '/topthink/think-orm/src/model/relation/HasOne.php',
|
|
||||||
'think\\model\\relation\\HasOneThrough' => $vendorDir . '/topthink/think-orm/src/model/relation/HasOneThrough.php',
|
|
||||||
'think\\model\\relation\\MorphMany' => $vendorDir . '/topthink/think-orm/src/model/relation/MorphMany.php',
|
|
||||||
'think\\model\\relation\\MorphOne' => $vendorDir . '/topthink/think-orm/src/model/relation/MorphOne.php',
|
|
||||||
'think\\model\\relation\\MorphTo' => $vendorDir . '/topthink/think-orm/src/model/relation/MorphTo.php',
|
|
||||||
'think\\model\\relation\\OneToOne' => $vendorDir . '/topthink/think-orm/src/model/relation/OneToOne.php',
|
|
||||||
'think\\paginator\\driver\\Bootstrap' => $vendorDir . '/topthink/think-orm/src/paginator/driver/Bootstrap.php',
|
|
||||||
'think\\response\\File' => $vendorDir . '/topthink/framework/src/think/response/File.php',
|
|
||||||
'think\\response\\Html' => $vendorDir . '/topthink/framework/src/think/response/Html.php',
|
|
||||||
'think\\response\\Json' => $vendorDir . '/topthink/framework/src/think/response/Json.php',
|
|
||||||
'think\\response\\Jsonp' => $vendorDir . '/topthink/framework/src/think/response/Jsonp.php',
|
|
||||||
'think\\response\\Redirect' => $vendorDir . '/topthink/framework/src/think/response/Redirect.php',
|
|
||||||
'think\\response\\View' => $vendorDir . '/topthink/framework/src/think/response/View.php',
|
|
||||||
'think\\response\\Xml' => $vendorDir . '/topthink/framework/src/think/response/Xml.php',
|
|
||||||
'think\\route\\Dispatch' => $vendorDir . '/topthink/framework/src/think/route/Dispatch.php',
|
|
||||||
'think\\route\\Domain' => $vendorDir . '/topthink/framework/src/think/route/Domain.php',
|
|
||||||
'think\\route\\Resource' => $vendorDir . '/topthink/framework/src/think/route/Resource.php',
|
|
||||||
'think\\route\\Rule' => $vendorDir . '/topthink/framework/src/think/route/Rule.php',
|
|
||||||
'think\\route\\RuleGroup' => $vendorDir . '/topthink/framework/src/think/route/RuleGroup.php',
|
|
||||||
'think\\route\\RuleItem' => $vendorDir . '/topthink/framework/src/think/route/RuleItem.php',
|
|
||||||
'think\\route\\RuleName' => $vendorDir . '/topthink/framework/src/think/route/RuleName.php',
|
|
||||||
'think\\route\\Url' => $vendorDir . '/topthink/framework/src/think/route/Url.php',
|
|
||||||
'think\\route\\dispatch\\Callback' => $vendorDir . '/topthink/framework/src/think/route/dispatch/Callback.php',
|
|
||||||
'think\\route\\dispatch\\Controller' => $vendorDir . '/topthink/framework/src/think/route/dispatch/Controller.php',
|
|
||||||
'think\\route\\dispatch\\Redirect' => $vendorDir . '/topthink/framework/src/think/route/dispatch/Redirect.php',
|
|
||||||
'think\\route\\dispatch\\Response' => $vendorDir . '/topthink/framework/src/think/route/dispatch/Response.php',
|
|
||||||
'think\\route\\dispatch\\Url' => $vendorDir . '/topthink/framework/src/think/route/dispatch/Url.php',
|
|
||||||
'think\\route\\dispatch\\View' => $vendorDir . '/topthink/framework/src/think/route/dispatch/View.php',
|
|
||||||
'think\\service\\ModelService' => $vendorDir . '/topthink/framework/src/think/service/ModelService.php',
|
|
||||||
'think\\service\\PaginatorService' => $vendorDir . '/topthink/framework/src/think/service/PaginatorService.php',
|
|
||||||
'think\\service\\ValidateService' => $vendorDir . '/topthink/framework/src/think/service/ValidateService.php',
|
|
||||||
'think\\session\\Store' => $vendorDir . '/topthink/framework/src/think/session/Store.php',
|
|
||||||
'think\\session\\driver\\Cache' => $vendorDir . '/topthink/framework/src/think/session/driver/Cache.php',
|
|
||||||
'think\\session\\driver\\File' => $vendorDir . '/topthink/framework/src/think/session/driver/File.php',
|
|
||||||
'think\\template\\TagLib' => $vendorDir . '/topthink/think-template/src/template/TagLib.php',
|
|
||||||
'think\\template\\driver\\File' => $vendorDir . '/topthink/think-template/src/template/driver/File.php',
|
|
||||||
'think\\template\\exception\\TemplateNotFoundException' => $vendorDir . '/topthink/think-template/src/template/exception/TemplateNotFoundException.php',
|
|
||||||
'think\\template\\taglib\\Cx' => $vendorDir . '/topthink/think-template/src/template/taglib/Cx.php',
|
|
||||||
'think\\validate\\ValidateRule' => $vendorDir . '/topthink/framework/src/think/validate/ValidateRule.php',
|
|
||||||
'think\\view\\driver\\Php' => $vendorDir . '/topthink/framework/src/think/view/driver/Php.php',
|
|
||||||
'think\\view\\driver\\Think' => $vendorDir . '/topthink/think-view/src/Think.php',
|
|
||||||
);
|
|
12
vendor/composer/autoload_files.php
vendored
12
vendor/composer/autoload_files.php
vendored
@ -1,12 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_files.php @generated by Composer
|
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
|
||||||
$baseDir = dirname($vendorDir);
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'9b552a3cc426e3287cc811caefa3cf53' => $vendorDir . '/topthink/think-helper/src/helper.php',
|
|
||||||
'538ca81a9a966a6716601ecf48f4eaef' => $vendorDir . '/opis/closure/functions.php',
|
|
||||||
'8dafcc6956460bc297e00381fed53e11' => $vendorDir . '/zoujingli/think-library/src/common.php',
|
|
||||||
);
|
|
9
vendor/composer/autoload_namespaces.php
vendored
9
vendor/composer/autoload_namespaces.php
vendored
@ -1,9 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_namespaces.php @generated by Composer
|
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
|
||||||
$baseDir = dirname($vendorDir);
|
|
||||||
|
|
||||||
return array(
|
|
||||||
);
|
|
21
vendor/composer/autoload_psr4.php
vendored
21
vendor/composer/autoload_psr4.php
vendored
@ -1,21 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_psr4.php @generated by Composer
|
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
|
||||||
$baseDir = dirname($vendorDir);
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'think\\view\\driver\\' => array($vendorDir . '/topthink/think-view/src'),
|
|
||||||
'think\\app\\' => array($vendorDir . '/topthink/think-multi-app/src'),
|
|
||||||
'think\\admin\\' => array($vendorDir . '/zoujingli/think-library/src'),
|
|
||||||
'think\\' => array($vendorDir . '/topthink/framework/src/think', $vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-orm/src', $vendorDir . '/topthink/think-template/src'),
|
|
||||||
'app\\' => array($baseDir . '/app'),
|
|
||||||
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
|
|
||||||
'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
|
|
||||||
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
|
|
||||||
'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'),
|
|
||||||
'Opis\\Closure\\' => array($vendorDir . '/opis/closure/src'),
|
|
||||||
'League\\Flysystem\\Cached\\' => array($vendorDir . '/league/flysystem-cached-adapter/src'),
|
|
||||||
'League\\Flysystem\\' => array($vendorDir . '/league/flysystem/src'),
|
|
||||||
);
|
|
70
vendor/composer/autoload_real.php
vendored
70
vendor/composer/autoload_real.php
vendored
@ -1,70 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_real.php @generated by Composer
|
|
||||||
|
|
||||||
class ComposerAutoloaderInitbaef8a191be4ee8c4809e47d0e71601b
|
|
||||||
{
|
|
||||||
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('ComposerAutoloaderInitbaef8a191be4ee8c4809e47d0e71601b', 'loadClassLoader'), true, true);
|
|
||||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
|
||||||
spl_autoload_unregister(array('ComposerAutoloaderInitbaef8a191be4ee8c4809e47d0e71601b', '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\ComposerStaticInitbaef8a191be4ee8c4809e47d0e71601b::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\ComposerStaticInitbaef8a191be4ee8c4809e47d0e71601b::$files;
|
|
||||||
} else {
|
|
||||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
|
||||||
}
|
|
||||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
|
||||||
composerRequirebaef8a191be4ee8c4809e47d0e71601b($fileIdentifier, $file);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $loader;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function composerRequirebaef8a191be4ee8c4809e47d0e71601b($fileIdentifier, $file)
|
|
||||||
{
|
|
||||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
|
||||||
require $file;
|
|
||||||
|
|
||||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
|
||||||
}
|
|
||||||
}
|
|
477
vendor/composer/autoload_static.php
vendored
477
vendor/composer/autoload_static.php
vendored
@ -1,477 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_static.php @generated by Composer
|
|
||||||
|
|
||||||
namespace Composer\Autoload;
|
|
||||||
|
|
||||||
class ComposerStaticInitbaef8a191be4ee8c4809e47d0e71601b
|
|
||||||
{
|
|
||||||
public static $files = array (
|
|
||||||
'9b552a3cc426e3287cc811caefa3cf53' => __DIR__ . '/..' . '/topthink/think-helper/src/helper.php',
|
|
||||||
'538ca81a9a966a6716601ecf48f4eaef' => __DIR__ . '/..' . '/opis/closure/functions.php',
|
|
||||||
'8dafcc6956460bc297e00381fed53e11' => __DIR__ . '/..' . '/zoujingli/think-library/src/common.php',
|
|
||||||
);
|
|
||||||
|
|
||||||
public static $prefixLengthsPsr4 = array (
|
|
||||||
't' =>
|
|
||||||
array (
|
|
||||||
'think\\view\\driver\\' => 18,
|
|
||||||
'think\\app\\' => 10,
|
|
||||||
'think\\admin\\' => 12,
|
|
||||||
'think\\' => 6,
|
|
||||||
),
|
|
||||||
'a' =>
|
|
||||||
array (
|
|
||||||
'app\\' => 4,
|
|
||||||
),
|
|
||||||
'P' =>
|
|
||||||
array (
|
|
||||||
'Psr\\SimpleCache\\' => 16,
|
|
||||||
'Psr\\Log\\' => 8,
|
|
||||||
'Psr\\Container\\' => 14,
|
|
||||||
'Psr\\Cache\\' => 10,
|
|
||||||
),
|
|
||||||
'O' =>
|
|
||||||
array (
|
|
||||||
'Opis\\Closure\\' => 13,
|
|
||||||
),
|
|
||||||
'L' =>
|
|
||||||
array (
|
|
||||||
'League\\Flysystem\\Cached\\' => 24,
|
|
||||||
'League\\Flysystem\\' => 17,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
public static $prefixDirsPsr4 = array (
|
|
||||||
'think\\view\\driver\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/topthink/think-view/src',
|
|
||||||
),
|
|
||||||
'think\\app\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/topthink/think-multi-app/src',
|
|
||||||
),
|
|
||||||
'think\\admin\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/zoujingli/think-library/src',
|
|
||||||
),
|
|
||||||
'think\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/topthink/framework/src/think',
|
|
||||||
1 => __DIR__ . '/..' . '/topthink/think-helper/src',
|
|
||||||
2 => __DIR__ . '/..' . '/topthink/think-orm/src',
|
|
||||||
3 => __DIR__ . '/..' . '/topthink/think-template/src',
|
|
||||||
),
|
|
||||||
'app\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/../..' . '/app',
|
|
||||||
),
|
|
||||||
'Psr\\SimpleCache\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/psr/simple-cache/src',
|
|
||||||
),
|
|
||||||
'Psr\\Log\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
|
|
||||||
),
|
|
||||||
'Psr\\Container\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/psr/container/src',
|
|
||||||
),
|
|
||||||
'Psr\\Cache\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/psr/cache/src',
|
|
||||||
),
|
|
||||||
'Opis\\Closure\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/opis/closure/src',
|
|
||||||
),
|
|
||||||
'League\\Flysystem\\Cached\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src',
|
|
||||||
),
|
|
||||||
'League\\Flysystem\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/league/flysystem/src',
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
public static $classMap = array (
|
|
||||||
'Ip2Region' => __DIR__ . '/..' . '/zoujingli/ip2region/Ip2Region.php',
|
|
||||||
'League\\Flysystem\\AdapterInterface' => __DIR__ . '/..' . '/league/flysystem/src/AdapterInterface.php',
|
|
||||||
'League\\Flysystem\\Adapter\\AbstractAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/AbstractAdapter.php',
|
|
||||||
'League\\Flysystem\\Adapter\\AbstractFtpAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/AbstractFtpAdapter.php',
|
|
||||||
'League\\Flysystem\\Adapter\\CanOverwriteFiles' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/CanOverwriteFiles.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Ftp' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Ftp.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Ftpd' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Ftpd.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Local' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Local.php',
|
|
||||||
'League\\Flysystem\\Adapter\\NullAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/NullAdapter.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Polyfill\\NotSupportingVisibilityTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Polyfill\\StreamedCopyTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedCopyTrait.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Polyfill\\StreamedReadingTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Polyfill\\StreamedTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php',
|
|
||||||
'League\\Flysystem\\Adapter\\Polyfill\\StreamedWritingTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedWritingTrait.php',
|
|
||||||
'League\\Flysystem\\Adapter\\SynologyFtp' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/SynologyFtp.php',
|
|
||||||
'League\\Flysystem\\Cached\\CacheInterface' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/CacheInterface.php',
|
|
||||||
'League\\Flysystem\\Cached\\CachedAdapter' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/CachedAdapter.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\AbstractCache' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/AbstractCache.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\Adapter' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/Adapter.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\Memcached' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/Memcached.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\Memory' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/Memory.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\Noop' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/Noop.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\PhpRedis' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/PhpRedis.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\Predis' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/Predis.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\Psr6Cache' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/Psr6Cache.php',
|
|
||||||
'League\\Flysystem\\Cached\\Storage\\Stash' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/Stash.php',
|
|
||||||
'League\\Flysystem\\Config' => __DIR__ . '/..' . '/league/flysystem/src/Config.php',
|
|
||||||
'League\\Flysystem\\ConfigAwareTrait' => __DIR__ . '/..' . '/league/flysystem/src/ConfigAwareTrait.php',
|
|
||||||
'League\\Flysystem\\Directory' => __DIR__ . '/..' . '/league/flysystem/src/Directory.php',
|
|
||||||
'League\\Flysystem\\Exception' => __DIR__ . '/..' . '/league/flysystem/src/Exception.php',
|
|
||||||
'League\\Flysystem\\File' => __DIR__ . '/..' . '/league/flysystem/src/File.php',
|
|
||||||
'League\\Flysystem\\FileExistsException' => __DIR__ . '/..' . '/league/flysystem/src/FileExistsException.php',
|
|
||||||
'League\\Flysystem\\FileNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/FileNotFoundException.php',
|
|
||||||
'League\\Flysystem\\Filesystem' => __DIR__ . '/..' . '/league/flysystem/src/Filesystem.php',
|
|
||||||
'League\\Flysystem\\FilesystemInterface' => __DIR__ . '/..' . '/league/flysystem/src/FilesystemInterface.php',
|
|
||||||
'League\\Flysystem\\FilesystemNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/FilesystemNotFoundException.php',
|
|
||||||
'League\\Flysystem\\Handler' => __DIR__ . '/..' . '/league/flysystem/src/Handler.php',
|
|
||||||
'League\\Flysystem\\MountManager' => __DIR__ . '/..' . '/league/flysystem/src/MountManager.php',
|
|
||||||
'League\\Flysystem\\NotSupportedException' => __DIR__ . '/..' . '/league/flysystem/src/NotSupportedException.php',
|
|
||||||
'League\\Flysystem\\PluginInterface' => __DIR__ . '/..' . '/league/flysystem/src/PluginInterface.php',
|
|
||||||
'League\\Flysystem\\Plugin\\AbstractPlugin' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/AbstractPlugin.php',
|
|
||||||
'League\\Flysystem\\Plugin\\EmptyDir' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/EmptyDir.php',
|
|
||||||
'League\\Flysystem\\Plugin\\ForcedCopy' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ForcedCopy.php',
|
|
||||||
'League\\Flysystem\\Plugin\\ForcedRename' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ForcedRename.php',
|
|
||||||
'League\\Flysystem\\Plugin\\GetWithMetadata' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/GetWithMetadata.php',
|
|
||||||
'League\\Flysystem\\Plugin\\ListFiles' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ListFiles.php',
|
|
||||||
'League\\Flysystem\\Plugin\\ListPaths' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ListPaths.php',
|
|
||||||
'League\\Flysystem\\Plugin\\ListWith' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ListWith.php',
|
|
||||||
'League\\Flysystem\\Plugin\\PluggableTrait' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/PluggableTrait.php',
|
|
||||||
'League\\Flysystem\\Plugin\\PluginNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/PluginNotFoundException.php',
|
|
||||||
'League\\Flysystem\\ReadInterface' => __DIR__ . '/..' . '/league/flysystem/src/ReadInterface.php',
|
|
||||||
'League\\Flysystem\\RootViolationException' => __DIR__ . '/..' . '/league/flysystem/src/RootViolationException.php',
|
|
||||||
'League\\Flysystem\\SafeStorage' => __DIR__ . '/..' . '/league/flysystem/src/SafeStorage.php',
|
|
||||||
'League\\Flysystem\\UnreadableFileException' => __DIR__ . '/..' . '/league/flysystem/src/UnreadableFileException.php',
|
|
||||||
'League\\Flysystem\\Util' => __DIR__ . '/..' . '/league/flysystem/src/Util.php',
|
|
||||||
'League\\Flysystem\\Util\\ContentListingFormatter' => __DIR__ . '/..' . '/league/flysystem/src/Util/ContentListingFormatter.php',
|
|
||||||
'League\\Flysystem\\Util\\MimeType' => __DIR__ . '/..' . '/league/flysystem/src/Util/MimeType.php',
|
|
||||||
'League\\Flysystem\\Util\\StreamHasher' => __DIR__ . '/..' . '/league/flysystem/src/Util/StreamHasher.php',
|
|
||||||
'Opis\\Closure\\Analyzer' => __DIR__ . '/..' . '/opis/closure/src/Analyzer.php',
|
|
||||||
'Opis\\Closure\\ClosureContext' => __DIR__ . '/..' . '/opis/closure/src/ClosureContext.php',
|
|
||||||
'Opis\\Closure\\ClosureScope' => __DIR__ . '/..' . '/opis/closure/src/ClosureScope.php',
|
|
||||||
'Opis\\Closure\\ClosureStream' => __DIR__ . '/..' . '/opis/closure/src/ClosureStream.php',
|
|
||||||
'Opis\\Closure\\ISecurityProvider' => __DIR__ . '/..' . '/opis/closure/src/ISecurityProvider.php',
|
|
||||||
'Opis\\Closure\\ReflectionClosure' => __DIR__ . '/..' . '/opis/closure/src/ReflectionClosure.php',
|
|
||||||
'Opis\\Closure\\SecurityException' => __DIR__ . '/..' . '/opis/closure/src/SecurityException.php',
|
|
||||||
'Opis\\Closure\\SecurityProvider' => __DIR__ . '/..' . '/opis/closure/src/SecurityProvider.php',
|
|
||||||
'Opis\\Closure\\SelfReference' => __DIR__ . '/..' . '/opis/closure/src/SelfReference.php',
|
|
||||||
'Opis\\Closure\\SerializableClosure' => __DIR__ . '/..' . '/opis/closure/src/SerializableClosure.php',
|
|
||||||
'Psr\\Cache\\CacheException' => __DIR__ . '/..' . '/psr/cache/src/CacheException.php',
|
|
||||||
'Psr\\Cache\\CacheItemInterface' => __DIR__ . '/..' . '/psr/cache/src/CacheItemInterface.php',
|
|
||||||
'Psr\\Cache\\CacheItemPoolInterface' => __DIR__ . '/..' . '/psr/cache/src/CacheItemPoolInterface.php',
|
|
||||||
'Psr\\Cache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/cache/src/InvalidArgumentException.php',
|
|
||||||
'Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php',
|
|
||||||
'Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php',
|
|
||||||
'Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php',
|
|
||||||
'Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/AbstractLogger.php',
|
|
||||||
'Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/Psr/Log/InvalidArgumentException.php',
|
|
||||||
'Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/Psr/Log/LogLevel.php',
|
|
||||||
'Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareInterface.php',
|
|
||||||
'Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareTrait.php',
|
|
||||||
'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerInterface.php',
|
|
||||||
'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerTrait.php',
|
|
||||||
'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php',
|
|
||||||
'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
|
||||||
'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
|
||||||
'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php',
|
|
||||||
'Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php',
|
|
||||||
'Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php',
|
|
||||||
'Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php',
|
|
||||||
'app\\admin\\controller\\Auth' => __DIR__ . '/../..' . '/app/admin/controller/Auth.php',
|
|
||||||
'app\\admin\\controller\\Config' => __DIR__ . '/../..' . '/app/admin/controller/Config.php',
|
|
||||||
'app\\admin\\controller\\Index' => __DIR__ . '/../..' . '/app/admin/controller/Index.php',
|
|
||||||
'app\\admin\\controller\\Login' => __DIR__ . '/../..' . '/app/admin/controller/Login.php',
|
|
||||||
'app\\admin\\controller\\Menu' => __DIR__ . '/../..' . '/app/admin/controller/Menu.php',
|
|
||||||
'app\\admin\\controller\\Oplog' => __DIR__ . '/../..' . '/app/admin/controller/Oplog.php',
|
|
||||||
'app\\admin\\controller\\Queue' => __DIR__ . '/../..' . '/app/admin/controller/Queue.php',
|
|
||||||
'app\\admin\\controller\\User' => __DIR__ . '/../..' . '/app/admin/controller/User.php',
|
|
||||||
'app\\admin\\controller\\api\\Plugs' => __DIR__ . '/../..' . '/app/admin/controller/api/Plugs.php',
|
|
||||||
'app\\admin\\controller\\api\\Update' => __DIR__ . '/../..' . '/app/admin/controller/api/Update.php',
|
|
||||||
'app\\admin\\service\\AuthService' => __DIR__ . '/../..' . '/app/admin/service/AuthService.php',
|
|
||||||
'app\\admin\\service\\MenuService' => __DIR__ . '/../..' . '/app/admin/service/MenuService.php',
|
|
||||||
'app\\index\\controller\\Index' => __DIR__ . '/../..' . '/app/index/controller/Index.php',
|
|
||||||
'think\\App' => __DIR__ . '/..' . '/topthink/framework/src/think/App.php',
|
|
||||||
'think\\Cache' => __DIR__ . '/..' . '/topthink/framework/src/think/Cache.php',
|
|
||||||
'think\\Collection' => __DIR__ . '/..' . '/topthink/think-helper/src/Collection.php',
|
|
||||||
'think\\Config' => __DIR__ . '/..' . '/topthink/framework/src/think/Config.php',
|
|
||||||
'think\\Console' => __DIR__ . '/..' . '/topthink/framework/src/think/Console.php',
|
|
||||||
'think\\Container' => __DIR__ . '/..' . '/topthink/framework/src/think/Container.php',
|
|
||||||
'think\\Cookie' => __DIR__ . '/..' . '/topthink/framework/src/think/Cookie.php',
|
|
||||||
'think\\Db' => __DIR__ . '/..' . '/topthink/framework/src/think/Db.php',
|
|
||||||
'think\\DbManager' => __DIR__ . '/..' . '/topthink/think-orm/src/DbManager.php',
|
|
||||||
'think\\Env' => __DIR__ . '/..' . '/topthink/framework/src/think/Env.php',
|
|
||||||
'think\\Event' => __DIR__ . '/..' . '/topthink/framework/src/think/Event.php',
|
|
||||||
'think\\Exception' => __DIR__ . '/..' . '/topthink/framework/src/think/Exception.php',
|
|
||||||
'think\\Facade' => __DIR__ . '/..' . '/topthink/framework/src/think/Facade.php',
|
|
||||||
'think\\File' => __DIR__ . '/..' . '/topthink/framework/src/think/File.php',
|
|
||||||
'think\\Filesystem' => __DIR__ . '/..' . '/topthink/framework/src/think/Filesystem.php',
|
|
||||||
'think\\Http' => __DIR__ . '/..' . '/topthink/framework/src/think/Http.php',
|
|
||||||
'think\\Lang' => __DIR__ . '/..' . '/topthink/framework/src/think/Lang.php',
|
|
||||||
'think\\Log' => __DIR__ . '/..' . '/topthink/framework/src/think/Log.php',
|
|
||||||
'think\\Manager' => __DIR__ . '/..' . '/topthink/framework/src/think/Manager.php',
|
|
||||||
'think\\Middleware' => __DIR__ . '/..' . '/topthink/framework/src/think/Middleware.php',
|
|
||||||
'think\\Model' => __DIR__ . '/..' . '/topthink/think-orm/src/Model.php',
|
|
||||||
'think\\Paginator' => __DIR__ . '/..' . '/topthink/think-orm/src/Paginator.php',
|
|
||||||
'think\\Pipeline' => __DIR__ . '/..' . '/topthink/framework/src/think/Pipeline.php',
|
|
||||||
'think\\Request' => __DIR__ . '/..' . '/topthink/framework/src/think/Request.php',
|
|
||||||
'think\\Response' => __DIR__ . '/..' . '/topthink/framework/src/think/Response.php',
|
|
||||||
'think\\Route' => __DIR__ . '/..' . '/topthink/framework/src/think/Route.php',
|
|
||||||
'think\\Service' => __DIR__ . '/..' . '/topthink/framework/src/think/Service.php',
|
|
||||||
'think\\Session' => __DIR__ . '/..' . '/topthink/framework/src/think/Session.php',
|
|
||||||
'think\\Template' => __DIR__ . '/..' . '/topthink/think-template/src/Template.php',
|
|
||||||
'think\\Validate' => __DIR__ . '/..' . '/topthink/framework/src/think/Validate.php',
|
|
||||||
'think\\View' => __DIR__ . '/..' . '/topthink/framework/src/think/View.php',
|
|
||||||
'think\\admin\\Controller' => __DIR__ . '/..' . '/zoujingli/think-library/src/Controller.php',
|
|
||||||
'think\\admin\\Queue' => __DIR__ . '/..' . '/zoujingli/think-library/src/Queue.php',
|
|
||||||
'think\\admin\\Storage' => __DIR__ . '/..' . '/zoujingli/think-library/src/Storage.php',
|
|
||||||
'think\\admin\\ThinkLibrary' => __DIR__ . '/..' . '/zoujingli/think-library/src/ThinkLibrary.php',
|
|
||||||
'think\\admin\\extend\\CaptchaExtend' => __DIR__ . '/..' . '/zoujingli/think-library/src/extend/CaptchaExtend.php',
|
|
||||||
'think\\admin\\extend\\CodeExtend' => __DIR__ . '/..' . '/zoujingli/think-library/src/extend/CodeExtend.php',
|
|
||||||
'think\\admin\\extend\\CsvExtend' => __DIR__ . '/..' . '/zoujingli/think-library/src/extend/CsvExtend.php',
|
|
||||||
'think\\admin\\extend\\DataExtend' => __DIR__ . '/..' . '/zoujingli/think-library/src/extend/DataExtend.php',
|
|
||||||
'think\\admin\\extend\\ExpressExtend' => __DIR__ . '/..' . '/zoujingli/think-library/src/extend/ExpressExtend.php',
|
|
||||||
'think\\admin\\extend\\HttpExtend' => __DIR__ . '/..' . '/zoujingli/think-library/src/extend/HttpExtend.php',
|
|
||||||
'think\\admin\\extend\\NodeExtend' => __DIR__ . '/..' . '/zoujingli/think-library/src/extend/NodeExtend.php',
|
|
||||||
'think\\admin\\extend\\ProcessExtend' => __DIR__ . '/..' . '/zoujingli/think-library/src/extend/ProcessExtend.php',
|
|
||||||
'think\\admin\\extend\\TokenExtend' => __DIR__ . '/..' . '/zoujingli/think-library/src/extend/TokenExtend.php',
|
|
||||||
'think\\admin\\helper\\DeleteHelper' => __DIR__ . '/..' . '/zoujingli/think-library/src/helper/DeleteHelper.php',
|
|
||||||
'think\\admin\\helper\\FormHelper' => __DIR__ . '/..' . '/zoujingli/think-library/src/helper/FormHelper.php',
|
|
||||||
'think\\admin\\helper\\Helper' => __DIR__ . '/..' . '/zoujingli/think-library/src/helper/Helper.php',
|
|
||||||
'think\\admin\\helper\\PageHelper' => __DIR__ . '/..' . '/zoujingli/think-library/src/helper/PageHelper.php',
|
|
||||||
'think\\admin\\helper\\QueryHelper' => __DIR__ . '/..' . '/zoujingli/think-library/src/helper/QueryHelper.php',
|
|
||||||
'think\\admin\\helper\\SaveHelper' => __DIR__ . '/..' . '/zoujingli/think-library/src/helper/SaveHelper.php',
|
|
||||||
'think\\admin\\helper\\TokenHelper' => __DIR__ . '/..' . '/zoujingli/think-library/src/helper/TokenHelper.php',
|
|
||||||
'think\\admin\\plugs\\AdminPlugs' => __DIR__ . '/..' . '/zoujingli/think-library/src/plugs/AdminPlugs.php',
|
|
||||||
'think\\admin\\plugs\\Plugs' => __DIR__ . '/..' . '/zoujingli/think-library/src/plugs/Plugs.php',
|
|
||||||
'think\\admin\\queue\\ListenQueue' => __DIR__ . '/..' . '/zoujingli/think-library/src/queue/ListenQueue.php',
|
|
||||||
'think\\admin\\queue\\QueryQueue' => __DIR__ . '/..' . '/zoujingli/think-library/src/queue/QueryQueue.php',
|
|
||||||
'think\\admin\\queue\\StartQueue' => __DIR__ . '/..' . '/zoujingli/think-library/src/queue/StartQueue.php',
|
|
||||||
'think\\admin\\queue\\StateQueue' => __DIR__ . '/..' . '/zoujingli/think-library/src/queue/StateQueue.php',
|
|
||||||
'think\\admin\\queue\\StopQueue' => __DIR__ . '/..' . '/zoujingli/think-library/src/queue/StopQueue.php',
|
|
||||||
'think\\admin\\queue\\WorkQueue' => __DIR__ . '/..' . '/zoujingli/think-library/src/queue/WorkQueue.php',
|
|
||||||
'think\\admin\\storage\\LocalStorage' => __DIR__ . '/..' . '/zoujingli/think-library/src/storage/LocalStorage.php',
|
|
||||||
'think\\admin\\storage\\QiniuStorage' => __DIR__ . '/..' . '/zoujingli/think-library/src/storage/QiniuStorage.php',
|
|
||||||
'think\\app\\MultiApp' => __DIR__ . '/..' . '/topthink/think-multi-app/src/MultiApp.php',
|
|
||||||
'think\\app\\Service' => __DIR__ . '/..' . '/topthink/think-multi-app/src/Service.php',
|
|
||||||
'think\\app\\Url' => __DIR__ . '/..' . '/topthink/think-multi-app/src/Url.php',
|
|
||||||
'think\\app\\command\\Build' => __DIR__ . '/..' . '/topthink/think-multi-app/src/command/Build.php',
|
|
||||||
'think\\cache\\Driver' => __DIR__ . '/..' . '/topthink/framework/src/think/cache/Driver.php',
|
|
||||||
'think\\cache\\TagSet' => __DIR__ . '/..' . '/topthink/framework/src/think/cache/TagSet.php',
|
|
||||||
'think\\cache\\driver\\File' => __DIR__ . '/..' . '/topthink/framework/src/think/cache/driver/File.php',
|
|
||||||
'think\\cache\\driver\\Memcache' => __DIR__ . '/..' . '/topthink/framework/src/think/cache/driver/Memcache.php',
|
|
||||||
'think\\cache\\driver\\Memcached' => __DIR__ . '/..' . '/topthink/framework/src/think/cache/driver/Memcached.php',
|
|
||||||
'think\\cache\\driver\\Redis' => __DIR__ . '/..' . '/topthink/framework/src/think/cache/driver/Redis.php',
|
|
||||||
'think\\cache\\driver\\Wincache' => __DIR__ . '/..' . '/topthink/framework/src/think/cache/driver/Wincache.php',
|
|
||||||
'think\\console\\Command' => __DIR__ . '/..' . '/topthink/framework/src/think/console/Command.php',
|
|
||||||
'think\\console\\Input' => __DIR__ . '/..' . '/topthink/framework/src/think/console/Input.php',
|
|
||||||
'think\\console\\Output' => __DIR__ . '/..' . '/topthink/framework/src/think/console/Output.php',
|
|
||||||
'think\\console\\Table' => __DIR__ . '/..' . '/topthink/framework/src/think/console/Table.php',
|
|
||||||
'think\\console\\command\\Clear' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/Clear.php',
|
|
||||||
'think\\console\\command\\Help' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/Help.php',
|
|
||||||
'think\\console\\command\\Lists' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/Lists.php',
|
|
||||||
'think\\console\\command\\Make' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/Make.php',
|
|
||||||
'think\\console\\command\\RouteList' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/RouteList.php',
|
|
||||||
'think\\console\\command\\RunServer' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/RunServer.php',
|
|
||||||
'think\\console\\command\\ServiceDiscover' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/ServiceDiscover.php',
|
|
||||||
'think\\console\\command\\VendorPublish' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/VendorPublish.php',
|
|
||||||
'think\\console\\command\\Version' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/Version.php',
|
|
||||||
'think\\console\\command\\make\\Command' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Command.php',
|
|
||||||
'think\\console\\command\\make\\Controller' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Controller.php',
|
|
||||||
'think\\console\\command\\make\\Event' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Event.php',
|
|
||||||
'think\\console\\command\\make\\Listener' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Listener.php',
|
|
||||||
'think\\console\\command\\make\\Middleware' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Middleware.php',
|
|
||||||
'think\\console\\command\\make\\Model' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Model.php',
|
|
||||||
'think\\console\\command\\make\\Service' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Service.php',
|
|
||||||
'think\\console\\command\\make\\Subscribe' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Subscribe.php',
|
|
||||||
'think\\console\\command\\make\\Validate' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Validate.php',
|
|
||||||
'think\\console\\command\\optimize\\Route' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/optimize/Route.php',
|
|
||||||
'think\\console\\command\\optimize\\Schema' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/optimize/Schema.php',
|
|
||||||
'think\\console\\input\\Argument' => __DIR__ . '/..' . '/topthink/framework/src/think/console/input/Argument.php',
|
|
||||||
'think\\console\\input\\Definition' => __DIR__ . '/..' . '/topthink/framework/src/think/console/input/Definition.php',
|
|
||||||
'think\\console\\input\\Option' => __DIR__ . '/..' . '/topthink/framework/src/think/console/input/Option.php',
|
|
||||||
'think\\console\\output\\Ask' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/Ask.php',
|
|
||||||
'think\\console\\output\\Descriptor' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/Descriptor.php',
|
|
||||||
'think\\console\\output\\Formatter' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/Formatter.php',
|
|
||||||
'think\\console\\output\\Question' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/Question.php',
|
|
||||||
'think\\console\\output\\descriptor\\Console' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/descriptor/Console.php',
|
|
||||||
'think\\console\\output\\driver\\Buffer' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/driver/Buffer.php',
|
|
||||||
'think\\console\\output\\driver\\Console' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/driver/Console.php',
|
|
||||||
'think\\console\\output\\driver\\Nothing' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/driver/Nothing.php',
|
|
||||||
'think\\console\\output\\formatter\\Stack' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/formatter/Stack.php',
|
|
||||||
'think\\console\\output\\formatter\\Style' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/formatter/Style.php',
|
|
||||||
'think\\console\\output\\question\\Choice' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/question/Choice.php',
|
|
||||||
'think\\console\\output\\question\\Confirmation' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/question/Confirmation.php',
|
|
||||||
'think\\contract\\Arrayable' => __DIR__ . '/..' . '/topthink/think-helper/src/contract/Arrayable.php',
|
|
||||||
'think\\contract\\CacheHandlerInterface' => __DIR__ . '/..' . '/topthink/framework/src/think/contract/CacheHandlerInterface.php',
|
|
||||||
'think\\contract\\Jsonable' => __DIR__ . '/..' . '/topthink/think-helper/src/contract/Jsonable.php',
|
|
||||||
'think\\contract\\LogHandlerInterface' => __DIR__ . '/..' . '/topthink/framework/src/think/contract/LogHandlerInterface.php',
|
|
||||||
'think\\contract\\ModelRelationInterface' => __DIR__ . '/..' . '/topthink/framework/src/think/contract/ModelRelationInterface.php',
|
|
||||||
'think\\contract\\SessionHandlerInterface' => __DIR__ . '/..' . '/topthink/framework/src/think/contract/SessionHandlerInterface.php',
|
|
||||||
'think\\contract\\TemplateHandlerInterface' => __DIR__ . '/..' . '/topthink/framework/src/think/contract/TemplateHandlerInterface.php',
|
|
||||||
'think\\db\\BaseQuery' => __DIR__ . '/..' . '/topthink/think-orm/src/db/BaseQuery.php',
|
|
||||||
'think\\db\\Builder' => __DIR__ . '/..' . '/topthink/think-orm/src/db/Builder.php',
|
|
||||||
'think\\db\\CacheItem' => __DIR__ . '/..' . '/topthink/think-orm/src/db/CacheItem.php',
|
|
||||||
'think\\db\\Connection' => __DIR__ . '/..' . '/topthink/think-orm/src/db/Connection.php',
|
|
||||||
'think\\db\\ConnectionInterface' => __DIR__ . '/..' . '/topthink/think-orm/src/db/ConnectionInterface.php',
|
|
||||||
'think\\db\\Fetch' => __DIR__ . '/..' . '/topthink/think-orm/src/db/Fetch.php',
|
|
||||||
'think\\db\\Mongo' => __DIR__ . '/..' . '/topthink/think-orm/src/db/Mongo.php',
|
|
||||||
'think\\db\\PDOConnection' => __DIR__ . '/..' . '/topthink/think-orm/src/db/PDOConnection.php',
|
|
||||||
'think\\db\\Query' => __DIR__ . '/..' . '/topthink/think-orm/src/db/Query.php',
|
|
||||||
'think\\db\\Raw' => __DIR__ . '/..' . '/topthink/think-orm/src/db/Raw.php',
|
|
||||||
'think\\db\\Where' => __DIR__ . '/..' . '/topthink/think-orm/src/db/Where.php',
|
|
||||||
'think\\db\\builder\\Mongo' => __DIR__ . '/..' . '/topthink/think-orm/src/db/builder/Mongo.php',
|
|
||||||
'think\\db\\builder\\Mysql' => __DIR__ . '/..' . '/topthink/think-orm/src/db/builder/Mysql.php',
|
|
||||||
'think\\db\\builder\\Oracle' => __DIR__ . '/..' . '/topthink/think-orm/src/db/builder/Oracle.php',
|
|
||||||
'think\\db\\builder\\Pgsql' => __DIR__ . '/..' . '/topthink/think-orm/src/db/builder/Pgsql.php',
|
|
||||||
'think\\db\\builder\\Sqlite' => __DIR__ . '/..' . '/topthink/think-orm/src/db/builder/Sqlite.php',
|
|
||||||
'think\\db\\builder\\Sqlsrv' => __DIR__ . '/..' . '/topthink/think-orm/src/db/builder/Sqlsrv.php',
|
|
||||||
'think\\db\\concern\\AggregateQuery' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/AggregateQuery.php',
|
|
||||||
'think\\db\\concern\\JoinAndViewQuery' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/JoinAndViewQuery.php',
|
|
||||||
'think\\db\\concern\\ModelRelationQuery' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/ModelRelationQuery.php',
|
|
||||||
'think\\db\\concern\\ParamsBind' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/ParamsBind.php',
|
|
||||||
'think\\db\\concern\\ResultOperation' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/ResultOperation.php',
|
|
||||||
'think\\db\\concern\\TableFieldInfo' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/TableFieldInfo.php',
|
|
||||||
'think\\db\\concern\\TimeFieldQuery' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/TimeFieldQuery.php',
|
|
||||||
'think\\db\\concern\\Transaction' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/Transaction.php',
|
|
||||||
'think\\db\\concern\\WhereQuery' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/WhereQuery.php',
|
|
||||||
'think\\db\\connector\\Mongo' => __DIR__ . '/..' . '/topthink/think-orm/src/db/connector/Mongo.php',
|
|
||||||
'think\\db\\connector\\Mysql' => __DIR__ . '/..' . '/topthink/think-orm/src/db/connector/Mysql.php',
|
|
||||||
'think\\db\\connector\\Oracle' => __DIR__ . '/..' . '/topthink/think-orm/src/db/connector/Oracle.php',
|
|
||||||
'think\\db\\connector\\Pgsql' => __DIR__ . '/..' . '/topthink/think-orm/src/db/connector/Pgsql.php',
|
|
||||||
'think\\db\\connector\\Sqlite' => __DIR__ . '/..' . '/topthink/think-orm/src/db/connector/Sqlite.php',
|
|
||||||
'think\\db\\connector\\Sqlsrv' => __DIR__ . '/..' . '/topthink/think-orm/src/db/connector/Sqlsrv.php',
|
|
||||||
'think\\db\\exception\\BindParamException' => __DIR__ . '/..' . '/topthink/think-orm/src/db/exception/BindParamException.php',
|
|
||||||
'think\\db\\exception\\DataNotFoundException' => __DIR__ . '/..' . '/topthink/think-orm/src/db/exception/DataNotFoundException.php',
|
|
||||||
'think\\db\\exception\\DbException' => __DIR__ . '/..' . '/topthink/think-orm/src/db/exception/DbException.php',
|
|
||||||
'think\\db\\exception\\InvalidArgumentException' => __DIR__ . '/..' . '/topthink/think-orm/src/db/exception/InvalidArgumentException.php',
|
|
||||||
'think\\db\\exception\\ModelEventException' => __DIR__ . '/..' . '/topthink/think-orm/src/db/exception/ModelEventException.php',
|
|
||||||
'think\\db\\exception\\ModelNotFoundException' => __DIR__ . '/..' . '/topthink/think-orm/src/db/exception/ModelNotFoundException.php',
|
|
||||||
'think\\db\\exception\\PDOException' => __DIR__ . '/..' . '/topthink/think-orm/src/db/exception/PDOException.php',
|
|
||||||
'think\\event\\AppInit' => __DIR__ . '/..' . '/topthink/framework/src/think/event/AppInit.php',
|
|
||||||
'think\\event\\HttpEnd' => __DIR__ . '/..' . '/topthink/framework/src/think/event/HttpEnd.php',
|
|
||||||
'think\\event\\HttpRun' => __DIR__ . '/..' . '/topthink/framework/src/think/event/HttpRun.php',
|
|
||||||
'think\\event\\LogWrite' => __DIR__ . '/..' . '/topthink/framework/src/think/event/LogWrite.php',
|
|
||||||
'think\\event\\RouteLoaded' => __DIR__ . '/..' . '/topthink/framework/src/think/event/RouteLoaded.php',
|
|
||||||
'think\\exception\\ClassNotFoundException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/ClassNotFoundException.php',
|
|
||||||
'think\\exception\\ErrorException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/ErrorException.php',
|
|
||||||
'think\\exception\\FileException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/FileException.php',
|
|
||||||
'think\\exception\\FuncNotFoundException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/FuncNotFoundException.php',
|
|
||||||
'think\\exception\\Handle' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/Handle.php',
|
|
||||||
'think\\exception\\HttpException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/HttpException.php',
|
|
||||||
'think\\exception\\HttpResponseException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/HttpResponseException.php',
|
|
||||||
'think\\exception\\InvalidArgumentException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/InvalidArgumentException.php',
|
|
||||||
'think\\exception\\RouteNotFoundException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/RouteNotFoundException.php',
|
|
||||||
'think\\exception\\ValidateException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/ValidateException.php',
|
|
||||||
'think\\facade\\App' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/App.php',
|
|
||||||
'think\\facade\\Cache' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Cache.php',
|
|
||||||
'think\\facade\\Config' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Config.php',
|
|
||||||
'think\\facade\\Console' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Console.php',
|
|
||||||
'think\\facade\\Cookie' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Cookie.php',
|
|
||||||
'think\\facade\\Db' => __DIR__ . '/..' . '/topthink/think-orm/src/facade/Db.php',
|
|
||||||
'think\\facade\\Env' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Env.php',
|
|
||||||
'think\\facade\\Event' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Event.php',
|
|
||||||
'think\\facade\\Facade' => __DIR__ . '/..' . '/topthink/think-orm/src/facade/Db.php',
|
|
||||||
'think\\facade\\Filesystem' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Filesystem.php',
|
|
||||||
'think\\facade\\Lang' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Lang.php',
|
|
||||||
'think\\facade\\Log' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Log.php',
|
|
||||||
'think\\facade\\Middleware' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Middleware.php',
|
|
||||||
'think\\facade\\Request' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Request.php',
|
|
||||||
'think\\facade\\Route' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Route.php',
|
|
||||||
'think\\facade\\Session' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Session.php',
|
|
||||||
'think\\facade\\Template' => __DIR__ . '/..' . '/topthink/think-template/src/facade/Template.php',
|
|
||||||
'think\\facade\\Validate' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Validate.php',
|
|
||||||
'think\\facade\\View' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/View.php',
|
|
||||||
'think\\file\\UploadedFile' => __DIR__ . '/..' . '/topthink/framework/src/think/file/UploadedFile.php',
|
|
||||||
'think\\filesystem\\CacheStore' => __DIR__ . '/..' . '/topthink/framework/src/think/filesystem/CacheStore.php',
|
|
||||||
'think\\filesystem\\Driver' => __DIR__ . '/..' . '/topthink/framework/src/think/filesystem/Driver.php',
|
|
||||||
'think\\filesystem\\driver\\Local' => __DIR__ . '/..' . '/topthink/framework/src/think/filesystem/driver/Local.php',
|
|
||||||
'think\\helper\\Arr' => __DIR__ . '/..' . '/topthink/think-helper/src/helper/Arr.php',
|
|
||||||
'think\\helper\\Str' => __DIR__ . '/..' . '/topthink/think-helper/src/helper/Str.php',
|
|
||||||
'think\\initializer\\BootService' => __DIR__ . '/..' . '/topthink/framework/src/think/initializer/BootService.php',
|
|
||||||
'think\\initializer\\Error' => __DIR__ . '/..' . '/topthink/framework/src/think/initializer/Error.php',
|
|
||||||
'think\\initializer\\RegisterService' => __DIR__ . '/..' . '/topthink/framework/src/think/initializer/RegisterService.php',
|
|
||||||
'think\\log\\Channel' => __DIR__ . '/..' . '/topthink/framework/src/think/log/Channel.php',
|
|
||||||
'think\\log\\ChannelSet' => __DIR__ . '/..' . '/topthink/framework/src/think/log/ChannelSet.php',
|
|
||||||
'think\\log\\driver\\File' => __DIR__ . '/..' . '/topthink/framework/src/think/log/driver/File.php',
|
|
||||||
'think\\log\\driver\\Socket' => __DIR__ . '/..' . '/topthink/framework/src/think/log/driver/Socket.php',
|
|
||||||
'think\\middleware\\AllowCrossDomain' => __DIR__ . '/..' . '/topthink/framework/src/think/middleware/AllowCrossDomain.php',
|
|
||||||
'think\\middleware\\CheckRequestCache' => __DIR__ . '/..' . '/topthink/framework/src/think/middleware/CheckRequestCache.php',
|
|
||||||
'think\\middleware\\FormTokenCheck' => __DIR__ . '/..' . '/topthink/framework/src/think/middleware/FormTokenCheck.php',
|
|
||||||
'think\\middleware\\LoadLangPack' => __DIR__ . '/..' . '/topthink/framework/src/think/middleware/LoadLangPack.php',
|
|
||||||
'think\\middleware\\SessionInit' => __DIR__ . '/..' . '/topthink/framework/src/think/middleware/SessionInit.php',
|
|
||||||
'think\\model\\Collection' => __DIR__ . '/..' . '/topthink/think-orm/src/model/Collection.php',
|
|
||||||
'think\\model\\Pivot' => __DIR__ . '/..' . '/topthink/think-orm/src/model/Pivot.php',
|
|
||||||
'think\\model\\Relation' => __DIR__ . '/..' . '/topthink/think-orm/src/model/Relation.php',
|
|
||||||
'think\\model\\concern\\Attribute' => __DIR__ . '/..' . '/topthink/think-orm/src/model/concern/Attribute.php',
|
|
||||||
'think\\model\\concern\\Conversion' => __DIR__ . '/..' . '/topthink/think-orm/src/model/concern/Conversion.php',
|
|
||||||
'think\\model\\concern\\ModelEvent' => __DIR__ . '/..' . '/topthink/think-orm/src/model/concern/ModelEvent.php',
|
|
||||||
'think\\model\\concern\\OptimLock' => __DIR__ . '/..' . '/topthink/think-orm/src/model/concern/OptimLock.php',
|
|
||||||
'think\\model\\concern\\RelationShip' => __DIR__ . '/..' . '/topthink/think-orm/src/model/concern/RelationShip.php',
|
|
||||||
'think\\model\\concern\\SoftDelete' => __DIR__ . '/..' . '/topthink/think-orm/src/model/concern/SoftDelete.php',
|
|
||||||
'think\\model\\concern\\TimeStamp' => __DIR__ . '/..' . '/topthink/think-orm/src/model/concern/TimeStamp.php',
|
|
||||||
'think\\model\\relation\\BelongsTo' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/BelongsTo.php',
|
|
||||||
'think\\model\\relation\\BelongsToMany' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/BelongsToMany.php',
|
|
||||||
'think\\model\\relation\\HasMany' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/HasMany.php',
|
|
||||||
'think\\model\\relation\\HasManyThrough' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/HasManyThrough.php',
|
|
||||||
'think\\model\\relation\\HasOne' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/HasOne.php',
|
|
||||||
'think\\model\\relation\\HasOneThrough' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/HasOneThrough.php',
|
|
||||||
'think\\model\\relation\\MorphMany' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/MorphMany.php',
|
|
||||||
'think\\model\\relation\\MorphOne' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/MorphOne.php',
|
|
||||||
'think\\model\\relation\\MorphTo' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/MorphTo.php',
|
|
||||||
'think\\model\\relation\\OneToOne' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/OneToOne.php',
|
|
||||||
'think\\paginator\\driver\\Bootstrap' => __DIR__ . '/..' . '/topthink/think-orm/src/paginator/driver/Bootstrap.php',
|
|
||||||
'think\\response\\File' => __DIR__ . '/..' . '/topthink/framework/src/think/response/File.php',
|
|
||||||
'think\\response\\Html' => __DIR__ . '/..' . '/topthink/framework/src/think/response/Html.php',
|
|
||||||
'think\\response\\Json' => __DIR__ . '/..' . '/topthink/framework/src/think/response/Json.php',
|
|
||||||
'think\\response\\Jsonp' => __DIR__ . '/..' . '/topthink/framework/src/think/response/Jsonp.php',
|
|
||||||
'think\\response\\Redirect' => __DIR__ . '/..' . '/topthink/framework/src/think/response/Redirect.php',
|
|
||||||
'think\\response\\View' => __DIR__ . '/..' . '/topthink/framework/src/think/response/View.php',
|
|
||||||
'think\\response\\Xml' => __DIR__ . '/..' . '/topthink/framework/src/think/response/Xml.php',
|
|
||||||
'think\\route\\Dispatch' => __DIR__ . '/..' . '/topthink/framework/src/think/route/Dispatch.php',
|
|
||||||
'think\\route\\Domain' => __DIR__ . '/..' . '/topthink/framework/src/think/route/Domain.php',
|
|
||||||
'think\\route\\Resource' => __DIR__ . '/..' . '/topthink/framework/src/think/route/Resource.php',
|
|
||||||
'think\\route\\Rule' => __DIR__ . '/..' . '/topthink/framework/src/think/route/Rule.php',
|
|
||||||
'think\\route\\RuleGroup' => __DIR__ . '/..' . '/topthink/framework/src/think/route/RuleGroup.php',
|
|
||||||
'think\\route\\RuleItem' => __DIR__ . '/..' . '/topthink/framework/src/think/route/RuleItem.php',
|
|
||||||
'think\\route\\RuleName' => __DIR__ . '/..' . '/topthink/framework/src/think/route/RuleName.php',
|
|
||||||
'think\\route\\Url' => __DIR__ . '/..' . '/topthink/framework/src/think/route/Url.php',
|
|
||||||
'think\\route\\dispatch\\Callback' => __DIR__ . '/..' . '/topthink/framework/src/think/route/dispatch/Callback.php',
|
|
||||||
'think\\route\\dispatch\\Controller' => __DIR__ . '/..' . '/topthink/framework/src/think/route/dispatch/Controller.php',
|
|
||||||
'think\\route\\dispatch\\Redirect' => __DIR__ . '/..' . '/topthink/framework/src/think/route/dispatch/Redirect.php',
|
|
||||||
'think\\route\\dispatch\\Response' => __DIR__ . '/..' . '/topthink/framework/src/think/route/dispatch/Response.php',
|
|
||||||
'think\\route\\dispatch\\Url' => __DIR__ . '/..' . '/topthink/framework/src/think/route/dispatch/Url.php',
|
|
||||||
'think\\route\\dispatch\\View' => __DIR__ . '/..' . '/topthink/framework/src/think/route/dispatch/View.php',
|
|
||||||
'think\\service\\ModelService' => __DIR__ . '/..' . '/topthink/framework/src/think/service/ModelService.php',
|
|
||||||
'think\\service\\PaginatorService' => __DIR__ . '/..' . '/topthink/framework/src/think/service/PaginatorService.php',
|
|
||||||
'think\\service\\ValidateService' => __DIR__ . '/..' . '/topthink/framework/src/think/service/ValidateService.php',
|
|
||||||
'think\\session\\Store' => __DIR__ . '/..' . '/topthink/framework/src/think/session/Store.php',
|
|
||||||
'think\\session\\driver\\Cache' => __DIR__ . '/..' . '/topthink/framework/src/think/session/driver/Cache.php',
|
|
||||||
'think\\session\\driver\\File' => __DIR__ . '/..' . '/topthink/framework/src/think/session/driver/File.php',
|
|
||||||
'think\\template\\TagLib' => __DIR__ . '/..' . '/topthink/think-template/src/template/TagLib.php',
|
|
||||||
'think\\template\\driver\\File' => __DIR__ . '/..' . '/topthink/think-template/src/template/driver/File.php',
|
|
||||||
'think\\template\\exception\\TemplateNotFoundException' => __DIR__ . '/..' . '/topthink/think-template/src/template/exception/TemplateNotFoundException.php',
|
|
||||||
'think\\template\\taglib\\Cx' => __DIR__ . '/..' . '/topthink/think-template/src/template/taglib/Cx.php',
|
|
||||||
'think\\validate\\ValidateRule' => __DIR__ . '/..' . '/topthink/framework/src/think/validate/ValidateRule.php',
|
|
||||||
'think\\view\\driver\\Php' => __DIR__ . '/..' . '/topthink/framework/src/think/view/driver/Php.php',
|
|
||||||
'think\\view\\driver\\Think' => __DIR__ . '/..' . '/topthink/think-view/src/Think.php',
|
|
||||||
);
|
|
||||||
|
|
||||||
public static function getInitializer(ClassLoader $loader)
|
|
||||||
{
|
|
||||||
return \Closure::bind(function () use ($loader) {
|
|
||||||
$loader->prefixLengthsPsr4 = ComposerStaticInitbaef8a191be4ee8c4809e47d0e71601b::$prefixLengthsPsr4;
|
|
||||||
$loader->prefixDirsPsr4 = ComposerStaticInitbaef8a191be4ee8c4809e47d0e71601b::$prefixDirsPsr4;
|
|
||||||
$loader->classMap = ComposerStaticInitbaef8a191be4ee8c4809e47d0e71601b::$classMap;
|
|
||||||
|
|
||||||
}, null, ClassLoader::class);
|
|
||||||
}
|
|
||||||
}
|
|
2
vendor/zoujingli/ip2region/.gitignore
vendored
2
vendor/zoujingli/ip2region/.gitignore
vendored
@ -1,2 +0,0 @@
|
|||||||
# Created by .ignore support plugin (hsz.mobi)
|
|
||||||
/.idea
|
|
343
vendor/zoujingli/ip2region/Ip2Region.php
vendored
343
vendor/zoujingli/ip2region/Ip2Region.php
vendored
@ -1,343 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* ip2region php seacher client class
|
|
||||||
*
|
|
||||||
* @author chenxin<chenxin619315@gmail.com>
|
|
||||||
* @date 2015-10-29
|
|
||||||
*/
|
|
||||||
|
|
||||||
defined('INDEX_BLOCK_LENGTH') or define('INDEX_BLOCK_LENGTH', 12);
|
|
||||||
defined('TOTAL_HEADER_LENGTH') or define('TOTAL_HEADER_LENGTH', 8192);
|
|
||||||
|
|
||||||
class Ip2Region
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* db file handler
|
|
||||||
*/
|
|
||||||
private $dbFileHandler = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* header block info
|
|
||||||
*/
|
|
||||||
private $HeaderSip = null;
|
|
||||||
private $HeaderPtr = null;
|
|
||||||
private $headerLen = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* super block index info
|
|
||||||
*/
|
|
||||||
private $firstIndexPtr = 0;
|
|
||||||
private $lastIndexPtr = 0;
|
|
||||||
private $totalBlocks = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* for memory mode only
|
|
||||||
* the original db binary string
|
|
||||||
*/
|
|
||||||
private $dbBinStr = null;
|
|
||||||
private $dbFile = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* construct method
|
|
||||||
*
|
|
||||||
* @param string ip2regionFile
|
|
||||||
*/
|
|
||||||
public function __construct($ip2regionFile = null)
|
|
||||||
{
|
|
||||||
$this->dbFile = is_null($ip2regionFile) ? __DIR__ . '/ip2region.db' : $ip2regionFile;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* all the db binary string will be loaded into memory
|
|
||||||
* then search the memory only and this will a lot faster than disk base search
|
|
||||||
* @Note:
|
|
||||||
* invoke it once before put it to public invoke could make it thread safe
|
|
||||||
*
|
|
||||||
* @param string $ip
|
|
||||||
* @return array|null
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public function memorySearch($ip)
|
|
||||||
{
|
|
||||||
//check and load the binary string for the first time
|
|
||||||
if ($this->dbBinStr == null) {
|
|
||||||
$this->dbBinStr = file_get_contents($this->dbFile);
|
|
||||||
if ($this->dbBinStr == false) {
|
|
||||||
throw new Exception("Fail to open the db file {$this->dbFile}");
|
|
||||||
}
|
|
||||||
$this->firstIndexPtr = self::getLong($this->dbBinStr, 0);
|
|
||||||
$this->lastIndexPtr = self::getLong($this->dbBinStr, 4);
|
|
||||||
$this->totalBlocks = ($this->lastIndexPtr - $this->firstIndexPtr) / INDEX_BLOCK_LENGTH + 1;
|
|
||||||
}
|
|
||||||
if (is_string($ip)) $ip = self::safeIp2long($ip);
|
|
||||||
//binary search to define the data
|
|
||||||
$l = 0;
|
|
||||||
$h = $this->totalBlocks;
|
|
||||||
$dataPtr = 0;
|
|
||||||
while ($l <= $h) {
|
|
||||||
$m = (($l + $h) >> 1);
|
|
||||||
$p = $this->firstIndexPtr + $m * INDEX_BLOCK_LENGTH;
|
|
||||||
$sip = self::getLong($this->dbBinStr, $p);
|
|
||||||
if ($ip < $sip) {
|
|
||||||
$h = $m - 1;
|
|
||||||
} else {
|
|
||||||
$eip = self::getLong($this->dbBinStr, $p + 4);
|
|
||||||
if ($ip > $eip) {
|
|
||||||
$l = $m + 1;
|
|
||||||
} else {
|
|
||||||
$dataPtr = self::getLong($this->dbBinStr, $p + 8);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//not matched just stop it here
|
|
||||||
if ($dataPtr == 0) return null;
|
|
||||||
//get the data
|
|
||||||
$dataLen = (($dataPtr >> 24) & 0xFF);
|
|
||||||
$dataPtr = ($dataPtr & 0x00FFFFFF);
|
|
||||||
return array(
|
|
||||||
'city_id' => self::getLong($this->dbBinStr, $dataPtr),
|
|
||||||
'region' => substr($this->dbBinStr, $dataPtr + 4, $dataLen - 4),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* get the data block through the specified ip address or long ip numeric with binary search algorithm
|
|
||||||
*
|
|
||||||
* @param string ip
|
|
||||||
* @return mixed Array or NULL for any error
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public function binarySearch($ip)
|
|
||||||
{
|
|
||||||
//check and conver the ip address
|
|
||||||
if (is_string($ip)) $ip = self::safeIp2long($ip);
|
|
||||||
if ($this->totalBlocks == 0) {
|
|
||||||
//check and open the original db file
|
|
||||||
if ($this->dbFileHandler == null) {
|
|
||||||
$this->dbFileHandler = fopen($this->dbFile, 'r');
|
|
||||||
if ($this->dbFileHandler == false) {
|
|
||||||
throw new Exception("Fail to open the db file {$this->dbFile}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fseek($this->dbFileHandler, 0);
|
|
||||||
$superBlock = fread($this->dbFileHandler, 8);
|
|
||||||
$this->firstIndexPtr = self::getLong($superBlock, 0);
|
|
||||||
$this->lastIndexPtr = self::getLong($superBlock, 4);
|
|
||||||
$this->totalBlocks = ($this->lastIndexPtr - $this->firstIndexPtr) / INDEX_BLOCK_LENGTH + 1;
|
|
||||||
}
|
|
||||||
//binary search to define the data
|
|
||||||
$l = 0;
|
|
||||||
$h = $this->totalBlocks;
|
|
||||||
$dataPtr = 0;
|
|
||||||
while ($l <= $h) {
|
|
||||||
$m = (($l + $h) >> 1);
|
|
||||||
$p = $m * INDEX_BLOCK_LENGTH;
|
|
||||||
fseek($this->dbFileHandler, $this->firstIndexPtr + $p);
|
|
||||||
$buffer = fread($this->dbFileHandler, INDEX_BLOCK_LENGTH);
|
|
||||||
$sip = self::getLong($buffer, 0);
|
|
||||||
if ($ip < $sip) {
|
|
||||||
$h = $m - 1;
|
|
||||||
} else {
|
|
||||||
$eip = self::getLong($buffer, 4);
|
|
||||||
if ($ip > $eip) {
|
|
||||||
$l = $m + 1;
|
|
||||||
} else {
|
|
||||||
$dataPtr = self::getLong($buffer, 8);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//not matched just stop it here
|
|
||||||
if ($dataPtr == 0) return null;
|
|
||||||
//get the data
|
|
||||||
$dataLen = (($dataPtr >> 24) & 0xFF);
|
|
||||||
$dataPtr = ($dataPtr & 0x00FFFFFF);
|
|
||||||
fseek($this->dbFileHandler, $dataPtr);
|
|
||||||
$data = fread($this->dbFileHandler, $dataLen);
|
|
||||||
return array(
|
|
||||||
'city_id' => self::getLong($data, 0),
|
|
||||||
'region' => substr($data, 4),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* get the data block associated with the specified ip with b-tree search algorithm
|
|
||||||
* @Note: not thread safe
|
|
||||||
*
|
|
||||||
* @param string ip
|
|
||||||
* @return Mixed Array for NULL for any error
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public function btreeSearch($ip)
|
|
||||||
{
|
|
||||||
if (is_string($ip)) $ip = self::safeIp2long($ip);
|
|
||||||
//check and load the header
|
|
||||||
if ($this->HeaderSip == null) {
|
|
||||||
//check and open the original db file
|
|
||||||
if ($this->dbFileHandler == null) {
|
|
||||||
$this->dbFileHandler = fopen($this->dbFile, 'r');
|
|
||||||
if ($this->dbFileHandler == false) {
|
|
||||||
throw new Exception("Fail to open the db file {$this->dbFile}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fseek($this->dbFileHandler, 8);
|
|
||||||
$buffer = fread($this->dbFileHandler, TOTAL_HEADER_LENGTH);
|
|
||||||
|
|
||||||
//fill the header
|
|
||||||
$idx = 0;
|
|
||||||
$this->HeaderSip = array();
|
|
||||||
$this->HeaderPtr = array();
|
|
||||||
for ($i = 0; $i < TOTAL_HEADER_LENGTH; $i += 8) {
|
|
||||||
$startIp = self::getLong($buffer, $i);
|
|
||||||
$dataPtr = self::getLong($buffer, $i + 4);
|
|
||||||
if ($dataPtr == 0) break;
|
|
||||||
$this->HeaderSip[] = $startIp;
|
|
||||||
$this->HeaderPtr[] = $dataPtr;
|
|
||||||
$idx++;
|
|
||||||
}
|
|
||||||
$this->headerLen = $idx;
|
|
||||||
}
|
|
||||||
|
|
||||||
//1. define the index block with the binary search
|
|
||||||
$l = 0;
|
|
||||||
$h = $this->headerLen;
|
|
||||||
$sptr = 0;
|
|
||||||
$eptr = 0;
|
|
||||||
while ($l <= $h) {
|
|
||||||
$m = (($l + $h) >> 1);
|
|
||||||
|
|
||||||
//perfetc matched, just return it
|
|
||||||
if ($ip == $this->HeaderSip[$m]) {
|
|
||||||
if ($m > 0) {
|
|
||||||
$sptr = $this->HeaderPtr[$m - 1];
|
|
||||||
$eptr = $this->HeaderPtr[$m];
|
|
||||||
} else {
|
|
||||||
$sptr = $this->HeaderPtr[$m];
|
|
||||||
$eptr = $this->HeaderPtr[$m + 1];
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//less then the middle value
|
|
||||||
if ($ip < $this->HeaderSip[$m]) {
|
|
||||||
if ($m == 0) {
|
|
||||||
$sptr = $this->HeaderPtr[$m];
|
|
||||||
$eptr = $this->HeaderPtr[$m + 1];
|
|
||||||
break;
|
|
||||||
} elseif ($ip > $this->HeaderSip[$m - 1]) {
|
|
||||||
$sptr = $this->HeaderPtr[$m - 1];
|
|
||||||
$eptr = $this->HeaderPtr[$m];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
$h = $m - 1;
|
|
||||||
} else {
|
|
||||||
if ($m == $this->headerLen - 1) {
|
|
||||||
$sptr = $this->HeaderPtr[$m - 1];
|
|
||||||
$eptr = $this->HeaderPtr[$m];
|
|
||||||
break;
|
|
||||||
} elseif ($ip <= $this->HeaderSip[$m + 1]) {
|
|
||||||
$sptr = $this->HeaderPtr[$m];
|
|
||||||
$eptr = $this->HeaderPtr[$m + 1];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
$l = $m + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//match nothing just stop it
|
|
||||||
if ($sptr == 0) return null;
|
|
||||||
|
|
||||||
//2. search the index blocks to define the data
|
|
||||||
$blockLen = $eptr - $sptr;
|
|
||||||
fseek($this->dbFileHandler, $sptr);
|
|
||||||
$index = fread($this->dbFileHandler, $blockLen + INDEX_BLOCK_LENGTH);
|
|
||||||
|
|
||||||
$dataPtr = 0;
|
|
||||||
$l = 0;
|
|
||||||
$h = $blockLen / INDEX_BLOCK_LENGTH;
|
|
||||||
while ($l <= $h) {
|
|
||||||
$m = (($l + $h) >> 1);
|
|
||||||
$p = (int)($m * INDEX_BLOCK_LENGTH);
|
|
||||||
$sip = self::getLong($index, $p);
|
|
||||||
if ($ip < $sip) {
|
|
||||||
$h = $m - 1;
|
|
||||||
} else {
|
|
||||||
$eip = self::getLong($index, $p + 4);
|
|
||||||
if ($ip > $eip) {
|
|
||||||
$l = $m + 1;
|
|
||||||
} else {
|
|
||||||
$dataPtr = self::getLong($index, $p + 8);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//not matched
|
|
||||||
if ($dataPtr == 0) return null;
|
|
||||||
|
|
||||||
//3. get the data
|
|
||||||
$dataLen = (($dataPtr >> 24) & 0xFF);
|
|
||||||
$dataPtr = ($dataPtr & 0x00FFFFFF);
|
|
||||||
|
|
||||||
fseek($this->dbFileHandler, $dataPtr);
|
|
||||||
$data = fread($this->dbFileHandler, $dataLen);
|
|
||||||
return array(
|
|
||||||
'city_id' => self::getLong($data, 0),
|
|
||||||
'region' => substr($data, 4),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* safe self::safeIp2long function
|
|
||||||
*
|
|
||||||
* @param string ip
|
|
||||||
*
|
|
||||||
* @return false|int|string
|
|
||||||
*/
|
|
||||||
public static function safeIp2long($ip)
|
|
||||||
{
|
|
||||||
$ip = ip2long($ip);
|
|
||||||
// convert signed int to unsigned int if on 32 bit operating system
|
|
||||||
if ($ip < 0 && PHP_INT_SIZE == 4) {
|
|
||||||
$ip = sprintf("%u", $ip);
|
|
||||||
}
|
|
||||||
return $ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* read a long from a byte buffer
|
|
||||||
*
|
|
||||||
* @param string b
|
|
||||||
* @param integer offset
|
|
||||||
* @return int|string
|
|
||||||
*/
|
|
||||||
public static function getLong($b, $offset)
|
|
||||||
{
|
|
||||||
$val = (
|
|
||||||
(ord($b[$offset++])) |
|
|
||||||
(ord($b[$offset++]) << 8) |
|
|
||||||
(ord($b[$offset++]) << 16) |
|
|
||||||
(ord($b[$offset]) << 24)
|
|
||||||
);
|
|
||||||
// convert signed int to unsigned int if on 32 bit operating system
|
|
||||||
if ($val < 0 && PHP_INT_SIZE == 4) {
|
|
||||||
$val = sprintf("%u", $val);
|
|
||||||
}
|
|
||||||
return $val;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* destruct method, resource destroy
|
|
||||||
*/
|
|
||||||
public function __destruct()
|
|
||||||
{
|
|
||||||
if ($this->dbFileHandler != null) {
|
|
||||||
fclose($this->dbFileHandler);
|
|
||||||
}
|
|
||||||
$this->dbBinStr = null;
|
|
||||||
$this->HeaderSip = null;
|
|
||||||
$this->HeaderPtr = null;
|
|
||||||
}
|
|
||||||
}
|
|
225
vendor/zoujingli/ip2region/LICENSE.md
vendored
225
vendor/zoujingli/ip2region/LICENSE.md
vendored
@ -1,225 +0,0 @@
|
|||||||
Apache License
|
|
||||||
Version 2.0, January 2004
|
|
||||||
http://www.apache.org/licenses/
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
||||||
|
|
||||||
1. Definitions.
|
|
||||||
|
|
||||||
"License" shall mean the terms and conditions for use, reproduction,
|
|
||||||
and distribution as defined by Sections 1 through 9 of this document.
|
|
||||||
|
|
||||||
"Licensor" shall mean the copyright owner or entity authorized by
|
|
||||||
the copyright owner that is granting the License.
|
|
||||||
|
|
||||||
"Legal Entity" shall mean the union of the acting entity and all
|
|
||||||
other entities that control, are controlled by, or are under common
|
|
||||||
control with that entity. For the purposes of this definition,
|
|
||||||
"control" means (i) the power, direct or indirect, to cause the
|
|
||||||
direction or management of such entity, whether by contract or
|
|
||||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
||||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
||||||
|
|
||||||
"You" (or "Your") shall mean an individual or Legal Entity
|
|
||||||
exercising permissions granted by this License.
|
|
||||||
|
|
||||||
"Source" form shall mean the preferred form for making modifications,
|
|
||||||
including but not limited to software source code, documentation
|
|
||||||
source, and configuration files.
|
|
||||||
|
|
||||||
"Object" form shall mean any form resulting from mechanical
|
|
||||||
transformation or translation of a Source form, including but
|
|
||||||
not limited to compiled object code, generated documentation,
|
|
||||||
and conversions to other media types.
|
|
||||||
|
|
||||||
"Work" shall mean the work of authorship, whether in Source or
|
|
||||||
Object form, made available under the License, as indicated by a
|
|
||||||
copyright notice that is included in or attached to the work
|
|
||||||
(an example is provided in the Appendix below).
|
|
||||||
|
|
||||||
"Derivative Works" shall mean any work, whether in Source or Object
|
|
||||||
form, that is based on (or derived from) the Work and for which the
|
|
||||||
editorial revisions, annotations, elaborations, or other modifications
|
|
||||||
represent, as a whole, an original work of authorship. For the purposes
|
|
||||||
of this License, Derivative Works shall not include works that remain
|
|
||||||
separable from, or merely link (or bind by name) to the interfaces of,
|
|
||||||
the Work and Derivative Works thereof.
|
|
||||||
|
|
||||||
"Contribution" shall mean any work of authorship, including
|
|
||||||
the original version of the Work and any modifications or additions
|
|
||||||
to that Work or Derivative Works thereof, that is intentionally
|
|
||||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
||||||
or by an individual or Legal Entity authorized to submit on behalf of
|
|
||||||
the copyright owner. For the purposes of this definition, "submitted"
|
|
||||||
means any form of electronic, verbal, or written communication sent
|
|
||||||
to the Licensor or its representatives, including but not limited to
|
|
||||||
communication on electronic mailing lists, source code control systems,
|
|
||||||
and issue tracking systems that are managed by, or on behalf of, the
|
|
||||||
Licensor for the purpose of discussing and improving the Work, but
|
|
||||||
excluding communication that is conspicuously marked or otherwise
|
|
||||||
designated in writing by the copyright owner as "Not a Contribution."
|
|
||||||
|
|
||||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
||||||
on behalf of whom a Contribution has been received by Licensor and
|
|
||||||
subsequently incorporated within the Work.
|
|
||||||
|
|
||||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
copyright license to reproduce, prepare Derivative Works of,
|
|
||||||
publicly display, publicly perform, sublicense, and distribute the
|
|
||||||
Work and such Derivative Works in Source or Object form.
|
|
||||||
|
|
||||||
3. Grant of Patent License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
(except as stated in this section) patent license to make, have made,
|
|
||||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
||||||
where such license applies only to those patent claims licensable
|
|
||||||
by such Contributor that are necessarily infringed by their
|
|
||||||
Contribution(s) alone or by combination of their Contribution(s)
|
|
||||||
with the Work to which such Contribution(s) was submitted. If You
|
|
||||||
institute patent litigation against any entity (including a
|
|
||||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
||||||
or a Contribution incorporated within the Work constitutes direct
|
|
||||||
or contributory patent infringement, then any patent licenses
|
|
||||||
granted to You under this License for that Work shall terminate
|
|
||||||
as of the date such litigation is filed.
|
|
||||||
|
|
||||||
4. Redistribution. You may reproduce and distribute copies of the
|
|
||||||
Work or Derivative Works thereof in any medium, with or without
|
|
||||||
modifications, and in Source or Object form, provided that You
|
|
||||||
meet the following conditions:
|
|
||||||
|
|
||||||
(a) You must give any other recipients of the Work or
|
|
||||||
Derivative Works a copy of this License; and
|
|
||||||
|
|
||||||
(b) You must cause any modified files to carry prominent notices
|
|
||||||
stating that You changed the files; and
|
|
||||||
|
|
||||||
(c) You must retain, in the Source form of any Derivative Works
|
|
||||||
that You distribute, all copyright, patent, trademark, and
|
|
||||||
attribution notices from the Source form of the Work,
|
|
||||||
excluding those notices that do not pertain to any part of
|
|
||||||
the Derivative Works; and
|
|
||||||
|
|
||||||
(d) If the Work includes a "NOTICE" text file as part of its
|
|
||||||
distribution, then any Derivative Works that You distribute must
|
|
||||||
include a readable copy of the attribution notices contained
|
|
||||||
within such NOTICE file, excluding those notices that do not
|
|
||||||
pertain to any part of the Derivative Works, in at least one
|
|
||||||
of the following places: within a NOTICE text file distributed
|
|
||||||
as part of the Derivative Works; within the Source form or
|
|
||||||
documentation, if provided along with the Derivative Works; or,
|
|
||||||
within a display generated by the Derivative Works, if and
|
|
||||||
wherever such third-party notices normally appear. The contents
|
|
||||||
of the NOTICE file are for informational purposes only and
|
|
||||||
do not modify the License. You may add Your own attribution
|
|
||||||
notices within Derivative Works that You distribute, alongside
|
|
||||||
or as an addendum to the NOTICE text from the Work, provided
|
|
||||||
that such additional attribution notices cannot be construed
|
|
||||||
as modifying the License.
|
|
||||||
|
|
||||||
You may add Your own copyright statement to Your modifications and
|
|
||||||
may provide additional or different license terms and conditions
|
|
||||||
for use, reproduction, or distribution of Your modifications, or
|
|
||||||
for any such Derivative Works as a whole, provided Your use,
|
|
||||||
reproduction, and distribution of the Work otherwise complies with
|
|
||||||
the conditions stated in this License.
|
|
||||||
|
|
||||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
||||||
any Contribution intentionally submitted for inclusion in the Work
|
|
||||||
by You to the Licensor shall be under the terms and conditions of
|
|
||||||
this License, without any additional terms or conditions.
|
|
||||||
Notwithstanding the above, nothing herein shall supersede or modify
|
|
||||||
the terms of any separate license agreement you may have executed
|
|
||||||
with Licensor regarding such Contributions.
|
|
||||||
|
|
||||||
6. Trademarks. This License does not grant permission to use the trade
|
|
||||||
names, trademarks, service marks, or product names of the Licensor,
|
|
||||||
except as required for reasonable and customary use in describing the
|
|
||||||
origin of the Work and reproducing the content of the NOTICE file.
|
|
||||||
|
|
||||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
||||||
agreed to in writing, Licensor provides the Work (and each
|
|
||||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
||||||
implied, including, without limitation, any warranties or conditions
|
|
||||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
||||||
appropriateness of using or redistributing the Work and assume any
|
|
||||||
risks associated with Your exercise of permissions under this License.
|
|
||||||
|
|
||||||
8. Limitation of Liability. In no event and under no legal theory,
|
|
||||||
whether in tort (including negligence), contract, or otherwise,
|
|
||||||
unless required by applicable law (such as deliberate and grossly
|
|
||||||
negligent acts) or agreed to in writing, shall any Contributor be
|
|
||||||
liable to You for damages, including any direct, indirect, special,
|
|
||||||
incidental, or consequential damages of any character arising as a
|
|
||||||
result of this License or out of the use or inability to use the
|
|
||||||
Work (including but not limited to damages for loss of goodwill,
|
|
||||||
work stoppage, computer failure or malfunction, or any and all
|
|
||||||
other commercial damages or losses), even if such Contributor
|
|
||||||
has been advised of the possibility of such damages.
|
|
||||||
|
|
||||||
9. Accepting Warranty or Additional Liability. While redistributing
|
|
||||||
the Work or Derivative Works thereof, You may choose to offer,
|
|
||||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
||||||
or other liability obligations and/or rights consistent with this
|
|
||||||
License. However, in accepting such obligations, You may act only
|
|
||||||
on Your own behalf and on Your sole responsibility, not on behalf
|
|
||||||
of any other Contributor, and only if You agree to indemnify,
|
|
||||||
defend, and hold each Contributor harmless for any liability
|
|
||||||
incurred by, or claims asserted against, such Contributor by reason
|
|
||||||
of your accepting any such warranty or additional liability.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
APPENDIX: How to apply the Apache License to your work.
|
|
||||||
|
|
||||||
To apply the Apache License to your work, attach the following
|
|
||||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
||||||
replaced with your own identifying information. (Don't include
|
|
||||||
the brackets!) The text should be enclosed in the appropriate
|
|
||||||
comment syntax for the file format. We also recommend that a
|
|
||||||
file or class name and description of purpose be included on the
|
|
||||||
same "printed page" as the copyright notice for easier
|
|
||||||
identification within third-party archives.
|
|
||||||
|
|
||||||
Copyright [yyyy] [name of copyright owner]
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
==========================================================================
|
|
||||||
The following license applies to the ip2region library
|
|
||||||
--------------------------------------------------------------------------
|
|
||||||
Copyright (c) 2015 Lionsoul<chenxin619315@gmail.com>
|
|
||||||
|
|
||||||
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.
|
|
50
vendor/zoujingli/ip2region/README.md
vendored
50
vendor/zoujingli/ip2region/README.md
vendored
@ -1,50 +0,0 @@
|
|||||||
[](https://packagist.org/packages/zoujingli/ip2region)
|
|
||||||
[](https://packagist.org/packages/zoujingli/ip2region)
|
|
||||||
[](https://packagist.org/packages/zoujingli/ip2region)
|
|
||||||
[](https://packagist.org/packages/zoujingli/ip2region)
|
|
||||||
|
|
||||||
|
|
||||||
本库基于 [ip2region](https://github.com/lionsoul2014/ip2region) ,简单整合方便使用`composer`来管理。
|
|
||||||
--
|
|
||||||
|
|
||||||
[ip2region](https://github.com/lionsoul2014/ip2region) - 最自由的ip地址查询库,ip到地区的映射库,提供Binary,B树和纯内存三种查询算法,妈妈再也不用担心我的ip地址定位。
|
|
||||||
|
|
||||||
### 1. 99.9%准确率,定时更新:
|
|
||||||
|
|
||||||
数据聚合了一些知名ip到地名查询提供商的数据,这些是他们官方的的准确率,经测试着实比纯真啥的准确多了。<br />
|
|
||||||
每次聚合一下数据需要1-2天,会不定时更新。
|
|
||||||
|
|
||||||
### 2. 标准化的数据格式:
|
|
||||||
|
|
||||||
每条ip数据段都固定了格式:_城市Id|国家|区域|省份|城市|ISP_
|
|
||||||
|
|
||||||
只有中国的数据精确到了城市,其他国家只能定位到国家,后前的选项全部是0,已经包含了全部你能查到的大大小小的国家。
|
|
||||||
(请忽略前面的城市Id,个人项目需求)
|
|
||||||
|
|
||||||
### 3. 体积小:
|
|
||||||
|
|
||||||
数据库文件ip2region.db只有1.5M
|
|
||||||
|
|
||||||
### Composer 安装
|
|
||||||
|
|
||||||
```
|
|
||||||
composer require zoujingli/ip2region
|
|
||||||
```
|
|
||||||
|
|
||||||
### ip2region 使用
|
|
||||||
```php
|
|
||||||
|
|
||||||
$ip2region = new Ip2Region();
|
|
||||||
|
|
||||||
$ip = '101.105.35.57';
|
|
||||||
|
|
||||||
$info = $ip2region->btreeSearch($ip);
|
|
||||||
|
|
||||||
var_export($info, true);
|
|
||||||
|
|
||||||
// array (
|
|
||||||
// 'city_id' => 2163,
|
|
||||||
// 'region' => '中国|华南|广东省|深圳市|鹏博士',
|
|
||||||
// )
|
|
||||||
|
|
||||||
```
|
|
25
vendor/zoujingli/ip2region/composer.json
vendored
25
vendor/zoujingli/ip2region/composer.json
vendored
@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "library",
|
|
||||||
"name": "zoujingli/ip2region",
|
|
||||||
"homepage": "https://github.com/zoujingli/Ip2Region",
|
|
||||||
"description": "Ip2Region for PHP",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Anyon",
|
|
||||||
"email": "zoujingli@qq.com",
|
|
||||||
"homepage": "http://ctolog.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"keywords": [
|
|
||||||
"Ip2Region"
|
|
||||||
],
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3"
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"Ip2Region.php"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
BIN
vendor/zoujingli/ip2region/ip2region.db
vendored
BIN
vendor/zoujingli/ip2region/ip2region.db
vendored
Binary file not shown.
20
vendor/zoujingli/ip2region/test.php
vendored
20
vendor/zoujingli/ip2region/test.php
vendored
@ -1,20 +0,0 @@
|
|||||||
<?php
|
|
||||||
require 'Ip2Region.php';
|
|
||||||
|
|
||||||
$ip2region = new Ip2Region();
|
|
||||||
|
|
||||||
$ip = '61.140.232.170';
|
|
||||||
echo PHP_EOL;
|
|
||||||
echo "查询IP:{$ip}" . PHP_EOL;
|
|
||||||
$info = $ip2region->btreeSearch($ip);
|
|
||||||
var_export($info);
|
|
||||||
|
|
||||||
echo PHP_EOL;
|
|
||||||
$info = $ip2region->memorySearch($ip);
|
|
||||||
var_export($info);
|
|
||||||
echo PHP_EOL;
|
|
||||||
|
|
||||||
// array (
|
|
||||||
// 'city_id' => 2163,
|
|
||||||
// 'region' => '中国|华南|广东省|深圳市|鹏博士',
|
|
||||||
// )
|
|
8
vendor/zoujingli/think-library/.gitignore
vendored
8
vendor/zoujingli/think-library/.gitignore
vendored
@ -1,8 +0,0 @@
|
|||||||
.idea
|
|
||||||
!.gitignore
|
|
||||||
!composer.json
|
|
||||||
composer.lock
|
|
||||||
app
|
|
||||||
config
|
|
||||||
vendor
|
|
||||||
public
|
|
35
vendor/zoujingli/think-library/composer.json
vendored
35
vendor/zoujingli/think-library/composer.json
vendored
@ -1,35 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "library",
|
|
||||||
"name": "zoujingli/think-library",
|
|
||||||
"license": "MIT",
|
|
||||||
"homepage": "http://framework.thinkadmin.top",
|
|
||||||
"description": "ThinkPHP v6.0 Development Library",
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Anyon",
|
|
||||||
"email": "zoujingli@qq.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"require": {
|
|
||||||
"ext-gd": "*",
|
|
||||||
"ext-curl": "*",
|
|
||||||
"ext-json": "*",
|
|
||||||
"ext-iconv": "*",
|
|
||||||
"topthink/framework": "^6.0"
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"files": [
|
|
||||||
"src/common.php"
|
|
||||||
],
|
|
||||||
"psr-4": {
|
|
||||||
"think\\admin\\": "src"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"extra": {
|
|
||||||
"think": {
|
|
||||||
"services": [
|
|
||||||
"think\\admin\\ThinkLibrary"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
225
vendor/zoujingli/think-library/readme.md
vendored
225
vendor/zoujingli/think-library/readme.md
vendored
@ -1,225 +0,0 @@
|
|||||||
[](https://packagist.org/packages/zoujingli/think-library) [](https://packagist.org/packages/zoujingli/think-library) [](https://packagist.org/packages/zoujingli/think-library) [](https://packagist.org/packages/zoujingli/think-library)
|
|
||||||
|
|
||||||
# ThinkLibrary 6.0 for ThinkPHP 6.0
|
|
||||||
ThinkLibrary 6.0 是针对 ThinkPHP 6.0 版本封装的一套工具类库,方便快速构建 WEB 应用。
|
|
||||||
|
|
||||||
## 包含组件
|
|
||||||
* 数据列表展示(可带高级搜索器)
|
|
||||||
* FORM表单处理器(表单展示及数据入库)
|
|
||||||
* 数据状态快速处理(数据指定字段更新,支持多字段同时)
|
|
||||||
* 数据安全删除处理(硬删除 + 软删除,is_deleted 字段存在则自动软删除)
|
|
||||||
* 文件存储通用组件(本地服务存储 + 阿里云OSS存储 + 七牛云存储)
|
|
||||||
* 通用数据保存更新(通过 key 值及 where 判定是否存在,存在则更新,不存在则新增)
|
|
||||||
* 通用网络请求 (支持 get 及 post,可配置请求证书等)
|
|
||||||
* 系统参数通用 g-k-v 配置(快速参数长久化配置)
|
|
||||||
* UTF8加密算法支持(安全URL参数传参数)
|
|
||||||
* 接口 CORS 跨域默认支持(输出 JSON 标准化)
|
|
||||||
* 支持表单CSRF安全验证(自动化 FORM 标签替换)
|
|
||||||
* 更新功能等待您来发现哦....
|
|
||||||
|
|
||||||
## 参考项目
|
|
||||||
|
|
||||||
#### ThinkAdmin - V6.0
|
|
||||||
* Gitee 仓库 https://gitee.com/zoujingli/ThinkAdmin
|
|
||||||
* Github 仓库 https://github.com/zoujingli/ThinkAdmin
|
|
||||||
* 体验地址(账号密码都是admin)https://demo.thinkadmin.top
|
|
||||||
|
|
||||||
## 代码仓库
|
|
||||||
ThinkLibrary 为 MIT 协议开源项目,安装使用或二次开发不受约束,欢迎 fork 项目。
|
|
||||||
|
|
||||||
部分代码来自互联网,若有异议可以联系作者进行删除。
|
|
||||||
|
|
||||||
* 在线体验地址:https://demo.thinkadmin.top (账号和密码都是 admin )
|
|
||||||
* Gitee仓库地址:https://gitee.com/zoujingli/ThinkLibrary
|
|
||||||
* GitHub仓库地址:https://github.com/zoujingli/ThinkLibrary
|
|
||||||
|
|
||||||
## 使用说明
|
|
||||||
* ThinkLibrary 需要 Composer 支持
|
|
||||||
* 安装命令 ` composer require zoujingli/think-library 6.0.x-dev`
|
|
||||||
* 案例代码:
|
|
||||||
控制器需要继承 `think\admin\Controller`,然后`$this`就可能使用全部功能
|
|
||||||
```php
|
|
||||||
// 定义 MyController 控制器
|
|
||||||
class MyController extend \think\admin\Controller {
|
|
||||||
|
|
||||||
// 指定当前数据表名
|
|
||||||
protected $dbQuery = '数据表名';
|
|
||||||
|
|
||||||
// 显示数据列表
|
|
||||||
public function index(){
|
|
||||||
$this->_page($this->dbQuery);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 当前列表数据处理
|
|
||||||
protected function _index_page_filter(&$data){
|
|
||||||
foreach($data as &$vo){
|
|
||||||
// @todo 修改原列表
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
```
|
|
||||||
* 必要数据库表SQL(sysconf 函数需要用到这个表)
|
|
||||||
```sql
|
|
||||||
CREATE TABLE `system_config` (
|
|
||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`type` varchar(20) DEFAULT '' COMMENT '分类',
|
|
||||||
`name` varchar(100) DEFAULT '' COMMENT '配置名',
|
|
||||||
`value` varchar(500) DEFAULT '' COMMENT '配置值',
|
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
|
||||||
KEY `idx_system_config_type` (`type`),
|
|
||||||
KEY `idx_system_config_name` (`name`) USING BTREE
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=81 DEFAULT CHARSET=utf8mb4 COMMENT='系统-配置';
|
|
||||||
```
|
|
||||||
* 系统任务列队支持需要的数据表
|
|
||||||
```sql
|
|
||||||
CREATE TABLE `system_queue` (
|
|
||||||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
||||||
`title` varchar(50) NOT NULL DEFAULT '' COMMENT '任务名称',
|
|
||||||
`command` varchar(500) DEFAULT '' COMMENT '执行指令',
|
|
||||||
`exec_data` longtext COMMENT '执行参数',
|
|
||||||
`exec_time` bigint(20) unsigned DEFAULT '0' COMMENT '执行时间',
|
|
||||||
`exec_desc` varchar(500) DEFAULT '' COMMENT '状态描述',
|
|
||||||
`enter_time` bigint(20) DEFAULT '0' COMMENT '开始时间',
|
|
||||||
`outer_time` bigint(20) DEFAULT '0' COMMENT '结束时间',
|
|
||||||
`attempts` bigint(20) DEFAULT '0' COMMENT '执行次数',
|
|
||||||
`rscript` tinyint(1) DEFAULT '1' COMMENT '单例模式',
|
|
||||||
`status` tinyint(1) DEFAULT '1' COMMENT '任务状态(1新任务,2处理中,3成功,4失败)',
|
|
||||||
`create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
|
||||||
KEY `idx_system_queue_title` (`title`) USING BTREE,
|
|
||||||
KEY `idx_system_queue_status` (`status`) USING BTREE,
|
|
||||||
KEY `idx_system_queue_rscript` (`rscript`) USING BTREE,
|
|
||||||
KEY `idx_system_queue_create_at` (`create_at`) USING BTREE,
|
|
||||||
KEY `idx_system_queue_exec_time` (`exec_time`) USING BTREE
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统-任务';
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 列表处理
|
|
||||||
```php
|
|
||||||
// 列表展示
|
|
||||||
$this->_page($dbQuery, $isPage, $isDisplay, $total);
|
|
||||||
|
|
||||||
// 列表展示搜索器(按 name、title 模糊搜索;按 status 精确搜索)
|
|
||||||
$this->_query($dbQuery)->like('name,title')->equal('status')->page();
|
|
||||||
|
|
||||||
// 对列表查询器进行二次处理
|
|
||||||
$query = $this->_query($dbQuery)->like('name,title')->equal('status');
|
|
||||||
$db = $query->db(); // @todo 这里可以对db进行操作
|
|
||||||
$this->_page($db); // 显示列表分页
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 表单处理
|
|
||||||
```php
|
|
||||||
// 表单显示及数据更新
|
|
||||||
$this->_form($dbQuery, $tplFile, $pkField , $where, $data);
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 删除处理
|
|
||||||
```php
|
|
||||||
// 数据删除处理
|
|
||||||
$this->_deleted($dbQuery);
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 禁用启用处理
|
|
||||||
```php
|
|
||||||
// 数据禁用处理
|
|
||||||
$this->_save($dbQuery,['status'=>'0']);
|
|
||||||
|
|
||||||
// 数据启用处理
|
|
||||||
$this->_save($dbQuery,['status'=>'1']);
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 文件存储组件( oss 及 qiniu 需要配置参数)
|
|
||||||
```php
|
|
||||||
|
|
||||||
// 配置默认存储方式
|
|
||||||
sysconf('storage_type','文件存储类型');
|
|
||||||
|
|
||||||
// OSS存储配置
|
|
||||||
sysconf('storage_oss_domain', '文件访问域名');
|
|
||||||
sysconf('storage_oss_keyid', '接口授权AppId');
|
|
||||||
sysconf('storage_oss_secret', '接口授权AppSecret');
|
|
||||||
sysconf('storage_oss_bucket', '文件存储空间名称');
|
|
||||||
sysconf('storage_oss_is_https', '文件HTTP访问协议');
|
|
||||||
sysconf('storage_oss_endpoint', '文件存储节点域名');
|
|
||||||
|
|
||||||
// 七牛云存储配置
|
|
||||||
sysconf('storage_qiniu_region', '文件存储节点');
|
|
||||||
sysconf('storage_qiniu_domain', '文件访问域名');
|
|
||||||
sysconf('storage_qiniu_bucket', '文件存储空间名称');
|
|
||||||
sysconf('storage_qiniu_is_https', '文件HTTP访问协议');
|
|
||||||
sysconf('storage_qiniu_access_key', '接口授权AccessKey');
|
|
||||||
sysconf('storage_qiniu_secret_key', '接口授权SecretKey');
|
|
||||||
|
|
||||||
|
|
||||||
// 生成文件名称(链接url或文件md5)
|
|
||||||
$filename = \think\admin\Storage::name($url,$ext,$prv,$fun);
|
|
||||||
|
|
||||||
// 获取文件内容(自动存储方式)
|
|
||||||
$result = \think\admin\Storage::get($filename)
|
|
||||||
|
|
||||||
// 保存内容到文件(自动存储方式)
|
|
||||||
boolean \think\admin\Storage::save($filename,$content);
|
|
||||||
|
|
||||||
// 判断文件是否存在
|
|
||||||
boolean \think\admin\Storage::has($filename);
|
|
||||||
|
|
||||||
// 获取文件信息
|
|
||||||
$result = \think\admin\Storage::info($filename);
|
|
||||||
|
|
||||||
//指定存储类型(调用方法)
|
|
||||||
boolean \think\admin\Storage::instance('local')->save($filename,$content);
|
|
||||||
boolean \think\admin\Storage::instance('qiniu')->save($filename,$content);
|
|
||||||
|
|
||||||
$result = \think\admin\Storage::instance('oss')->get($filename);
|
|
||||||
$result = \think\admin\Storage::instance('local')->get($filename);
|
|
||||||
$result = \think\admin\Storage::instance('qiniu')->get($filename);
|
|
||||||
|
|
||||||
boolean \think\admin\Storage::instance('oss')->has($filename);
|
|
||||||
boolean \think\admin\Storage::instance('local')->has($filename);
|
|
||||||
boolean \think\admin\Storage::instance('qiniu')->has($filename);
|
|
||||||
|
|
||||||
$resutl = \think\admin\Storage::instance('oss')->info($filename);
|
|
||||||
$resutl = \think\admin\Storage::instance('local')->info($filename);
|
|
||||||
$resutl = \think\admin\Storage::instance('qiniu')->info($filename);
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 通用数据保存
|
|
||||||
```php
|
|
||||||
// 指定关键列更新($where 为扩展条件)
|
|
||||||
boolean data_save($dbQuery,$data,'pkname',$where);
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 通用网络请求
|
|
||||||
```php
|
|
||||||
// 发起get请求
|
|
||||||
$result = http_get($url,$query,$options);
|
|
||||||
$result = \library\tools\Http::get($url,$query,$options);
|
|
||||||
|
|
||||||
// 发起post请求
|
|
||||||
$result = http_post($url,$data,$options);
|
|
||||||
$result = \library\tools\Http::post($url,$data,$options);
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 系统参数配置(基于 system_config 数据表)
|
|
||||||
```php
|
|
||||||
// 设置参数
|
|
||||||
sysconf($keyname,$keyvalue);
|
|
||||||
|
|
||||||
// 获取参数
|
|
||||||
$keyvalue = sysconf($kename);
|
|
||||||
```
|
|
||||||
|
|
||||||
#### UTF8加密算法
|
|
||||||
```php
|
|
||||||
// 字符串加密操作
|
|
||||||
$string = encode($content);
|
|
||||||
|
|
||||||
// 加密字符串解密
|
|
||||||
$content = decode($string);
|
|
||||||
```
|
|
||||||
|
|
||||||
## 赞助打赏
|
|
||||||
|
|
||||||

|
|
259
vendor/zoujingli/think-library/src/Controller.php
vendored
259
vendor/zoujingli/think-library/src/Controller.php
vendored
@ -1,259 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// +----------------------------------------------------------------------
|
|
||||||
// | Library for ThinkAdmin
|
|
||||||
// +----------------------------------------------------------------------
|
|
||||||
// | 版权所有 2014~2019 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
|
|
||||||
// +----------------------------------------------------------------------
|
|
||||||
// | 官方网站: http://demo.thinkadmin.top
|
|
||||||
// +----------------------------------------------------------------------
|
|
||||||
// | 开源协议 ( https://mit-license.org )
|
|
||||||
// +----------------------------------------------------------------------
|
|
||||||
// | gitee 仓库地址 :https://gitee.com/zoujingli/ThinkLibrary
|
|
||||||
// | github 仓库地址 :https://github.com/zoujingli/ThinkLibrary
|
|
||||||
// +----------------------------------------------------------------------
|
|
||||||
|
|
||||||
namespace think\admin;
|
|
||||||
|
|
||||||
use think\admin\helper\DeleteHelper;
|
|
||||||
use think\admin\helper\FormHelper;
|
|
||||||
use think\admin\helper\PageHelper;
|
|
||||||
use think\admin\helper\QueryHelper;
|
|
||||||
use think\admin\helper\SaveHelper;
|
|
||||||
use think\admin\helper\TokenHelper;
|
|
||||||
use think\App;
|
|
||||||
use think\db\exception\DataNotFoundException;
|
|
||||||
use think\db\exception\DbException;
|
|
||||||
use think\db\exception\ModelNotFoundException;
|
|
||||||
use think\db\Query;
|
|
||||||
use think\exception\HttpResponseException;
|
|
||||||
use think\Request;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 标准控制器基类
|
|
||||||
* Class Controller
|
|
||||||
* @package think\admin
|
|
||||||
*/
|
|
||||||
class Controller extends \stdClass
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 应用容器
|
|
||||||
* @var App
|
|
||||||
*/
|
|
||||||
public $app;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 请求对象
|
|
||||||
* @var Request
|
|
||||||
*/
|
|
||||||
public $request;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 表单CSRF验证状态
|
|
||||||
* @var boolean
|
|
||||||
*/
|
|
||||||
public $csrf_state = false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 表单CSRF验证失败提示
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
public $csrf_message = '表单令牌验证失败,请刷新页面再试!';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Controller constructor.
|
|
||||||
* @param App $app
|
|
||||||
*/
|
|
||||||
public function __construct(App $app)
|
|
||||||
{
|
|
||||||
$this->app = $app;
|
|
||||||
$this->request = $app->request;
|
|
||||||
if (in_array($this->app->request->action(), get_class_methods(__CLASS__))) {
|
|
||||||
$this->error('Access without permission.');
|
|
||||||
}
|
|
||||||
$this->initialize();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 控制器初始化
|
|
||||||
*/
|
|
||||||
protected function initialize()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 返回失败的操作
|
|
||||||
* @param mixed $info 消息内容
|
|
||||||
* @param array $data 返回数据
|
|
||||||
* @param integer $code 返回代码
|
|
||||||
*/
|
|
||||||
public function error($info, $data = [], $code = 0)
|
|
||||||
{
|
|
||||||
throw new HttpResponseException(json([
|
|
||||||
'code' => $code, 'info' => $info, 'data' => $data,
|
|
||||||
]));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 返回成功的操作
|
|
||||||
* @param mixed $info 消息内容
|
|
||||||
* @param array $data 返回数据
|
|
||||||
* @param integer $code 返回代码
|
|
||||||
*/
|
|
||||||
public function success($info, $data = [], $code = 1)
|
|
||||||
{
|
|
||||||
if ($this->csrf_state) {
|
|
||||||
TokenHelper::instance($this, $this->app)->clear();
|
|
||||||
}
|
|
||||||
throw new HttpResponseException(json([
|
|
||||||
'code' => $code, 'info' => $info, 'data' => $data,
|
|
||||||
]));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* URL重定向
|
|
||||||
* @param string $url 跳转链接
|
|
||||||
* @param integer $code 跳转代码
|
|
||||||
*/
|
|
||||||
public function redirect($url, $code = 301)
|
|
||||||
{
|
|
||||||
throw new HttpResponseException(redirect($url, $code));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 返回视图内容
|
|
||||||
* @param string $tpl 模板名称
|
|
||||||
* @param array $vars 模板变量
|
|
||||||
* @param string $node CSRF授权节点
|
|
||||||
*/
|
|
||||||
public function fetch($tpl = '', $vars = [], $node = null)
|
|
||||||
{
|
|
||||||
foreach ($this as $name => $value) $vars[$name] = $value;
|
|
||||||
if ($this->csrf_state) {
|
|
||||||
TokenHelper::instance($this, $this->app)->fetchTemplate($tpl, $vars, $node);
|
|
||||||
} else {
|
|
||||||
throw new HttpResponseException(view($tpl, $vars));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 模板变量赋值
|
|
||||||
* @param mixed $name 要显示的模板变量
|
|
||||||
* @param mixed $value 变量的值
|
|
||||||
* @return $this
|
|
||||||
*/
|
|
||||||
public function assign($name, $value = '')
|
|
||||||
{
|
|
||||||
if (is_string($name)) {
|
|
||||||
$this->$name = $value;
|
|
||||||
} elseif (is_array($name)) {
|
|
||||||
foreach ($name as $k => $v) {
|
|
||||||
if (is_string($k)) {
|
|
||||||
$this->$k = $v;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 数据回调处理机制
|
|
||||||
* @param string $name 回调方法名称
|
|
||||||
* @param mixed $one 回调引用参数1
|
|
||||||
* @param mixed $two 回调引用参数2
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
public function callback($name, &$one = [], &$two = [])
|
|
||||||
{
|
|
||||||
if (is_callable($name)) return call_user_func($name, $this, $one, $two);
|
|
||||||
foreach ([$name, "_{$this->app->request->action()}{$name}"] as $method) {
|
|
||||||
if (method_exists($this, $method) && false === $this->$method($one, $two)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 快捷查询逻辑器
|
|
||||||
* @param string|Query $dbQuery
|
|
||||||
* @return QueryHelper
|
|
||||||
*/
|
|
||||||
protected function _query($dbQuery)
|
|
||||||
{
|
|
||||||
return QueryHelper::instance($this, $this->app)->init($dbQuery);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 快捷分页逻辑器
|
|
||||||
* @param string|Query $dbQuery
|
|
||||||
* @param boolean $page 是否启用分页
|
|
||||||
* @param boolean $display 是否渲染模板
|
|
||||||
* @param boolean $total 集合分页记录数
|
|
||||||
* @param integer $limit 集合每页记录数
|
|
||||||
* @return array
|
|
||||||
* @throws DataNotFoundException
|
|
||||||
* @throws DbException
|
|
||||||
* @throws ModelNotFoundException
|
|
||||||
*/
|
|
||||||
protected function _page($dbQuery, $page = true, $display = true, $total = false, $limit = 0)
|
|
||||||
{
|
|
||||||
return PageHelper::instance($this, $this->app)->init($dbQuery, $page, $display, $total, $limit);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 快捷表单逻辑器
|
|
||||||
* @param string|Query $dbQuery
|
|
||||||
* @param string $template 模板名称
|
|
||||||
* @param string $field 指定数据对象主键
|
|
||||||
* @param array $where 额外更新条件
|
|
||||||
* @param array $data 表单扩展数据
|
|
||||||
* @return array|boolean
|
|
||||||
* @throws DataNotFoundException
|
|
||||||
* @throws DbException
|
|
||||||
* @throws ModelNotFoundException
|
|
||||||
*/
|
|
||||||
protected function _form($dbQuery, $template = '', $field = '', $where = [], $data = [])
|
|
||||||
{
|
|
||||||
return FormHelper::instance($this, $this->app)->init($dbQuery, $template, $field, $where, $data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 快捷更新逻辑器
|
|
||||||
* @param string|Query $dbQuery
|
|
||||||
* @param array $data 表单扩展数据
|
|
||||||
* @param string $field 数据对象主键
|
|
||||||
* @param array $where 额外更新条件
|
|
||||||
* @return boolean
|
|
||||||
* @throws DbException
|
|
||||||
*/
|
|
||||||
protected function _save($dbQuery, $data = [], $field = '', $where = [])
|
|
||||||
{
|
|
||||||
return SaveHelper::instance($this, $this->app)->init($dbQuery, $data, $field, $where);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 快捷删除逻辑器
|
|
||||||
* @param string|Query $dbQuery
|
|
||||||
* @param string $field 数据对象主键
|
|
||||||
* @param array $where 额外更新条件
|
|
||||||
* @return boolean|null
|
|
||||||
* @throws DbException
|
|
||||||
*/
|
|
||||||
protected function _delete($dbQuery, $field = '', $where = [])
|
|
||||||
{
|
|
||||||
return DeleteHelper::instance($this, $this->app)->init($dbQuery, $field, $where);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 检查表单令牌验证
|
|
||||||
* @param boolean $return 是否返回结果
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
protected function _applyFormToken($return = false)
|
|
||||||
{
|
|
||||||
return TokenHelper::instance($this, $this->app)->init($return);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
182
vendor/zoujingli/think-library/src/common.php
vendored
182
vendor/zoujingli/think-library/src/common.php
vendored
@ -1,182 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// +----------------------------------------------------------------------
|
|
||||||
// | Library for ThinkAdmin
|
|
||||||
// +----------------------------------------------------------------------
|
|
||||||
// | 版权所有 2014~2019 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
|
|
||||||
// +----------------------------------------------------------------------
|
|
||||||
// | 官方网站: http://demo.thinkadmin.top
|
|
||||||
// +----------------------------------------------------------------------
|
|
||||||
// | 开源协议 ( https://mit-license.org )
|
|
||||||
// +----------------------------------------------------------------------
|
|
||||||
// | gitee 仓库地址 :https://gitee.com/zoujingli/ThinkLibrary
|
|
||||||
// | github 仓库地址 :https://github.com/zoujingli/ThinkLibrary
|
|
||||||
// +----------------------------------------------------------------------
|
|
||||||
|
|
||||||
use think\admin\extend\DataExtend;
|
|
||||||
use think\admin\extend\HttpExtend;
|
|
||||||
use think\admin\extend\TokenExtend;
|
|
||||||
use think\db\Query;
|
|
||||||
|
|
||||||
if (!function_exists('p')) {
|
|
||||||
/**
|
|
||||||
* 打印输出数据到文件
|
|
||||||
* @param mixed $data 输出的数据
|
|
||||||
* @param boolean $replace 强制替换
|
|
||||||
* @param string|null $file 文件名称
|
|
||||||
*/
|
|
||||||
function p($data, $replace = false, $file = null)
|
|
||||||
{
|
|
||||||
if (is_null($file)) $file = env('runtime_path') . date('Ymd') . '.txt';
|
|
||||||
$str = (is_string($data) ? $data : (is_array($data) || is_object($data)) ? print_r($data, true) : var_export($data, true)) . PHP_EOL;
|
|
||||||
$replace ? file_put_contents($file, $str) : file_put_contents($file, $str, FILE_APPEND);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!function_exists('systoken')) {
|
|
||||||
/**
|
|
||||||
* 生成 CSRF-TOKEN 参数
|
|
||||||
* @param string $node
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
function systoken($node = null)
|
|
||||||
{
|
|
||||||
return TokenExtend::buildFormToken($node)['token'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!function_exists('format_datetime')) {
|
|
||||||
/**
|
|
||||||
* 日期格式标准输出
|
|
||||||
* @param string $datetime 输入日期
|
|
||||||
* @param string $format 输出格式
|
|
||||||
* @return false|string
|
|
||||||
*/
|
|
||||||
function format_datetime($datetime, $format = 'Y年m月d日 H:i:s')
|
|
||||||
{
|
|
||||||
if (empty($datetime)) return '-';
|
|
||||||
if (is_numeric($datetime)) {
|
|
||||||
return date($format, $datetime);
|
|
||||||
} else {
|
|
||||||
return date($format, strtotime($datetime));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!function_exists('sysconf')) {
|
|
||||||
/**
|
|
||||||
* 设备或配置系统参数
|
|
||||||
* @param string $name 参数名称
|
|
||||||
* @param string $value 参数内容
|
|
||||||
* @return mixed
|
|
||||||
* @throws \think\db\exception\DataNotFoundException
|
|
||||||
* @throws \think\db\exception\DbException
|
|
||||||
* @throws \think\db\exception\ModelNotFoundException
|
|
||||||
*/
|
|
||||||
function sysconf($name = '', $value = null)
|
|
||||||
{
|
|
||||||
$type = 'base';
|
|
||||||
static $data = [];
|
|
||||||
if (stripos($name, '.') !== false) {
|
|
||||||
list($type, $name) = explode('.', $name);
|
|
||||||
}
|
|
||||||
list($field, $filter) = explode('|', "{$name}|");
|
|
||||||
if (!empty($field) && !empty($value)) {
|
|
||||||
if (is_array($value)) {
|
|
||||||
foreach ($value as $k => $v) sysconf("{$field}.{$k}", $v);
|
|
||||||
} else {
|
|
||||||
list($row, $data) = [['name' => $field, 'value' => $value, 'type' => $type], []];
|
|
||||||
return DataExtend::save('SystemConfig', $row, 'name', ['type' => $type]);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (empty($data)) foreach (app()->db->name('SystemConfig')->select()->toArray() as $vo) {
|
|
||||||
$data[$vo['type']][$vo['name']] = $vo['value'];
|
|
||||||
}
|
|
||||||
if (empty($name)) {
|
|
||||||
return empty($data[$type]) ? [] : (strtolower($filter) === 'raw' ? $data[$type] : array_map(function ($value) {
|
|
||||||
return htmlspecialchars($value);
|
|
||||||
}, $data[$type]));
|
|
||||||
} else {
|
|
||||||
if (isset($data[$type]) && isset($data[$type][$field])) {
|
|
||||||
return strtolower($filter) === 'raw' ? $data[$type][$field] : htmlspecialchars($data[$type][$field]);
|
|
||||||
} else return '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!function_exists('http_get')) {
|
|
||||||
/**
|
|
||||||
* 以get模拟网络请求
|
|
||||||
* @param string $url HTTP请求URL地址
|
|
||||||
* @param array|string $query GET请求参数
|
|
||||||
* @param array $options CURL参数
|
|
||||||
* @return boolean|string
|
|
||||||
*/
|
|
||||||
function http_get($url, $query = [], $options = [])
|
|
||||||
{
|
|
||||||
return HttpExtend::get($url, $query, $options);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!function_exists('http_post')) {
|
|
||||||
/**
|
|
||||||
* 以post模拟网络请求
|
|
||||||
* @param string $url HTTP请求URL地址
|
|
||||||
* @param array|string $data POST请求数据
|
|
||||||
* @param array $options CURL参数
|
|
||||||
* @return boolean|string
|
|
||||||
*/
|
|
||||||
function http_post($url, $data, $options = [])
|
|
||||||
{
|
|
||||||
return HttpExtend::post($url, $data, $options);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!function_exists('data_save')) {
|
|
||||||
/**
|
|
||||||
* 数据增量保存
|
|
||||||
* @param Query|string $dbQuery
|
|
||||||
* @param array $data 需要保存或更新的数据
|
|
||||||
* @param string $key 条件主键限制
|
|
||||||
* @param array $where 其它的where条件
|
|
||||||
* @return boolean
|
|
||||||
* @throws \think\db\exception\DataNotFoundException
|
|
||||||
* @throws \think\db\exception\DbException
|
|
||||||
* @throws \think\db\exception\ModelNotFoundException
|
|
||||||
*/
|
|
||||||
function data_save($dbQuery, $data, $key = 'id', $where = [])
|
|
||||||
{
|
|
||||||
return DataExtend::save($dbQuery, $data, $key, $where);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!function_exists('encode')) {
|
|
||||||
/**
|
|
||||||
* 加密 UTF8 字符串
|
|
||||||
* @param string $content
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
function encode($content)
|
|
||||||
{
|
|
||||||
list($chars, $length) = ['', strlen($string = iconv('UTF-8', 'GBK//TRANSLIT', $content))];
|
|
||||||
for ($i = 0; $i < $length; $i++) $chars .= str_pad(base_convert(ord($string[$i]), 10, 36), 2, 0, 0);
|
|
||||||
return $chars;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!function_exists('decode')) {
|
|
||||||
/**
|
|
||||||
* 解密 UTF8 字符串
|
|
||||||
* @param string $content
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
function decode($content)
|
|
||||||
{
|
|
||||||
$chars = '';
|
|
||||||
foreach (str_split($content, 2) as $char) {
|
|
||||||
$chars .= chr(intval(base_convert($char, 36, 10)));
|
|
||||||
}
|
|
||||||
return iconv('GBK//TRANSLIT', 'UTF-8', $chars);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user