This commit is contained in:
upfy@qq.com
2015-12-08 09:57:45 +08:00
15 changed files with 98 additions and 74 deletions

View File

@@ -12,20 +12,21 @@
// 版本信息
define('THINK_VERSION', '5.0beta');
// 系统常量
defined('THINK_PATH') or define('THINK_PATH', dirname(__FILE__) . '/');
defined('LIB_PATH') or define('LIB_PATH', THINK_PATH . 'library/');
defined('MODE_PATH') or define('MODE_PATH', THINK_PATH . 'mode/'); // 系统应用模式目录
defined('TRAIT_PATH') or define('TRAIT_PATH', THINK_PATH . 'traits/');
defined('CORE_PATH') or define('CORE_PATH', LIB_PATH . 'think/');
defined('ORG_PATH') or define('ORG_PATH', LIB_PATH . 'org/');
defined('APP_PATH') or define('APP_PATH', dirname($_SERVER['SCRIPT_FILENAME']) . '/');
defined('DS') or define('DS', DIRECTORY_SEPARATOR);
defined('THINK_PATH') or define('THINK_PATH', dirname(__FILE__).DS);
defined('LIB_PATH') or define('LIB_PATH', THINK_PATH.'library'.DS);
defined('MODE_PATH') or define('MODE_PATH', THINK_PATH.'mode'.DS); // 系统应用模式目录
defined('TRAIT_PATH') or define('TRAIT_PATH', THINK_PATH.'traits'.DS);
defined('CORE_PATH') or define('CORE_PATH', LIB_PATH.'think'.DS);
defined('ORG_PATH') or define('ORG_PATH', LIB_PATH . 'org'.DS);
defined('APP_PATH') or define('APP_PATH', dirname($_SERVER['SCRIPT_FILENAME']).DS);
defined('COMMON_MODULE') or define('COMMON_MODULE', 'common');
defined('RUNTIME_PATH') or define('RUNTIME_PATH', realpath(APP_PATH) . '/runtime/');
defined('DATA_PATH') or define('DATA_PATH', RUNTIME_PATH . 'data/');
defined('LOG_PATH') or define('LOG_PATH', RUNTIME_PATH . 'log/');
defined('CACHE_PATH') or define('CACHE_PATH', RUNTIME_PATH . 'cache/');
defined('TEMP_PATH') or define('TEMP_PATH', RUNTIME_PATH . 'temp/');
defined('VENDOR_PATH') or define('VENDOR_PATH', THINK_PATH . 'vendor/');
defined('RUNTIME_PATH') or define('RUNTIME_PATH', realpath(APP_PATH).DS.'runtime'.DS);
defined('DATA_PATH') or define('DATA_PATH', RUNTIME_PATH.'data'.DS);
defined('LOG_PATH') or define('LOG_PATH', RUNTIME_PATH.'log'.DS);
defined('CACHE_PATH') or define('CACHE_PATH', RUNTIME_PATH.'cache'.DS);
defined('TEMP_PATH') or define('TEMP_PATH', RUNTIME_PATH.'temp'.DS);
defined('VENDOR_PATH') or define('VENDOR_PATH', THINK_PATH.'vendor'.DS);
defined('EXT') or define('EXT', '.php');
defined('MODEL_LAYER') or define('MODEL_LAYER', 'model');
defined('VIEW_LAYER') or define('VIEW_LAYER', 'view');
@@ -240,10 +241,10 @@ function session($name, $value = '')
return think\Session::get($name);
} elseif (is_null($value)) {
// 删除session
think\Session::delete($name);
return think\Session::delete($name);
} else {
// 设置session
think\Session::set($name, $value);
return think\Session::set($name, $value);
}
}
@@ -263,7 +264,7 @@ function cookie($name, $value = '')
return think\Cookie::delete($name);
} else {
// 设置session
think\Cookie::set($name, $value);
return think\Cookie::set($name, $value);
}
}

View File

@@ -35,10 +35,10 @@ class ContentReplace
{
if(IS_CGI) {
//CGI/FASTCGI模式下
$_temp = explode('.php',$_SERVER['PHP_SELF']);
$script_name = rtrim(str_replace($_SERVER['HTTP_HOST'],'',$_temp[0].'.php'),'/');
$_temp = explode('.php',$_SERVER['PHP_SELF']);
$script_name = rtrim(str_replace($_SERVER['HTTP_HOST'],'',$_temp[0].'.php'),'/');
} else {
$script_name = rtrim($_SERVER['SCRIPT_NAME'],'/');
$script_name = rtrim($_SERVER['SCRIPT_NAME'],'/');
}
define('ROOT_URL', rtrim(dirname(str_replace("\\","\/",$script_name)),'/'));
define('MODULE_URL', ROOT_URL.'/'.(defined('MODULE_ALIAS')?MODULE_ALIAS:MODULE_NAME));
@@ -47,13 +47,19 @@ class ContentReplace
// 系统默认的特殊变量替换
$replace = [
'__ROOT__' => ROOT_URL, // 当前网站地址
'__APP__' => MODULE_URL, // 当前项目地址
'__CONTROLL__' => CONTROLLER_URL, // 当前操作地址
'__URL__' => CONTROLLER_URL,
'__ACTION__' => ACTION_URL, // 当前操作地址
'__SELF__' => $_SERVER['PHP_SELF'], // 当前页面地址
'__PUBLIC__' => ROOT_URL.'/Public',// 站点公共目录
// 当前网站地址
'__ROOT__' => ROOT_URL,
// 当前项目地址
'__APP__' => MODULE_URL,
// 当前操作地址
'__CONTROLL__' => CONTROLLER_URL,
'__URL__' => CONTROLLER_URL,
// 当前操作地址
'__ACTION__' => ACTION_URL,
// 当前页面地址
'__SELF__' => $_SERVER['PHP_SELF'],
// 站点公共目录
'__PUBLIC__' => ROOT_URL.'/Public',
];
// 允许用户自定义模板的字符串替换
if(is_array(Config::get('tmpl_parse_string')) ){

View File

@@ -55,18 +55,23 @@ class ReadHtmlCache
$moduleName = strtolower(MODULE_NAME);
$actionName = strtolower(ACTION_NAME);
if (isset($htmls[$moduleName . ':' . $actionName])) {
$html = $htmls[$moduleName . ':' . $actionName]; // 某个模块的操作的静态规则
// 某个模块的操作的静态规则
$html = $htmls[$moduleName . ':' . $actionName];
} elseif (isset($htmls[$moduleName . ':'])) {
// 某个模块的静态规则
// 某个模块的静态规则
$html = $htmls[$moduleName . ':'];
} elseif (isset($htmls[$actionName])) {
$html = $htmls[$actionName]; // 所有操作的静态规则
// 所有操作的静态规则
$html = $htmls[$actionName];
} elseif (isset($htmls['*'])) {
$html = $htmls['*']; // 全局静态规则
// 全局静态规则
$html = $htmls['*'];
} elseif (isset($htmls['empty:index']) && !class_exists(MODULE_NAME . 'Action')) {
$html = $htmls['empty:index']; // 空模块静态规则
// 空模块静态规则
$html = $htmls['empty:index'];
} elseif (isset($htmls[$moduleName . ':_empty']) && self::isEmptyAction(MODULE_NAME, ACTION_NAME)) {
$html = $htmls[$moduleName . ':_empty']; // 空操作静态规则
// 空操作静态规则
$html = $htmls[$moduleName . ':_empty'];
}
if (!empty($html)) {
// 解读静态规则
@@ -88,7 +93,8 @@ class ReadHtmlCache
$rule = $html[2]($rule);
}
// 应用附加函数
$cacheTime = isset($html[1]) ? $html[1] : C('HTML_CACHE_TIME'); // 缓存有效期
// 缓存有效期
$cacheTime = isset($html[1]) ? $html[1] : C('HTML_CACHE_TIME');
// 当前缓存文件
define('HTML_FILE_NAME', HTML_PATH . $rule . C('HTML_FILE_SUFFIX'));
return $cacheTime;
@@ -130,5 +136,4 @@ class ReadHtmlCache
$class = new $className;
return !method_exists($class, $action);
}
}

View File

@@ -65,16 +65,19 @@ class ShowPageTrace
$tabs = Config::get('trace_page_tabs');
foreach ($tabs as $name => $title) {
switch (strtoupper($name)) {
case 'BASE': // 基本信息
// 基本信息
case 'BASE':
$trace[$title] = $base;
break;
case 'FILE': // 文件信息
// 文件信息
case 'FILE':
$trace[$title] = $info;
break;
default: // 调试信息
// 调试信息
default:
$name = strtoupper($name);
if (strpos($name, '|')) {
// 多组信息
// 多组信息
$array = explode('|', $name);
$result = [];
foreach ($array as $name) {

View File

@@ -9,6 +9,7 @@
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
namespace think\behavior;
use think\Behavior;
/**
@@ -22,10 +23,14 @@ class TokenBuild extends Behavior
{
// 行为参数定义
protected $options = [
'TOKEN_ON' => false, // 开启令牌验证
'TOKEN_NAME' => '__hash__', // 令牌验证的表单隐藏字段名称
'TOKEN_TYPE' => 'md5', // 令牌验证哈希规则
'TOKEN_RESET' => true, // 令牌错误后是否重置
// 开启令牌验证
'TOKEN_ON' => false,
// 令牌验证的表单隐藏字段名称
'TOKEN_NAME' => '__hash__',
// 令牌验证哈希规则
'TOKEN_TYPE' => 'md5',
// 令牌错误后是否重置
'TOKEN_RESET' => true,
];
public function run(&$content)
@@ -54,7 +59,7 @@ class TokenBuild extends Behavior
// 标识当前页面唯一性
$tokenKey = md5($_SERVER['REQUEST_URI']);
if (isset($_SESSION[$tokenName][$tokenKey])) {
// 相同页面不重复生成session
// 相同页面不重复生成session
$tokenValue = $_SESSION[$tokenName][$tokenKey];
} else {
$tokenValue = $tokenType(microtime(true));

View File

@@ -19,7 +19,7 @@ namespace think;
abstract class Behavior {
// 行为参数 和配置参数设置相同
protected $options = array();
protected $options = [];
/**
* 架构函数

View File

@@ -124,7 +124,8 @@ class Cookie
$prefix = $prefix ? $prefix : $config['prefix'];
$name = $prefix . $name;
setcookie($name, '', time() - 3600, $config['path'], $config['domain'], $config['secure'], $config['httponly']);
unset($_COOKIE[$name]); // 删除指定cookie
// 删除指定cookie
unset($_COOKIE[$name]);
}
/**
@@ -143,7 +144,7 @@ class Cookie
$config = self::$config;
$prefix = $prefix ? $prefix : $config['prefix'];
if ($prefix) {
// 如果前缀为空字符串将不作处理直接返回
// 如果前缀为空字符串将不作处理直接返回
foreach ($_COOKIE as $key => $val) {
if (0 === strpos($key, $prefix)) {
setcookie($key, '', time() - 3600, $config['path'], $config['domain'], $config['secure'], $config['httponly']);

View File

@@ -20,11 +20,13 @@ class Error
*/
public static function appException($e)
{
$error['message'] = $e->getMessage();
$error['file'] = $e->getFile();
$error['line'] = $e->getLine();
$error['trace'] = $e->getTraceAsString();
$error['code'] = $e->getCode();
$error = [
'message' => $e->getMessage(),
'file' => $e->getFile(),
'line' => $e->getLine(),
'trace' => $e->getTraceAsString(),
'code' => $e->getCode(),
];
// 记录异常日志
Log::record($error['message'], 'ERR');
// 发送404信息
@@ -98,9 +100,11 @@ class Error
exit($message);
} elseif (IS_API) {
// API接口
$data['code'] = $code;
$data['msg'] = $message;
$data['time'] = NOW_TIME;
$data = [
'code' => $code,
'msg' => $message,
'time' => NOW_TIME,
];
Response::returnData($data);
exit();
}

View File

@@ -11,13 +11,11 @@
namespace think\model;
use traits\think\model\extend;
use traits\think\model\query;
T('think/model/extend');
T('think/model/adv');
T('think/model/query');
class ExtendModel extends \think\model
class Adv extends \think\model
{
use extend, query;
use traits\think\model\adv;
use traits\think\model\query;
}

View File

@@ -17,7 +17,7 @@ use think\Loader;
* MongoModel模型类
* 实现了ODM和ActiveRecords模式
*/
class MongoModel extends \Think\Model
class Mongo extends \Think\Model
{
// 主键类型
const TYPE_OBJECT = 1;

View File

@@ -12,7 +12,7 @@
namespace think\model;
T('think/model/relation');
class RelationModel extends \think\model
class Relation extends \think\model
{
use \traits\think\model\relation;
}

View File

@@ -12,7 +12,7 @@
namespace think\model;
T('think/model/view');
class ViewModel extends \think\model
class View extends \think\model
{
use \traits\think\model\view;
}

View File

@@ -69,10 +69,12 @@ class Response
*/
public static function result($data, $code = 0, $msg = '', $type = '')
{
$result['code'] = $code;
$result['msg'] = $msg;
$result['time'] = NOW_TIME;
$result['data'] = $data;
$result = [
'code' => $code,
'msg' => $msg,
'time' => NOW_TIME,
'data' => $data
];
self::returnData($result, $type);
}

View File

@@ -21,19 +21,19 @@ return [
'alias' => [
'think\App' => CORE_PATH . 'app' . EXT,
'think\Log' => CORE_PATH . 'log' . EXT,
'think\log\driver\File' => CORE_PATH . 'log/driver/file' . EXT,
'think\log\driver\File' => CORE_PATH . 'log' . DS . 'driver' . DS . 'file' . EXT,
'think\Config' => CORE_PATH . 'config' . EXT,
'think\Route' => CORE_PATH . 'route' . EXT,
'think\Exception' => CORE_PATH . 'exception' . EXT,
'think\Model' => CORE_PATH . 'model' . EXT,
'think\Db' => CORE_PATH . 'db' . EXT,
'think\Db\Driver' => CORE_PATH . 'db/driver' . EXT,
'think\Db\Driver' => CORE_PATH . 'db'.DS.'driver' . EXT,
'think\Template' => CORE_PATH . 'template' . EXT,
'think\view\driver\Think' => CORE_PATH . 'view/driver/think' . EXT,
'think\template\driver\File' => CORE_PATH . 'template/driver/file' . EXT,
'think\view\driver\Think' => CORE_PATH . 'view' . DS . 'driver' . DS . 'think' . EXT,
'think\template\driver\File' => CORE_PATH . 'template' . DS . 'driver' . DS . 'file' . EXT,
'think\Error' => CORE_PATH . 'error' . EXT,
'think\Cache' => CORE_PATH . 'cache' . EXT,
'think\cache\driver\File' => CORE_PATH . 'cache/driver/file' . EXT,
'think\cache\driver\File' => CORE_PATH . 'cache' . DS . 'driver' . DS . 'file' . EXT,
'think\Hook' => CORE_PATH . 'hook' . EXT,
'think\Session' => CORE_PATH . 'session' . EXT,
'think\Cookie' => CORE_PATH . 'cookie' . EXT,

View File

@@ -14,9 +14,8 @@ namespace traits\think\model;
use think\Lang;
use think\Loader;
trait Extend
trait Adv
{
protected $partition = [];
/**