mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-06 15:02:47 +08:00
代码格式规范调整
This commit is contained in:
@@ -13,11 +13,11 @@ namespace Think;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* ThinkApp 应用管理
|
* ThinkApp 应用管理
|
||||||
* @author liu21st <liu21st@gmail.com>
|
* @author liu21st <liu21st@gmail.com>
|
||||||
*/
|
*/
|
||||||
class App {
|
class App {
|
||||||
|
|
||||||
static private $config = [];
|
static private $config = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 执行应用程序
|
* 执行应用程序
|
||||||
@@ -28,25 +28,25 @@ class App {
|
|||||||
// 监听app_init
|
// 监听app_init
|
||||||
Tag::listen('app_init');
|
Tag::listen('app_init');
|
||||||
// 加载全局初始化文件
|
// 加载全局初始化文件
|
||||||
if(is_file(APP_PATH.'init'.EXT)) {
|
if(is_file( APP_PATH . 'init' . EXT)) {
|
||||||
include APP_PATH.'init'.EXT;
|
include APP_PATH . 'init' . EXT;
|
||||||
$config = Config::get();
|
$config = Config::get();
|
||||||
}else{
|
}else{
|
||||||
// 检测项目(或模块)配置文件
|
// 检测项目(或模块)配置文件
|
||||||
if(is_file(APP_PATH.'config'.EXT)) {
|
if(is_file(APP_PATH . 'config' . EXT)) {
|
||||||
$config = Config::set(include APP_PATH.'config'.EXT);
|
$config = Config::set(include APP_PATH . 'config' . EXT);
|
||||||
}
|
}
|
||||||
// 加载别名文件
|
// 加载别名文件
|
||||||
if(is_file(APP_PATH.'alias'.EXT)) {
|
if(is_file(APP_PATH . 'alias' . EXT)) {
|
||||||
Loader::addMap(include APP_PATH.'alias'.EXT);
|
Loader::addMap(include APP_PATH . 'alias' . EXT);
|
||||||
}
|
}
|
||||||
// 加载公共文件
|
// 加载公共文件
|
||||||
if(is_file(APP_PATH.'common'.EXT)) {
|
if(is_file( APP_PATH . 'common' . EXT)) {
|
||||||
include APP_PATH.'common'.EXT;
|
include APP_PATH . 'common' . EXT;
|
||||||
}
|
}
|
||||||
if(is_file(APP_PATH.'tags'.EXT)) {
|
if(is_file(APP_PATH . 'tags' . EXT)) {
|
||||||
// 行为扩展文件
|
// 行为扩展文件
|
||||||
Tag::import(include APP_PATH.'tags'.EXT);
|
Tag::import(include APP_PATH . 'tags' . EXT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 应用URL调度
|
// 应用URL调度
|
||||||
@@ -55,62 +55,62 @@ class App {
|
|||||||
// 执行操作
|
// 执行操作
|
||||||
$instance = Loader::controller(CONTROLLER_NAME);
|
$instance = Loader::controller(CONTROLLER_NAME);
|
||||||
if(!$instance) {
|
if(!$instance) {
|
||||||
E('[ '.MODULE_NAME.'\\Controller\\'.parse_name(CONTROLLER_NAME,1).'Controller ] not exists',404);
|
E('[ ' . MODULE_NAME . '\\Controller\\' . parse_name(CONTROLLER_NAME, 1) . 'Controller ] not exists', 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取当前操作名
|
// 获取当前操作名
|
||||||
$action = ACTION_NAME.$config['action_suffix'];
|
$action = ACTION_NAME . $config['action_suffix'];
|
||||||
try{
|
try{
|
||||||
// 操作方法开始监听
|
// 操作方法开始监听
|
||||||
$call = [$instance,$action];
|
$call = [$instance, $action];
|
||||||
Tag::listen('action_begin',$call);
|
Tag::listen('action_begin', $call);
|
||||||
if(!preg_match('/^[A-Za-z](\w)*$/',$action)){
|
if(!preg_match('/^[A-Za-z](\w)*$/', $action)){
|
||||||
// 非法操作
|
// 非法操作
|
||||||
throw new \ReflectionException();
|
throw new \ReflectionException();
|
||||||
}
|
}
|
||||||
//执行当前操作
|
//执行当前操作
|
||||||
$method = new \ReflectionMethod($instance, $action);
|
$method = new \ReflectionMethod($instance, $action);
|
||||||
if($method->isPublic()) {
|
if($method->isPublic()) {
|
||||||
// URL参数绑定检测
|
// URL参数绑定检测
|
||||||
if($config['url_params_bind'] && $method->getNumberOfParameters()>0){
|
if($config['url_params_bind'] && $method->getNumberOfParameters() > 0){
|
||||||
switch($_SERVER['REQUEST_METHOD']) {
|
switch($_SERVER['REQUEST_METHOD']) {
|
||||||
case 'POST':
|
case 'POST':
|
||||||
$vars = array_merge($_GET,$_POST);
|
$vars = array_merge($_GET, $_POST);
|
||||||
break;
|
break;
|
||||||
case 'PUT':
|
case 'PUT':
|
||||||
parse_str(file_get_contents('php://input'), $vars);
|
parse_str(file_get_contents('php://input'), $vars);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$vars = $_GET;
|
$vars = $_GET;
|
||||||
}
|
}
|
||||||
$params = $method->getParameters();
|
$params = $method->getParameters();
|
||||||
foreach ($params as $param){
|
foreach ($params as $param){
|
||||||
$name = $param->getName();
|
$name = $param->getName();
|
||||||
if(isset($vars[$name])) {
|
if(isset($vars[$name])) {
|
||||||
$args[] = $vars[$name];
|
$args[] = $vars[$name];
|
||||||
}elseif($param->isDefaultValueAvailable()){
|
}elseif($param->isDefaultValueAvailable()){
|
||||||
$args[] = $param->getDefaultValue();
|
$args[] = $param->getDefaultValue();
|
||||||
}else{
|
}else{
|
||||||
E('_PARAM_ERROR_:'.$name);
|
E('_PARAM_ERROR_:' . $name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$method->invokeArgs($instance,$args);
|
$method->invokeArgs($instance, $args);
|
||||||
}else{
|
}else{
|
||||||
$method->invoke($instance);
|
$method->invoke($instance);
|
||||||
}
|
}
|
||||||
// 操作方法执行完成监听
|
// 操作方法执行完成监听
|
||||||
Tag::listen('action_end',$call);
|
Tag::listen('action_end', $call);
|
||||||
}else{
|
}else{
|
||||||
// 操作方法不是Public 抛出异常
|
// 操作方法不是Public 抛出异常
|
||||||
throw new \ReflectionException();
|
throw new \ReflectionException();
|
||||||
}
|
}
|
||||||
} catch (\ReflectionException $e) {
|
} catch (\ReflectionException $e) {
|
||||||
// 操作不存在
|
// 操作不存在
|
||||||
if(method_exists($instance,'_empty')) {
|
if(method_exists($instance, '_empty')) {
|
||||||
$method = new \ReflectionMethod($instance,'_empty');
|
$method = new \ReflectionMethod($instance, '_empty');
|
||||||
$method->invokeArgs($instance,[$action,'']);
|
$method->invokeArgs($instance, [$action, '']);
|
||||||
}else{
|
}else{
|
||||||
E('[ '.(new \ReflectionClass($instance))->getName().':'.$action.' ] not exists ',404);
|
E('[ ' . (new \ReflectionClass($instance))->getName() . ':' . $action . ' ] not exists ', 404);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 监听app_end
|
// 监听app_end
|
||||||
@@ -124,15 +124,15 @@ class App {
|
|||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
static public function dispatch($config) {
|
static public function dispatch($config) {
|
||||||
$var_m = $config['var_module'];
|
$var_m = $config['var_module'];
|
||||||
$var_c = $config['var_controller'];
|
$var_c = $config['var_controller'];
|
||||||
$var_a = $config['var_action'];
|
$var_a = $config['var_action'];
|
||||||
$var_p = $config['var_pathinfo'];
|
$var_p = $config['var_pathinfo'];
|
||||||
if(isset($_GET[$var_p])) { // 判断URL里面是否有兼容模式参数
|
if(isset($_GET[$var_p])) { // 判断URL里面是否有兼容模式参数
|
||||||
$_SERVER['PATH_INFO'] = $_GET[$var_p];
|
$_SERVER['PATH_INFO'] = $_GET[$var_p];
|
||||||
unset($_GET[$var_p]);
|
unset($_GET[$var_p]);
|
||||||
}elseif(IS_CLI){ // CLI模式下 index.php module/controller/action/params/...
|
}elseif(IS_CLI){ // CLI模式下 index.php module/controller/action/params/...
|
||||||
$_SERVER['PATH_INFO'] = isset($_SERVER['argv'][1])?$_SERVER['argv'][1]:'';
|
$_SERVER['PATH_INFO'] = isset($_SERVER['argv'][1]) ? $_SERVER['argv'][1] : '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检测子域名部署
|
// 检测子域名部署
|
||||||
@@ -144,83 +144,83 @@ class App {
|
|||||||
Tag::listen('path_info');
|
Tag::listen('path_info');
|
||||||
// 分析PATHINFO信息
|
// 分析PATHINFO信息
|
||||||
if(!isset($_SERVER['PATH_INFO']) && $_SERVER['SCRIPT_NAME'] != $_SERVER['PHP_SELF']) {
|
if(!isset($_SERVER['PATH_INFO']) && $_SERVER['SCRIPT_NAME'] != $_SERVER['PHP_SELF']) {
|
||||||
$types = explode(',',$config['pathinfo_fetch']);
|
$types = explode(',', $config['pathinfo_fetch']);
|
||||||
foreach ($types as $type){
|
foreach ($types as $type){
|
||||||
if(0===strpos($type,':')) {// 支持函数判断
|
if(0 === strpos($type, ':')) {// 支持函数判断
|
||||||
$_SERVER['PATH_INFO'] = call_user_func(substr($type,1));
|
$_SERVER['PATH_INFO'] = call_user_func(substr($type,1));
|
||||||
break;
|
break;
|
||||||
}elseif(!empty($_SERVER[$type])) {
|
}elseif(!empty($_SERVER[$type])) {
|
||||||
$_SERVER['PATH_INFO'] = (0 === strpos($_SERVER[$type],$_SERVER['SCRIPT_NAME']))?
|
$_SERVER['PATH_INFO'] = (0 === strpos($_SERVER[$type], $_SERVER['SCRIPT_NAME'])) ?
|
||||||
substr($_SERVER[$type], strlen($_SERVER['SCRIPT_NAME'])) : $_SERVER[$type];
|
substr($_SERVER[$type], strlen($_SERVER['SCRIPT_NAME'])) : $_SERVER[$type];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 定位模块
|
// 定位模块
|
||||||
if(empty($_SERVER['PATH_INFO'])) {
|
if(empty($_SERVER['PATH_INFO'])) {
|
||||||
$_SERVER['PATH_INFO'] = '';
|
$_SERVER['PATH_INFO'] = '';
|
||||||
}
|
}
|
||||||
$part = pathinfo($_SERVER['PATH_INFO']);
|
$part = pathinfo($_SERVER['PATH_INFO']);
|
||||||
define('__EXT__', isset($part['extension'])?strtolower($part['extension']):'');
|
define('__EXT__', isset($part['extension']) ? strtolower($part['extension']) : '');
|
||||||
$_SERVER['PATH_INFO'] = trim(preg_replace('/\.('.trim($config['url_html_suffix'],'.').')$/i', '',$_SERVER['PATH_INFO']),'/');
|
$_SERVER['PATH_INFO'] = trim(preg_replace('/\.(' . trim($config['url_html_suffix'], '.') . ')$/i', '', $_SERVER['PATH_INFO']), '/');
|
||||||
if($_SERVER['PATH_INFO']) {
|
if($_SERVER['PATH_INFO']) {
|
||||||
$paths = explode($config['pathinfo_depr'],$_SERVER['PATH_INFO']);
|
$paths = explode($config['pathinfo_depr'], $_SERVER['PATH_INFO']);
|
||||||
// 获取URL中的模块名
|
// 获取URL中的模块名
|
||||||
if($config['require_module'] && !isset($_GET[$var_m])) {
|
if($config['require_module'] && !isset($_GET[$var_m])) {
|
||||||
$_GET[$var_m] = array_shift($paths);
|
$_GET[$var_m] = array_shift($paths);
|
||||||
$_SERVER['PATH_INFO'] = implode('/',$paths);
|
$_SERVER['PATH_INFO'] = implode('/', $paths);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取模块名称
|
// 获取模块名称
|
||||||
define('MODULE_NAME',ucwords(strtolower(isset($_GET[$var_m])?$_GET[$var_m]:$config['default_module'])));
|
define('MODULE_NAME', ucwords(strtolower(isset($_GET[$var_m]) ? $_GET[$var_m] : $config['default_module'])));
|
||||||
|
|
||||||
// 模块初始化
|
// 模块初始化
|
||||||
if(MODULE_NAME && is_dir(APP_PATH.MODULE_NAME)) {
|
if(MODULE_NAME && is_dir( APP_PATH . MODULE_NAME )) {
|
||||||
define('MODULE_PATH',APP_PATH.MODULE_NAME.'/');
|
define('MODULE_PATH', APP_PATH . MODULE_NAME . '/');
|
||||||
Tag::listen('app_begin');
|
Tag::listen('app_begin');
|
||||||
// 加载模块初始化文件
|
// 加载模块初始化文件
|
||||||
if(is_file(MODULE_PATH.'init'.EXT)) {
|
if(is_file( MODULE_PATH . 'init' . EXT )) {
|
||||||
include MODULE_PATH.'init'.EXT;
|
include MODULE_PATH . 'init' . EXT;
|
||||||
$config = Config::get();
|
$config = Config::get();
|
||||||
}else{
|
}else{
|
||||||
// 检测项目(或模块)配置文件
|
// 检测项目(或模块)配置文件
|
||||||
if(is_file(MODULE_PATH.'config'.EXT)) {
|
if(is_file(MODULE_PATH . 'config' . EXT)) {
|
||||||
$config = Config::set(include MODULE_PATH.'config'.EXT);
|
$config = Config::set(include MODULE_PATH . 'config' . EXT);
|
||||||
}
|
}
|
||||||
if($config['app_status'] && is_file(MODULE_PATH.$config['app_status'].EXT)) {
|
if($config['app_status'] && is_file(MODULE_PATH . $config['app_status'] . EXT)) {
|
||||||
// 加载对应的项目配置文件
|
// 加载对应的项目配置文件
|
||||||
$config = Config::set(include MODULE_PATH.$config['app_status'].EXT);
|
$config = Config::set(include MODULE_PATH . $config['app_status'] . EXT);
|
||||||
}
|
}
|
||||||
// 加载别名文件
|
// 加载别名文件
|
||||||
if(is_file(MODULE_PATH.'alias'.EXT)) {
|
if(is_file(MODULE_PATH . 'alias' . EXT)) {
|
||||||
Loader::addMap(include MODULE_PATH.'alias'.EXT);
|
Loader::addMap(include MODULE_PATH . 'alias' . EXT);
|
||||||
}
|
}
|
||||||
// 加载公共文件
|
// 加载公共文件
|
||||||
if(is_file(MODULE_PATH.'common'.EXT)) {
|
if(is_file( MODULE_PATH . 'common' . EXT)) {
|
||||||
include MODULE_PATH.'common'.EXT;
|
include MODULE_PATH . 'common' . EXT;
|
||||||
}
|
}
|
||||||
if(is_file(MODULE_PATH.'tags'.EXT)) {
|
if(is_file(MODULE_PATH . 'tags' . EXT)) {
|
||||||
// 行为扩展文件
|
// 行为扩展文件
|
||||||
Tag::import(include MODULE_PATH.'tags'.EXT);
|
Tag::import(include MODULE_PATH . 'tags' . EXT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$var_c = $config['var_controller'];
|
$var_c = $config['var_controller'];
|
||||||
$var_a = $config['var_action'];
|
$var_a = $config['var_action'];
|
||||||
}else{
|
}else{
|
||||||
E('module not exists :'.MODULE_NAME,404);
|
E('module not exists :' . MODULE_NAME, 404);
|
||||||
}
|
}
|
||||||
// 路由检测和控制器、操作解析
|
// 路由检测和控制器、操作解析
|
||||||
Route::check($_SERVER['PATH_INFO']);
|
Route::check($_SERVER['PATH_INFO']);
|
||||||
|
|
||||||
// 获取控制器名
|
// 获取控制器名
|
||||||
define('CONTROLLER_NAME', strtolower(isset($_GET[$var_c])?$_GET[$var_c]:$config['default_controller']));
|
define('CONTROLLER_NAME', strtolower(isset($_GET[$var_c]) ? $_GET[$var_c] : $config['default_controller']));
|
||||||
|
|
||||||
// 获取操作名
|
// 获取操作名
|
||||||
define('ACTION_NAME', strtolower(isset($_GET[$var_a])?$_GET[$var_a]:$config['default_action']));
|
define('ACTION_NAME', strtolower(isset($_GET[$var_a]) ? $_GET[$var_a] : $config['default_action']));
|
||||||
|
|
||||||
unset($_GET[$var_a],$_GET[$var_c],$_GET[$var_m]);
|
unset($_GET[$var_a], $_GET[$var_c], $_GET[$var_m]);
|
||||||
//保证$_REQUEST正常取值
|
//保证$_REQUEST正常取值
|
||||||
$_REQUEST = array_merge($_POST,$_GET);
|
$_REQUEST = array_merge($_POST, $_GET);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user