ThinkPHP5 助手函數

來源:互聯網
上載者:User

標籤:擴充   else   rac   記憶體佔用   value   except   狀態代碼   start   操作方法   

對於ThinkPHP5.0以前的版本,助手函數全部是單字母函數,但到ThinkPHP5之後,使用如下函數來代替單字母函數:

最常用:
/**
* 執行個體化Model
* @param string $name Model名稱
* @param string $layer 業務層名稱
* @param bool $appendSuffix 是否添加類名尾碼
* @return \think\Model
*/
if (!function_exists(‘model‘)) {
function model($name = ‘‘, $layer = ‘model‘, $appendSuffix = false)
{
return Loader::model($name, $layer, $appendSuffix);
}
}
—————————————————————————————————————————————————
/**
* 執行個體化驗證器
* @param string $name 驗證器名稱
* @param string $layer 業務層名稱
* @param bool $appendSuffix 是否添加類名尾碼
* @return \think\Validate
*/
if (!function_exists(‘validate‘)) {
function validate($name = ‘‘, $layer = ‘validate‘, $appendSuffix = false)
{
return Loader::validate($name, $layer, $appendSuffix);
}
}
—————————————————————————————————————————————————
/**
* 緩衝管理
* @param mixed $name 緩衝名稱,如果為數組表示進行緩衝設定
* @param mixed $value 緩衝值
* @param mixed $options 緩衝參數
* @return mixed
*/
if (!function_exists(‘cache‘)) {
function cache($name, $value = ‘‘, $options = null)
{
if (is_array($options)) {
// 快取作業的同時初始化
Cache::connect($options);
} elseif (is_array($name)) {
// 緩衝初始化
return Cache::connect($name);
}
if (‘‘ === $value) {
// 擷取緩衝
return Cache::get($name);
} elseif (is_null($value)) {
// 刪除緩衝
return Cache::rm($name);
} else {
// 快取資料
if (is_array($options)) {
$expire = isset($options[‘expire‘]) ? $options[‘expire‘] : null; //修複查詢快取無法設定到期時間
} else {
$expire = is_numeric($options) ? $options : null; //預設快捷緩衝設定到期時間
}
return Cache::set($name, $value, $expire);
}
}
}
—————————————————————————————————————————————————
/**
* 擷取和設定配置參數
* @param string|array $name 參數名
* @param mixed $value 參數值
* @param string $range 範圍
* @return mixed
*/
if (!function_exists(‘config‘)) {
function config($name = ‘‘, $value = null, $range = ‘‘)
{
if (is_null($value) && is_string($name)) {
return Config::get($name, $range);
} else {
return Config::set($name, $value, $range);
}
}
}
—————————————————————————————————————————————————
/**
* Url產生
* @param string $url 路由地址
* @param string|array $value 變數
* @param bool|string $suffix 首碼
* @param bool|string $domain 網域名稱
* @return string
*/
if (!function_exists(‘url‘)) {
function url($url = ‘‘, $vars = ‘‘, $suffix = true, $domain = false)
{
return Url::build($url, $vars, $suffix, $domain);
}
}
—————————————————————————————————————————————————
/**
* 快速匯入第三方架構類庫 所有第三方架構的類庫檔案統一放到 系統的Vendor目錄下面
* @param string $class 類庫
* @param string $ext 類庫尾碼
* @return boolean
*/
if (!function_exists(‘vendor‘)) {
function vendor($class, $ext = EXT)
{
return Loader::import($class, VENDOR_PATH, $ext);
}
}
—————————————————————————————————————————————————
/**
* 執行個體化控制器 格式:[模組/]控制器
* @param string $name 資源地址
* @param string $layer 控制層名稱
* @param bool $appendSuffix 是否添加類名尾碼
* @return \think\Controller
*/
if (!function_exists(‘controller‘)) {
function controller($name, $layer = ‘controller‘, $appendSuffix = false)
{
return Loader::controller($name, $layer, $appendSuffix);
}
}
—————————————————————————————————————————————————
/**
* 調用模組的操作方法 參數格式 [模組/控制器/]操作
* @param string $url 調用地址
* @param string|array $vars 調用參數 支援字串和數組
* @param string $layer 要調用的控制層名稱
* @param bool $appendSuffix 是否添加類名尾碼
* @return mixed
*/
if (!function_exists(‘action‘)) {
function action($url, $vars = [], $layer = ‘controller‘, $appendSuffix = false)
{
return Loader::action($url, $vars, $layer, $appendSuffix);
}
}
—————————————————————————————————————————————————
/**
* 執行個體化資料庫類
* @param string $name 操作的資料表名稱(不含首碼)
* @param array|string $config 資料庫配置參數
* @return \think\db\Query
*/
if (!function_exists(‘db‘)) {
function db($name = ‘‘, $config = [])
{
return Db::connect($config)->name($name);
}
}
—————————————————————————————————————————————————
/**
* Session管理
* @param string|array $name session名稱,如果為數組表示進行session設定
* @param mixed $value session值
* @param string $prefix 首碼
* @return mixed
*/
if (!function_exists(‘session‘)) {
function session($name, $value = ‘‘, $prefix = null)
{
if (is_array($name)) {
// 初始化
Session::init($name);
} elseif (is_null($name)) {
// 清除
Session::clear($value);
} elseif (‘‘ === $value) {
// 判斷或擷取
return 0 === strpos($name, ‘?‘) ? Session::has(substr($name, 1), $prefix) : Session::get($name, $prefix);
} elseif (is_null($value)) {
// 刪除
return Session::delete($name, $prefix);
} else {
// 設定
return Session::set($name, $value, $prefix);
}
}
}
—————————————————————————————————————————————————
/**
* Cookie管理
* @param string|array $name cookie名稱,如果為數組表示進行cookie設定
* @param mixed $value cookie值
* @param mixed $option 參數
* @return mixed
*/
if (!function_exists(‘cookie‘)) {
function cookie($name, $value = ‘‘, $option = null)
{
if (is_array($name)) {
// 初始化
Cookie::init($name);
} elseif (is_null($name)) {
// 清除
Cookie::clear($value);
} elseif (‘‘ === $value) {
// 擷取
return Cookie::get($name);
} elseif (is_null($value)) {
// 刪除
return Cookie::delete($name);
} else {
// 設定
return Cookie::set($name, $value, $option);
}
}
}
—————————————————————————————————————————————————
—————————————————————————————————————————————————
其他:
/**
 * 快速匯入Traits PHP5.5以上無需調用
* @param string $class trait庫
* @param string $ext 類庫尾碼
* @return boolean
*/
if (!function_exists(‘load_trait‘)) {
function load_trait($class, $ext = EXT)
{
return Loader::import($class, TRAIT_PATH, $ext);
}
}
—————————————————————————————————————————————————
/**
* 拋出異常處理
*
* @param string $msg 異常訊息
* @param integer $code 異常代碼 預設為0
* @param string $exception 異常類
*
* @throws Exception
*/
if (!function_exists(‘exception‘)) {
function exception($msg, $code = 0, $exception = ‘‘)
{
$e = $exception ?: ‘\think\Exception‘;
throw new $e($msg, $code);
}
}
—————————————————————————————————————————————————
/**
* 記錄時間(微秒)和記憶體使用量情況
* @param string $start 開始標籤
* @param string $end 結束標籤
* @param integer|string $dec 小數位 如果是m 表示統計記憶體佔用
* @return mixed
*/
if (!function_exists(‘debug‘)) {
function debug($start, $end = ‘‘, $dec = 6)
{
if (‘‘ == $end) {
Debug::remark($start);
} else {
return ‘m‘ == $dec ? Debug::getRangeMem($start, $end) : Debug::getRangeTime($start, $end, $dec);
}
}
}
—————————————————————————————————————————————————

/**
* 擷取語言變數值
* @param string $name 語言變數名
* @param array $vars 動態變數值
* @param string $lang 語言
* @return mixed
*/
if (!function_exists(‘lang‘)) {
function lang($name, $vars = [], $lang = ‘‘)
{
return Lang::get($name, $vars, $lang);
}
}
—————————————————————————————————————————————————
/**
* 擷取輸入資料 支援預設值和過濾
* @param string $key 擷取的變數名
* @param mixed $default 預設值
* @param string $filter 過濾方法
* @return mixed
*/
if (!function_exists(‘input‘)) {
function input($key, $default = null, $filter = null)
{
if (0 === strpos($key, ‘?‘)) {
$key = substr($key, 1);
$has = true;
}
if ($pos = strpos($key, ‘.‘)) {
// 指定參數來源
$method = substr($key, 0, $pos);
if (in_array($method, [‘get‘, ‘post‘, ‘put‘, ‘delete‘, ‘param‘, ‘request‘, ‘session‘, ‘cookie‘, ‘server‘, ‘env‘, ‘path‘, ‘file‘])) {
$key = substr($key, $pos + 1);
} else {
$method = ‘param‘;
}
} else {
// 預設為自動判斷
$method = ‘param‘;
}
if (isset($has)) {
return request()->has($key, $method, $default);
} else {
return request()->$method($key, $default, $filter);
}
}
}
—————————————————————————————————————————————————
/**
* 渲染輸出Widget
* @param string $name Widget名稱
* @param array $data 傳人的參數
* @return mixed
*/
if (!function_exists(‘widget‘)) {
function widget($name, $data = [])
{
return Loader::action($name, $data, ‘widget‘);
}
}
—————————————————————————————————————————————————/**
 * 匯入所需的類庫 同java的Import 本函數有緩衝功能
* @param string $class 類庫命名空間字串
* @param string $baseUrl 起始路徑
* @param string $ext 匯入的副檔名
* @return boolean
*/
if (!function_exists(‘import‘)) {
function import($class, $baseUrl = ‘‘, $ext = EXT)
{
return Loader::import($class, $baseUrl, $ext);
}
}
—————————————————————————————————————————————————

/**
* 瀏覽器友好的變數輸出
* @param mixed $var 變數
* @param boolean $echo 是否輸出 預設為true 如果為false 則返回輸出字串
* @param string $label 標籤 預設為空白
* @return void|string
*/
if (!function_exists(‘dump‘)) {
function dump($var, $echo = true, $label = null)
{
return Debug::dump($var, $echo, $label);
}
}
—————————————————————————————————————————————————
/**
* 記錄日誌資訊
* @param mixed $log log資訊 支援字串和數組
* @param string $level 記錄層級
* @return void|array
*/
if (!function_exists(‘trace‘)) {
function trace($log = ‘[think]‘, $level = ‘log‘)
{
if (‘[think]‘ === $log) {
return Log::getLog();
} else {
Log::record($log, $level);
}
}
}
—————————————————————————————————————————————————
/**
* 擷取當前Request對象執行個體
* @return Request
*/
if (!function_exists(‘request‘)) {
function request()
{
return Request::instance();
}
}
—————————————————————————————————————————————————
/**
* 建立普通 Response 對象執行個體
* @param mixed $data 輸出資料
* @param int|string $code 狀態代碼
* @param array $header 頭資訊
* @param string $type
* @return Response
*/
if (!function_exists(‘response‘)) {
function response($data = [], $code = 200, $header = [], $type = ‘html‘)
{
return Response::create($data, $type, $code, $header);
}
}
—————————————————————————————————————————————————
/**
* 渲染模板輸出
* @param string $template 模板檔案
* @param array $vars 模板變數
* @param integer $code 狀態代碼
* @return \think\response\View
*/
if (!function_exists(‘view‘)) {
function view($template = ‘‘, $vars = [], $code = 200)
{
return Response::create($template, ‘view‘, $code)->vars($vars);
}
}
—————————————————————————————————————————————————
/**
* 擷取\think\response\Json對象執行個體
* @param mixed $data 返回的資料
* @param integer $code 狀態代碼
* @param array $header 頭部
* @param array $options 參數
* @return \think\response\Json
*/
if (!function_exists(‘json‘)) {
function json($data = [], $code = 200, $header = [], $options = [])
{
return Response::create($data, ‘json‘, $code, $header, $options);
}
}
—————————————————————————————————————————————————
/**
* 擷取\think\response\Jsonp對象執行個體
* @param mixed $data 返回的資料
* @param integer $code 狀態代碼
* @param array $header 頭部
* @param array $options 參數
* @return \think\response\Jsonp
*/
if (!function_exists(‘jsonp‘)) {
function jsonp($data = [], $code = 200, $header = [], $options = [])
{
return Response::create($data, ‘jsonp‘, $code, $header, $options);
}
}
—————————————————————————————————————————————————
/**
* 擷取\think\response\Xml對象執行個體
* @param mixed $data 返回的資料
* @param integer $code 狀態代碼
* @param array $header 頭部
* @param array $options 參數
* @return \think\response\Xml
*/
if (!function_exists(‘xml‘)) {
function xml($data = [], $code = 200, $header = [], $options = [])
{
return Response::create($data, ‘xml‘, $code, $header, $options);
}
}
—————————————————————————————————————————————————
/**
* 擷取\think\response\Redirect對象執行個體
* @param mixed $url 重新導向地址 支援Url::build方法的地址
* @param array|integer $params 額外參數
* @param integer $code 狀態代碼
* @return \think\response\Redirect
*/
if (!function_exists(‘redirect‘)) {
function redirect($url = [], $params = [], $code = 302)
{
if (is_integer($params)) {
$code = $params;
$params = [];
}
return Response::create($url, ‘redirect‘, $code)->params($params);
}
}
—————————————————————————————————————————————————
/**
* 拋出HTTP異常
* @param integer $code 狀態代碼
* @param string $message 錯誤資訊
* @param array $header 參數
*/
if (!function_exists(‘abort‘)) {
function abort($code, $message = null, $header = [])
{
throw new \think\exception\HttpException($code, $message, null, $header);
}
}
—————————————————————————————————————————————————
—————————————————————————————————————————————————

ThinkPHP5 助手函數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.