mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 12:42:48 +08:00
取消APP_NAMESPACE常量定义 改为 App::$namespace 调整Build类的module和run方法 增加namespace参数
This commit is contained in:
1
base.php
1
base.php
@@ -27,7 +27,6 @@ defined('RUNTIME_PATH') or define('RUNTIME_PATH', ROOT_PATH . 'runtime' . DS);
|
|||||||
defined('LOG_PATH') or define('LOG_PATH', RUNTIME_PATH . 'log' . DS);
|
defined('LOG_PATH') or define('LOG_PATH', RUNTIME_PATH . 'log' . DS);
|
||||||
defined('CACHE_PATH') or define('CACHE_PATH', RUNTIME_PATH . 'cache' . DS);
|
defined('CACHE_PATH') or define('CACHE_PATH', RUNTIME_PATH . 'cache' . DS);
|
||||||
defined('TEMP_PATH') or define('TEMP_PATH', RUNTIME_PATH . 'temp' . DS);
|
defined('TEMP_PATH') or define('TEMP_PATH', RUNTIME_PATH . 'temp' . DS);
|
||||||
defined('APP_NAMESPACE') or define('APP_NAMESPACE', 'app');
|
|
||||||
defined('CONF_PATH') or define('CONF_PATH', APP_PATH); // 配置文件目录
|
defined('CONF_PATH') or define('CONF_PATH', APP_PATH); // 配置文件目录
|
||||||
defined('CONF_EXT') or define('CONF_EXT', EXT); // 配置文件后缀
|
defined('CONF_EXT') or define('CONF_EXT', EXT); // 配置文件后缀
|
||||||
defined('ENV_PREFIX') or define('ENV_PREFIX', 'PHP_'); // 环境变量的配置前缀
|
defined('ENV_PREFIX') or define('ENV_PREFIX', 'PHP_'); // 环境变量的配置前缀
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ return [
|
|||||||
// | 应用设置
|
// | 应用设置
|
||||||
// +----------------------------------------------------------------------
|
// +----------------------------------------------------------------------
|
||||||
|
|
||||||
|
// 应用命名空间
|
||||||
|
'app_namespace' => 'app',
|
||||||
// 应用调试模式
|
// 应用调试模式
|
||||||
'app_debug' => true,
|
'app_debug' => true,
|
||||||
// 应用模式状态
|
// 应用模式状态
|
||||||
|
|||||||
@@ -44,6 +44,11 @@ class App
|
|||||||
*/
|
*/
|
||||||
public static $debug = true;
|
public static $debug = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string 应用类库命名空间
|
||||||
|
*/
|
||||||
|
public static $namespace = 'app';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 执行应用程序
|
* 执行应用程序
|
||||||
* @access public
|
* @access public
|
||||||
@@ -300,15 +305,17 @@ class App
|
|||||||
{
|
{
|
||||||
if (empty(self::$init)) {
|
if (empty(self::$init)) {
|
||||||
// 初始化应用
|
// 初始化应用
|
||||||
self::$init = $config = self::init();
|
$config = self::init();
|
||||||
|
|
||||||
// 是否调试模式
|
// 应用调试模式
|
||||||
self::$debug = Config::get('app_debug');
|
self::$debug = Config::get('app_debug');
|
||||||
if (!self::$debug) {
|
if (!self::$debug) {
|
||||||
ini_set('display_errors', 'Off');
|
ini_set('display_errors', 'Off');
|
||||||
}
|
}
|
||||||
|
|
||||||
// 注册根命名空间
|
// 应用命名空间
|
||||||
|
self::$namespace = $config['app_namespace'];
|
||||||
|
Loader::addNamespace($config['app_namespace'], APP_PATH);
|
||||||
if (!empty($config['root_namespace'])) {
|
if (!empty($config['root_namespace'])) {
|
||||||
Loader::addNamespace($config['root_namespace']);
|
Loader::addNamespace($config['root_namespace']);
|
||||||
}
|
}
|
||||||
@@ -328,6 +335,8 @@ class App
|
|||||||
|
|
||||||
// 监听app_init
|
// 监听app_init
|
||||||
Hook::listen('app_init');
|
Hook::listen('app_init');
|
||||||
|
|
||||||
|
self::$init = $config;
|
||||||
}
|
}
|
||||||
return self::$init;
|
return self::$init;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,9 +17,10 @@ class Build
|
|||||||
* 根据传入的build资料创建目录和文件
|
* 根据传入的build资料创建目录和文件
|
||||||
* @access protected
|
* @access protected
|
||||||
* @param array $build build列表
|
* @param array $build build列表
|
||||||
|
* @param string $namespace 应用类库命名空间
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function run(array $build = [])
|
public static function run(array $build = [], $namespace = 'app')
|
||||||
{
|
{
|
||||||
// 锁定
|
// 锁定
|
||||||
$lockfile = APP_PATH . 'build.lock';
|
$lockfile = APP_PATH . 'build.lock';
|
||||||
@@ -37,7 +38,7 @@ class Build
|
|||||||
self::buildFile($list);
|
self::buildFile($list);
|
||||||
} else {
|
} else {
|
||||||
// 创建模块
|
// 创建模块
|
||||||
self::module($module, $list);
|
self::module($module, $list, $namespace);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 解除锁定
|
// 解除锁定
|
||||||
@@ -83,10 +84,11 @@ class Build
|
|||||||
* 创建模块
|
* 创建模块
|
||||||
* @access public
|
* @access public
|
||||||
* @param string $module 模块名
|
* @param string $module 模块名
|
||||||
* @param array $list build列表
|
* @param array $list build列表
|
||||||
|
* @param string $namespace 应用类库命名空间
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function module($module = '', $list = [])
|
public static function module($module = '', $list = [], $namespace = 'app')
|
||||||
{
|
{
|
||||||
$module = $module ? $module : '';
|
$module = $module ? $module : '';
|
||||||
if (!is_dir(APP_PATH . $module)) {
|
if (!is_dir(APP_PATH . $module)) {
|
||||||
@@ -97,7 +99,7 @@ class Build
|
|||||||
// 创建配置文件和公共文件
|
// 创建配置文件和公共文件
|
||||||
self::buildCommon($module);
|
self::buildCommon($module);
|
||||||
// 创建模块的默认页面
|
// 创建模块的默认页面
|
||||||
self::buildHello($module);
|
self::buildHello($module, $namespace);
|
||||||
}
|
}
|
||||||
if (empty($list)) {
|
if (empty($list)) {
|
||||||
// 创建默认的模块目录和文件
|
// 创建默认的模块目录和文件
|
||||||
@@ -129,7 +131,7 @@ class Build
|
|||||||
foreach ($file as $val) {
|
foreach ($file as $val) {
|
||||||
$val = trim($val);
|
$val = trim($val);
|
||||||
$filename = $modulePath . $path . DS . $val . (CLASS_APPEND_SUFFIX ? ucfirst($path) : '') . EXT;
|
$filename = $modulePath . $path . DS . $val . (CLASS_APPEND_SUFFIX ? ucfirst($path) : '') . EXT;
|
||||||
$namespace = APP_NAMESPACE . '\\' . ($module ? $module . '\\' : '') . $path;
|
$namespace = $namespace . '\\' . ($module ? $module . '\\' : '') . $path;
|
||||||
$class = $val . (CLASS_APPEND_SUFFIX ? ucfirst($path) : '');
|
$class = $val . (CLASS_APPEND_SUFFIX ? ucfirst($path) : '');
|
||||||
switch ($path) {
|
switch ($path) {
|
||||||
case 'controller': // 控制器
|
case 'controller': // 控制器
|
||||||
@@ -163,14 +165,15 @@ class Build
|
|||||||
* 创建模块的欢迎页面
|
* 创建模块的欢迎页面
|
||||||
* @access public
|
* @access public
|
||||||
* @param string $module 模块名
|
* @param string $module 模块名
|
||||||
|
* @param string $namespace 应用类库命名空间
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected static function buildHello($module)
|
protected static function buildHello($module, $namespace)
|
||||||
{
|
{
|
||||||
$filename = APP_PATH . ($module ? $module . DS : '') . 'controller' . DS . 'Index' . (CLASS_APPEND_SUFFIX ? 'Controller' : '') . EXT;
|
$filename = APP_PATH . ($module ? $module . DS : '') . 'controller' . DS . 'Index' . (CLASS_APPEND_SUFFIX ? 'Controller' : '') . EXT;
|
||||||
if (!is_file($filename)) {
|
if (!is_file($filename)) {
|
||||||
$content = file_get_contents(THINK_PATH . 'tpl' . DS . 'default_index.tpl');
|
$content = file_get_contents(THINK_PATH . 'tpl' . DS . 'default_index.tpl');
|
||||||
$content = str_replace(['{$app}', '{$module}', '{layer}', '{$suffix}'], [APP_NAMESPACE, $module ? $module . '\\' : '', 'controller', CLASS_APPEND_SUFFIX ? 'Controller' : ''], $content);
|
$content = str_replace(['{$app}', '{$module}', '{layer}', '{$suffix}'], [$namespace, $module ? $module . '\\' : '', 'controller', CLASS_APPEND_SUFFIX ? 'Controller' : ''], $content);
|
||||||
if (!is_dir(dirname($filename))) {
|
if (!is_dir(dirname($filename))) {
|
||||||
mkdir(dirname($filename), 0777, true);
|
mkdir(dirname($filename), 0777, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -464,6 +464,6 @@ class Loader
|
|||||||
$array = explode('\\', $name);
|
$array = explode('\\', $name);
|
||||||
$class = self::parseName(array_pop($array), 1) . (CLASS_APPEND_SUFFIX || $appendSuffix ? ucfirst($layer) : '');
|
$class = self::parseName(array_pop($array), 1) . (CLASS_APPEND_SUFFIX || $appendSuffix ? ucfirst($layer) : '');
|
||||||
$path = $array ? implode('\\', $array) . '\\' : '';
|
$path = $array ? implode('\\', $array) . '\\' : '';
|
||||||
return APP_NAMESPACE . '\\' . ($module ? $module . '\\' : '') . $layer . '\\' . $path . $class;
|
return App::$namespace . '\\' . ($module ? $module . '\\' : '') . $layer . '\\' . $path . $class;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
namespace think\console\command\make;
|
namespace think\console\command\make;
|
||||||
|
|
||||||
|
use think\App;
|
||||||
use think\console\Input;
|
use think\console\Input;
|
||||||
use think\console\input\Argument;
|
use think\console\input\Argument;
|
||||||
use think\console\input\Option;
|
use think\console\input\Option;
|
||||||
@@ -39,7 +40,7 @@ class Controller extends \think\console\command\Make
|
|||||||
|
|
||||||
// 处理命名空间
|
// 处理命名空间
|
||||||
if (!empty($module)) {
|
if (!empty($module)) {
|
||||||
$namespace = APP_NAMESPACE . "\\" . $module . "\\" . 'controller' . "\\" . $namespace;
|
$namespace = App::$namespace . "\\" . $module . "\\" . 'controller' . "\\" . $namespace;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理继承
|
// 处理继承
|
||||||
@@ -50,7 +51,7 @@ class Controller extends \think\console\command\Make
|
|||||||
} else {
|
} else {
|
||||||
if (!preg_match("/\\\/", $extend)) {
|
if (!preg_match("/\\\/", $extend)) {
|
||||||
if (!empty($module)) {
|
if (!empty($module)) {
|
||||||
$extend = "\\" . APP_NAMESPACE . "\\" . $module . "\\" . 'controller' . "\\" . $extend;
|
$extend = "\\" . App::$namespace . "\\" . $module . "\\" . 'controller' . "\\" . $extend;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,10 +15,9 @@
|
|||||||
return [
|
return [
|
||||||
// 命名空间
|
// 命名空间
|
||||||
'namespace' => [
|
'namespace' => [
|
||||||
'think' => LIB_PATH . 'think' . DS,
|
'think' => LIB_PATH . 'think' . DS,
|
||||||
'behavior' => LIB_PATH . 'behavior' . DS,
|
'behavior' => LIB_PATH . 'behavior' . DS,
|
||||||
'traits' => LIB_PATH . 'traits' . DS,
|
'traits' => LIB_PATH . 'traits' . DS,
|
||||||
APP_NAMESPACE => APP_PATH,
|
|
||||||
],
|
],
|
||||||
|
|
||||||
// 配置文件
|
// 配置文件
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ return [
|
|||||||
'think' => LIB_PATH . 'think' . DS,
|
'think' => LIB_PATH . 'think' . DS,
|
||||||
'behavior' => LIB_PATH . 'behavior' . DS,
|
'behavior' => LIB_PATH . 'behavior' . DS,
|
||||||
'traits' => LIB_PATH . 'traits' . DS,
|
'traits' => LIB_PATH . 'traits' . DS,
|
||||||
APP_NAMESPACE => APP_PATH,
|
|
||||||
],
|
],
|
||||||
|
|
||||||
// 配置文件
|
// 配置文件
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ class baseTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertNotEmpty(CORE_PATH);
|
$this->assertNotEmpty(CORE_PATH);
|
||||||
$this->assertNotEmpty(TRAIT_PATH);
|
$this->assertNotEmpty(TRAIT_PATH);
|
||||||
$this->assertNotEmpty(APP_PATH);
|
$this->assertNotEmpty(APP_PATH);
|
||||||
$this->assertNotEmpty(APP_NAMESPACE);
|
|
||||||
$this->assertNotEmpty(RUNTIME_PATH);
|
$this->assertNotEmpty(RUNTIME_PATH);
|
||||||
$this->assertNotEmpty(LOG_PATH);
|
$this->assertNotEmpty(LOG_PATH);
|
||||||
$this->assertNotEmpty(CACHE_PATH);
|
$this->assertNotEmpty(CACHE_PATH);
|
||||||
|
|||||||
Reference in New Issue
Block a user