本文整理匯總了PHP中think\Loader::addNamespace方法的典型用法代碼示例。如果您正苦於以下問題:PHP Loader::addNamespace方法的具體用法?PHP Loader::addNamespace怎麽用?PHP Loader::addNamespace使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類think\Loader
的用法示例。
在下文中一共展示了Loader::addNamespace方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: init
private static function init()
{
// 加載初始化文件
if (is_file(APP_PATH . 'init' . EXT)) {
include APP_PATH . 'init' . EXT;
// 加載模塊配置
$config = Config::get();
} else {
// 加載模塊配置
$config = Config::load(APP_PATH . 'config' . EXT);
// 加載應用狀態配置
if ($config['app_status']) {
$config = Config::load(APP_PATH . $config['app_status'] . EXT);
}
// 讀取擴展配置文件
if ($config['extra_config_list']) {
foreach ($config['extra_config_list'] as $name => $file) {
$filename = APP_PATH . $file . EXT;
Config::load($filename, is_string($name) ? $name : pathinfo($filename, PATHINFO_FILENAME));
}
}
// 加載別名文件
if (is_file(APP_PATH . 'alias' . EXT)) {
Loader::addMap(include APP_PATH . 'alias' . EXT);
}
// 加載行為擴展文件
if (APP_HOOK && is_file(APP_PATH . 'tags' . EXT)) {
Hook::import(include APP_PATH . 'tags' . EXT);
}
// 加載公共文件
if (is_file(APP_PATH . 'common' . EXT)) {
include APP_PATH . 'common' . EXT;
}
}
// 注冊根命名空間
if (!empty($config['root_namespace'])) {
Loader::addNamespace($config['root_namespace']);
}
// 加載額外文件
if (!empty($config['extra_file_list'])) {
foreach ($config['extra_file_list'] as $file) {
$file = strpos($file, '.') ? $file : APP_PATH . $file . EXT;
if (is_file($file)) {
include_once $file;
}
}
}
// 設置係統時區
date_default_timezone_set($config['default_timezone']);
// 監聽app_init
APP_HOOK && Hook::listen('app_init');
}
示例2: run
/**
* 執行應用程序
* @access public
* @param \think\Request $request Request對象
* @return \think\Response
* @throws Exception
*/
public static function run($request)
{
// 初始化應用(公共模塊)
self::initModule(COMMON_MODULE, Config::get());
// 獲取配置參數
$config = Config::get();
// 注冊根命名空間
if (!empty($config['root_namespace'])) {
Loader::addNamespace($config['root_namespace']);
}
// 加載額外文件
if (!empty($config['extra_file_list'])) {
foreach ($config['extra_file_list'] as $file) {
$file = strpos($file, '.') ? $file : APP_PATH . $file . EXT;
if (is_file($file)) {
include_once $file;
}
}
}
// 設置係統時區
date_default_timezone_set($config['default_timezone']);
// 監聽app_init
APP_HOOK && Hook::listen('app_init');
// 開啟多語言機製
if ($config['lang_switch_on']) {
// 獲取當前語言
defined('LANG_SET') or define('LANG_SET', Lang::range());
// 加載係統語言包
Lang::load(THINK_PATH . 'lang' . DS . LANG_SET . EXT);
if (!APP_MULTI_MODULE) {
Lang::load(APP_PATH . 'lang' . DS . LANG_SET . EXT);
}
}
// 獲取當前請求的調度信息
$dispatch = $request->dispatch();
if (empty($dispatch)) {
// 未指定調度類型 則進行URL路由檢測
$dispatch = self::route($request, $config);
}
// 記錄路由信息
APP_DEBUG && Log::record('[ ROUTE ] ' . var_export($dispatch, true), 'info');
// 監聽app_begin
APP_HOOK && Hook::listen('app_begin', $dispatch);
try {
switch ($dispatch['type']) {
case 'redirect':
// 執行重定向跳轉
header('Location: ' . $dispatch['url'], true, $dispatch['status']);
break;
case 'module':
// 模塊/控製器/操作
$data = self::module($dispatch['module'], $config);
break;
case 'controller':
// 執行控製器操作
$data = Loader::action($dispatch['controller'], $dispatch['params']);
break;
case 'method':
// 執行回調方法
$data = self::invokeMethod($dispatch['method'], $dispatch['params']);
break;
case 'function':
// 規則閉包
$data = self::invokeFunction($dispatch['function'], $dispatch['params']);
break;
case 'finish':
// 已經完成 不再繼續執行
break;
default:
throw new Exception('dispatch type not support', 10008);
}
} catch (HttpResponseException $exception) {
$data = $exception->getResponse();
}
// 輸出數據到客戶端
if (isset($data)) {
if ($data instanceof Response) {
return $data->send();
} else {
// 監聽app_end
APP_HOOK && Hook::listen('app_end', $data);
// 自動響應輸出
return Response::instance()->send($data, '', Config::get('response_return'));
}
}
}
示例3: initCommon
/**
* 初始化應用
*/
public static function initCommon()
{
if (empty(self::$init)) {
// 初始化應用
$config = self::init();
self::$suffix = $config['class_suffix'];
// 應用調試模式
self::$debug = Config::get('app_debug');
if (!self::$debug) {
ini_set('display_errors', 'Off');
} else {
//重新申請一塊比較大的buffer
if (ob_get_level() > 0) {
$output = ob_get_clean();
}
ob_start();
if (!empty($output)) {
echo $output;
}
}
// 應用命名空間
self::$namespace = $config['app_namespace'];
Loader::addNamespace($config['app_namespace'], APP_PATH);
if (!empty($config['root_namespace'])) {
Loader::addNamespace($config['root_namespace']);
}
// 加載額外文件
if (!empty($config['extra_file_list'])) {
foreach ($config['extra_file_list'] as $file) {
$file = strpos($file, '.') ? $file : APP_PATH . $file . EXT;
if (is_file($file)) {
include_once $file;
}
}
}
// 設置係統時區
date_default_timezone_set($config['default_timezone']);
// 監聽app_init
Hook::listen('app_init');
self::$init = $config;
}
return self::$init;
}
示例4: define
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
// 測試入口文件
define('IN_UNIT_TEST', true);
$_SERVER['REQUEST_METHOD'] = 'GET';
// 定義項目測試基礎路徑
define('TEST_PATH', __DIR__ . '/');
// 定義項目路徑
define('APP_PATH', __DIR__ . '/../../application/');
// 開啟調試模式
define('APP_DEBUG', true);
// 加載框架引導文件
require __DIR__ . '/../start.php';
\think\Loader::addNamespace('tests', TEST_PATH);
示例5: define
<?php
/**
* Created by PhpStorm.
* User: remo
* Date: 2016/7/20
* Time: 12:49
*/
/**
* Created by PhpStorm.
* User: remo
* Date: 2016/7/20
* Time: 12:49
*/
define('TEST_PATH', __DIR__ . '/');
// 加載框架基礎文件
require __DIR__ . '/../thinkphp/base.php';
\think\Loader::addNamespace('tests', TEST_PATH);
\think\Loader::addNamespace('think', __DIR__ . '/../src/');
示例6: testAddNamespace
public function testAddNamespace()
{
Loader::addNamespace('top', __DIR__ . DS . 'loader' . DS);
$this->assertEquals(true, Loader::autoload('top\\test\\Hello'));
}