update workerman to 3.3.4
This commit is contained in:
+38
-30
@@ -1,61 +1,69 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of workerman.
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* For full copyright and license information, please see the MIT-LICENSE.txt
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* @copyright walkor<walkor@workerman.net>
|
||||
* @link http://www.workerman.net/
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
namespace Workerman;
|
||||
|
||||
// 定义Workerman根目录
|
||||
if(!defined('WORKERMAN_ROOT_DIR'))
|
||||
{
|
||||
define('WORKERMAN_ROOT_DIR', realpath(__DIR__ . '/../'));
|
||||
}
|
||||
// 包含常量定义文件
|
||||
require_once WORKERMAN_ROOT_DIR.'/Workerman/Lib/Constants.php';
|
||||
|
||||
/**
|
||||
* 自动加载类
|
||||
* @author walkor<walkor@workerman.net>
|
||||
* Autoload.
|
||||
*/
|
||||
class Autoloader
|
||||
{
|
||||
// 应用的初始化目录,作为加载类文件的参考目录
|
||||
protected static $_appInitPath = '';
|
||||
/**
|
||||
* Autoload root path.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected static $_autoloadRootPath = '';
|
||||
|
||||
/**
|
||||
* 设置应用初始化目录
|
||||
* Set autoload root path.
|
||||
*
|
||||
* @param string $root_path
|
||||
* @return void
|
||||
*/
|
||||
public static function setRootPath($root_path)
|
||||
{
|
||||
self::$_appInitPath = $root_path;
|
||||
self::$_autoloadRootPath = $root_path;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据命名空间加载文件
|
||||
* Load files by namespace.
|
||||
*
|
||||
* @param string $name
|
||||
* @return boolean
|
||||
*/
|
||||
public static function loadByNamespace($name)
|
||||
{
|
||||
// 相对路径
|
||||
$class_path = str_replace('\\', DIRECTORY_SEPARATOR ,$name);
|
||||
// 先尝试在应用目录寻找文件
|
||||
$class_file = self::$_appInitPath . '/' . $class_path.'.php';
|
||||
// 文件不存在,则在workerman根目录中寻找
|
||||
if(!is_file($class_file))
|
||||
{
|
||||
$class_file = WORKERMAN_ROOT_DIR . DIRECTORY_SEPARATOR . "$class_path.php";
|
||||
$class_path = str_replace('\\', DIRECTORY_SEPARATOR, $name);
|
||||
if (strpos($name, 'Workerman\\') === 0) {
|
||||
$class_file = __DIR__ . substr($class_path, strlen('Workerman')) . '.php';
|
||||
} else {
|
||||
if (self::$_autoloadRootPath) {
|
||||
$class_file = self::$_autoloadRootPath . DIRECTORY_SEPARATOR . $class_path . '.php';
|
||||
}
|
||||
if (empty($class_file) || !is_file($class_file)) {
|
||||
$class_file = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . "$class_path.php";
|
||||
}
|
||||
}
|
||||
// 找到文件
|
||||
if(is_file($class_file))
|
||||
{
|
||||
// 加载
|
||||
|
||||
if (is_file($class_file)) {
|
||||
require_once($class_file);
|
||||
if(class_exists($name, false))
|
||||
{
|
||||
if (class_exists($name, false)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 设置类自动加载回调函数
|
||||
|
||||
spl_autoload_register('\Workerman\Autoloader::loadByNamespace');
|
||||
Reference in New Issue
Block a user