日韩精品成人无码专区免费-国产99久久久久久免费看-国产精品丝袜久久久久久不卡-国产精品无码一区二区三区

快來了解下TP6中的超級函數app()!

發布時間:2024-05-11 點擊:155
下面由thinkphp框架教程欄目給大家介紹tp6中的超級函數app(),希望對需要的朋友有所幫助!
tp6中的助手函數app(),是一個包含極廣,涵蓋極深,作用巨大的助手函數,他可以調用很多方法,也是很多助手函數 的集合。
首先這是在helper.php中定義的一個助手函數,我們來看一下:
if (!function_exists('app')) { / * 快速獲取容器中的實例 支持依賴注入 * @param string $name 類名或標識 默認獲取當前應用實例 * @param array $args 參數 * @param bool $newinstance 是否每次創建新的實例 * @return object|app */ function app(string $name = '', array $args = [], bool $newinstance = false) { return container::getinstance()->make($name ?: app::class, $args, $newinstance); }}這個函數如果你不帶任何參數直接打印是這樣的:
halt(app());
不帶參數直接調用了think下的app類。當你帶上參數后它就調用了容器類container。
容器類中裝載了絕大多數我們常用的具有27種之多的依賴注入類。
如下:
在任何時候我們都可以往容器中注入新的類。
比如我們注入一個upgrade類到容器中:
bind('settings','app\\\\admin\\\\controller\\\\upgrade');或者:bind('settings',upgrade::class);或者:container::getinstance()->bind('settings', upgrade::class)如圖:
調用容器中類:
調用方式:
app('settings')->upgradetask($this->request);或:container::getinstance()->make('settings')->upgradetask($this->request)也就是app()助手函數不僅可以直接獲取app類中的方法,還可以獲取容器中所有的依賴注入類中的方法。容器是用來更方便的管理類依賴及運行依賴注入的工具。
依賴注入其實本質上是指在構造函數中對其他需要使用的類迅速實例化。
依賴注入的類統一由容器進行管理。
例如我們很多助手函數:
助手函數 描述
abort 中斷執行并發送http狀態碼app 快速獲取容器中的實例 支持依賴注入bind 快速綁定對象實例cache 緩存管理class_basename 獲取類名(不包含命名空間)class_uses_recursive 獲取一個類里所有用到的traitconfig 獲取和設置配置參數cookie cookie管理download 獲取\\\\think\\\\response\\\\download對象實例dump 瀏覽器友好的變量輸出env 獲取環境變量event 觸發事件halt 變量調試輸出并中斷執行input 獲取輸入數據 支持默認值和過濾invoke 調用反射執行callable 支持依賴注入json json數據輸出jsonp jsonp數據輸出lang 獲取語言變量值parse_name 字符串命名風格轉換redirect 重定向輸出request 獲取當前request對象response 實例化response對象session session管理token 生成表單令牌輸出trace 記錄日志信息trait_uses_recursive 獲取一個trait里所有引用到的traiturl url生成validate 實例化驗證器view 渲染模板輸出display 渲染內容輸出xml xml數據輸出app_path 當前應用目錄base_path 應用基礎目錄config_path 應用配置目錄public_path web根目錄root_path 應用根目錄runtime_path 應用運行時目錄在app()助手函數面前只能算是小弟,因為只用一個app()函數就可以替代絕大部分的助手函數。
舉例:
例如我們調用配置文件:config()實際我們可以這樣寫:app('config')->get()又例如:request()->time() 可以寫作:app('request')->time()對于其他的助手函數,app()都是一樣打包全收。

麻煩幫查下昨晚-點左右-云服務器問題
Linux簡介及最常用命令(簡單易學,但能解決95%%u4EE5上的問題)
如何屏蔽IP訪問-虛擬主機/數據庫問題
數字化是比精算賬 企業安防別花冤枉錢
并沒有動程序這塊怎么后臺打不開了
院士詳解推進IPv6規模部署:要在頂級域名上獲解
美容、化妝品行業網站建設解決方案
獨享云服務器2核8g5m1年