mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 23:22:48 +08:00
修正
This commit is contained in:
102
helper.php
102
helper.php
@@ -9,6 +9,18 @@
|
|||||||
// | Author: liu21st <liu21st@gmail.com>
|
// | Author: liu21st <liu21st@gmail.com>
|
||||||
// +----------------------------------------------------------------------
|
// +----------------------------------------------------------------------
|
||||||
|
|
||||||
|
use think\Cache;
|
||||||
|
use think\Config;
|
||||||
|
use think\Cookie;
|
||||||
|
use think\Db;
|
||||||
|
use think\Debug;
|
||||||
|
use think\Input;
|
||||||
|
use think\Lang;
|
||||||
|
use think\Loader;
|
||||||
|
use think\Session;
|
||||||
|
use think\Url;
|
||||||
|
use think\View;
|
||||||
|
|
||||||
//------------------------
|
//------------------------
|
||||||
// ThinkPHP 助手函数
|
// ThinkPHP 助手函数
|
||||||
//-------------------------
|
//-------------------------
|
||||||
@@ -16,21 +28,21 @@
|
|||||||
// 获取多语言变量
|
// 获取多语言变量
|
||||||
function L($name, $vars = [], $lang = '')
|
function L($name, $vars = [], $lang = '')
|
||||||
{
|
{
|
||||||
return \think\Lang::get($name, $vars, $lang);
|
return Lang::get($name, $vars, $lang);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取配置参数
|
// 获取配置参数
|
||||||
function C($name = '', $value = null, $range = '')
|
function C($name = '', $value = null, $range = '')
|
||||||
{
|
{
|
||||||
if (is_null($value) && is_string($name)) {
|
if (is_null($value) && is_string($name)) {
|
||||||
return \think\Config::get($name, $range);
|
return Config::get($name, $range);
|
||||||
} else {
|
} else {
|
||||||
return \think\Config::set($name, $value, $range);
|
return Config::set($name, $value, $range);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取输入数据 支持默认值和过滤
|
// 获取输入数据 支持默认值和过滤
|
||||||
function I($key, $default = null, $filter = '', $merge = false)
|
function I($key, $default = null, $filter = null, $merge = false)
|
||||||
{
|
{
|
||||||
if (0 === strpos($key, '?')) {
|
if (0 === strpos($key, '?')) {
|
||||||
$key = substr($key, 1);
|
$key = substr($key, 1);
|
||||||
@@ -50,7 +62,7 @@ function I($key, $default = null, $filter = '', $merge = false)
|
|||||||
// 默认为自动判断
|
// 默认为自动判断
|
||||||
$method = 'param';
|
$method = 'param';
|
||||||
}
|
}
|
||||||
return \think\Input::$method($has . $key, $default, $filter, $merge);
|
return Input::$method($has . $key, $default, $filter, $merge);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -63,24 +75,12 @@ function I($key, $default = null, $filter = '', $merge = false)
|
|||||||
function G($start, $end = '', $dec = 6)
|
function G($start, $end = '', $dec = 6)
|
||||||
{
|
{
|
||||||
if ('' == $end) {
|
if ('' == $end) {
|
||||||
\think\Debug::remark($start);
|
Debug::remark($start);
|
||||||
} else {
|
} else {
|
||||||
return 'm' == $dec ? \think\Debug::getRangeMem($start, $end) : \think\Debug::getRangeTime($start, $end, $dec);
|
return 'm' == $dec ? Debug::getRangeMem($start, $end) : Debug::getRangeTime($start, $end, $dec);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 实例化一个没有模型文件的Model
|
|
||||||
* @param string $name Model名称 支持指定基础模型 例如 MongoModel:User
|
|
||||||
* @param string|null $tablePrefix 表前缀 null表示自动获取配置
|
|
||||||
* @param mixed $connection 数据库连接信息
|
|
||||||
* @return \Think\Model
|
|
||||||
*/
|
|
||||||
function M($name = '', $tablePrefix = null, $connection = '')
|
|
||||||
{
|
|
||||||
return \think\Loader::table($name, ['prefix' => $tablePrefix, 'connection' => $connection]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实例化Model
|
* 实例化Model
|
||||||
* @param string $name Model名称
|
* @param string $name Model名称
|
||||||
@@ -89,7 +89,7 @@ function M($name = '', $tablePrefix = null, $connection = '')
|
|||||||
*/
|
*/
|
||||||
function D($name = '', $layer = MODEL_LAYER)
|
function D($name = '', $layer = MODEL_LAYER)
|
||||||
{
|
{
|
||||||
return \think\Loader::model($name, $layer);
|
return Loader::model($name, $layer);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -99,7 +99,7 @@ function D($name = '', $layer = MODEL_LAYER)
|
|||||||
*/
|
*/
|
||||||
function db($config = [])
|
function db($config = [])
|
||||||
{
|
{
|
||||||
return \think\Db::connect($config);
|
return Db::connect($config);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -110,7 +110,7 @@ function db($config = [])
|
|||||||
*/
|
*/
|
||||||
function A($name, $layer = CONTROLLER_LAYER)
|
function A($name, $layer = CONTROLLER_LAYER)
|
||||||
{
|
{
|
||||||
return \think\Loader::controller($name, $layer);
|
return Loader::controller($name, $layer);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -122,7 +122,7 @@ function A($name, $layer = CONTROLLER_LAYER)
|
|||||||
*/
|
*/
|
||||||
function R($url, $vars = [], $layer = CONTROLLER_LAYER)
|
function R($url, $vars = [], $layer = CONTROLLER_LAYER)
|
||||||
{
|
{
|
||||||
return \think\Loader::action($url, $vars, $layer);
|
return Loader::action($url, $vars, $layer);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -134,7 +134,7 @@ function R($url, $vars = [], $layer = CONTROLLER_LAYER)
|
|||||||
*/
|
*/
|
||||||
function import($class, $baseUrl = '', $ext = EXT)
|
function import($class, $baseUrl = '', $ext = EXT)
|
||||||
{
|
{
|
||||||
return \think\Loader::import($class, $baseUrl, $ext);
|
return Loader::import($class, $baseUrl, $ext);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -145,7 +145,7 @@ function import($class, $baseUrl = '', $ext = EXT)
|
|||||||
*/
|
*/
|
||||||
function vendor($class, $ext = EXT)
|
function vendor($class, $ext = EXT)
|
||||||
{
|
{
|
||||||
return \think\Loader::import($class, VENDOR_PATH, $ext);
|
return Loader::import($class, VENDOR_PATH, $ext);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -156,7 +156,7 @@ function vendor($class, $ext = EXT)
|
|||||||
*/
|
*/
|
||||||
function T($class, $ext = EXT)
|
function T($class, $ext = EXT)
|
||||||
{
|
{
|
||||||
return \think\Loader::import($class, TRAIT_PATH, $ext);
|
return Loader::import($class, TRAIT_PATH, $ext);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -164,12 +164,14 @@ function T($class, $ext = EXT)
|
|||||||
*
|
*
|
||||||
* @param string $msg 异常消息
|
* @param string $msg 异常消息
|
||||||
* @param integer $code 异常代码 默认为0
|
* @param integer $code 异常代码 默认为0
|
||||||
|
* @param string $exception 异常类
|
||||||
*
|
*
|
||||||
* @throws \think\Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
function E($msg, $code = 0)
|
function E($msg, $code = 0, $exception = '')
|
||||||
{
|
{
|
||||||
throw new \think\Exception($msg, $code);
|
$e = $exception ?: '\think\Exception';
|
||||||
|
throw new $e($msg, $code);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -181,7 +183,7 @@ function E($msg, $code = 0)
|
|||||||
*/
|
*/
|
||||||
function dump($var, $echo = true, $label = null)
|
function dump($var, $echo = true, $label = null)
|
||||||
{
|
{
|
||||||
return \think\Debug::dump($var, $echo, $label);
|
return Debug::dump($var, $echo, $label);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -192,31 +194,31 @@ function dump($var, $echo = true, $label = null)
|
|||||||
*/
|
*/
|
||||||
function W($name, $data = [])
|
function W($name, $data = [])
|
||||||
{
|
{
|
||||||
return \think\Loader::action($name, $data, 'widget');
|
return Loader::action($name, $data, 'widget');
|
||||||
}
|
}
|
||||||
|
|
||||||
function U($url = '', $vars = '', $suffix = true, $domain = false)
|
function U($url = '', $vars = '', $suffix = true, $domain = false)
|
||||||
{
|
{
|
||||||
return \think\Url::build($url, $vars, $suffix, $domain);
|
return Url::build($url, $vars, $suffix, $domain);
|
||||||
}
|
}
|
||||||
|
|
||||||
function session($name, $value = '', $prefix = null)
|
function session($name, $value = '', $prefix = null)
|
||||||
{
|
{
|
||||||
if (is_array($name)) {
|
if (is_array($name)) {
|
||||||
// 初始化
|
// 初始化
|
||||||
\think\Session::init($name);
|
Session::init($name);
|
||||||
} elseif (is_null($name)) {
|
} elseif (is_null($name)) {
|
||||||
// 清除
|
// 清除
|
||||||
\think\Session::clear($value);
|
Session::clear($value);
|
||||||
} elseif ('' === $value) {
|
} elseif ('' === $value) {
|
||||||
// 判断或获取
|
// 判断或获取
|
||||||
return 0 === strpos($name, '?') ? \think\Session::has(substr($name, 1), $prefix) : \think\Session::get($name, $prefix);
|
return 0 === strpos($name, '?') ? Session::has(substr($name, 1), $prefix) : Session::get($name, $prefix);
|
||||||
} elseif (is_null($value)) {
|
} elseif (is_null($value)) {
|
||||||
// 删除session
|
// 删除session
|
||||||
return \think\Session::delete($name, $prefix);
|
return Session::delete($name, $prefix);
|
||||||
} else {
|
} else {
|
||||||
// 设置session
|
// 设置session
|
||||||
return \think\Session::set($name, $value, $prefix);
|
return Session::set($name, $value, $prefix);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -224,19 +226,19 @@ function cookie($name, $value = '', $option = null)
|
|||||||
{
|
{
|
||||||
if (is_array($name)) {
|
if (is_array($name)) {
|
||||||
// 初始化
|
// 初始化
|
||||||
\think\Cookie::init($name);
|
Cookie::init($name);
|
||||||
} elseif (is_null($name)) {
|
} elseif (is_null($name)) {
|
||||||
// 清除
|
// 清除
|
||||||
\think\Cookie::clear($value);
|
Cookie::clear($value);
|
||||||
} elseif ('' === $value) {
|
} elseif ('' === $value) {
|
||||||
// 获取
|
// 获取
|
||||||
return \think\Cookie::get($name);
|
return Cookie::get($name);
|
||||||
} elseif (is_null($value)) {
|
} elseif (is_null($value)) {
|
||||||
// 删除session
|
// 删除session
|
||||||
return \think\Cookie::delete($name);
|
return Cookie::delete($name);
|
||||||
} else {
|
} else {
|
||||||
// 设置session
|
// 设置session
|
||||||
return \think\Cookie::set($name, $value, $option);
|
return Cookie::set($name, $value, $option);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -251,17 +253,17 @@ function S($name, $value = '', $options = null)
|
|||||||
{
|
{
|
||||||
if (is_array($options)) {
|
if (is_array($options)) {
|
||||||
// 缓存操作的同时初始化
|
// 缓存操作的同时初始化
|
||||||
\think\Cache::connect($options);
|
Cache::connect($options);
|
||||||
} elseif (is_array($name)) {
|
} elseif (is_array($name)) {
|
||||||
// 缓存初始化
|
// 缓存初始化
|
||||||
return \think\Cache::connect($name);
|
return Cache::connect($name);
|
||||||
}
|
}
|
||||||
if ('' === $value) {
|
if ('' === $value) {
|
||||||
// 获取缓存
|
// 获取缓存
|
||||||
return \think\Cache::get($name);
|
return Cache::get($name);
|
||||||
} elseif (is_null($value)) {
|
} elseif (is_null($value)) {
|
||||||
// 删除缓存
|
// 删除缓存
|
||||||
return \think\Cache::rm($name);
|
return Cache::rm($name);
|
||||||
} else {
|
} else {
|
||||||
// 缓存数据
|
// 缓存数据
|
||||||
if (is_array($options)) {
|
if (is_array($options)) {
|
||||||
@@ -269,7 +271,7 @@ function S($name, $value = '', $options = null)
|
|||||||
} else {
|
} else {
|
||||||
$expire = is_numeric($options) ? $options : null; //默认快捷缓存设置过期时间
|
$expire = is_numeric($options) ? $options : null; //默认快捷缓存设置过期时间
|
||||||
}
|
}
|
||||||
return \think\Cache::set($name, $value, $expire);
|
return Cache::set($name, $value, $expire);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -282,9 +284,9 @@ function S($name, $value = '', $options = null)
|
|||||||
function trace($log = '[think]', $level = 'log')
|
function trace($log = '[think]', $level = 'log')
|
||||||
{
|
{
|
||||||
if ('[think]' === $log) {
|
if ('[think]' === $log) {
|
||||||
return \think\Log::getLog();
|
return Log::getLog();
|
||||||
} else {
|
} else {
|
||||||
\think\Log::record($log, $level);
|
Log::record($log, $level);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,5 +298,5 @@ function trace($log = '[think]', $level = 'log')
|
|||||||
*/
|
*/
|
||||||
function V($template = '', $vars = [])
|
function V($template = '', $vars = [])
|
||||||
{
|
{
|
||||||
return \think\View::instance(\think\Config::get())->fetch($template, $vars);
|
return View::instance(Config::get('view'))->fetch($template, $vars);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,18 +53,15 @@ class viewTest extends \PHPUnit_Framework_TestCase
|
|||||||
*/
|
*/
|
||||||
public function testConfig()
|
public function testConfig()
|
||||||
{
|
{
|
||||||
$view_instance = \think\View::instance();
|
$view_instance = \think\View::instance([]);
|
||||||
$data = $view_instance->config('key2', 'value2');
|
$data = $view_instance->config('key2', 'value2');
|
||||||
$data = $view_instance->config('key3', 'value3');
|
$data = $view_instance->config('key3', 'value3');
|
||||||
$data = $view_instance->config('key3', 'value_cover');
|
$data = $view_instance->config('key3', 'value_cover');
|
||||||
//不应包含value
|
|
||||||
$data = $view_instance->config(array('key' => 'value'));
|
|
||||||
//基础配置替换
|
//基础配置替换
|
||||||
$data = $view_instance->config(array('view_path' => 'view_path'));
|
$data = $view_instance->config(array('view_path' => 'view_path'));
|
||||||
//目标结果
|
//目标结果
|
||||||
$this->assertAttributeContains('value2', "config", $view_instance);
|
$this->assertAttributeContains('value2', "config", $view_instance);
|
||||||
$this->assertAttributeContains('value_cover', "config", $view_instance);
|
$this->assertAttributeContains('value_cover', "config", $view_instance);
|
||||||
$this->assertAttributeNotContains('value', "config", $view_instance);
|
|
||||||
$this->assertAttributeContains('view_path', "config", $view_instance);
|
$this->assertAttributeContains('view_path', "config", $view_instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,11 +74,11 @@ class viewTest extends \PHPUnit_Framework_TestCase
|
|||||||
{
|
{
|
||||||
$view_instance = \think\View::instance();
|
$view_instance = \think\View::instance();
|
||||||
$data = $view_instance->engine('php');
|
$data = $view_instance->engine('php');
|
||||||
$php_engine = new \think\view\driver\Php(['view_path' => 'view_path']);
|
$php_engine = new \think\view\driver\Php(['view_path' => '', 'view_suffix' => '.html', 'view_depr' => DS]);
|
||||||
$this->assertAttributeEquals($php_engine, 'engine', $view_instance);
|
$this->assertAttributeEquals($php_engine, 'engine', $view_instance);
|
||||||
//测试模板引擎驱动
|
//测试模板引擎驱动
|
||||||
$data = $view_instance->engine('think');
|
$data = $view_instance->engine('think');
|
||||||
$think_engine = new \think\view\driver\Think(['view_path' => 'view_path']);
|
$think_engine = new \think\view\driver\Think(['view_path' => '', 'view_suffix' => '.html', 'view_depr' => DS]);
|
||||||
$this->assertAttributeEquals($think_engine, 'engine', $view_instance);
|
$this->assertAttributeEquals($think_engine, 'engine', $view_instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user