下面由
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猎取和设置设置参数
cookieCookie治理
download猎取\think\response\Download对象实例
dump浏览器友爱的变量输出
env猎取环境变量
event触发事宜
halt变量调试输出并中断实行
input猎取输入数据 支撑默许值和过滤
invoke挪用反射实行callable 支撑依靠注入
jsonJSON数据输出
jsonpJSONP数据输出
lang猎取言语变量值
parse_name字符串定名作风转换
redirect重定向输出
request猎取当前Request对象
response实例化Response对象
sessionSession治理
token生成表单令牌输出
trace纪录日记信息
trait_uses_recursive猎取一个trait里一切引用到的traiturlUrl生成
validate实例化考证器
view衬着模板输出
display衬着内容输出
xmlXML数据输出
app_path当前运用目次
base_path运用基本目次
config_path运用设置目次
public_pathweb根目次
root_path运用根目次
runtime_path运用运转时目次
在APP()助手函数眼前只能算是小弟,由于只用一个app()函数就能够替换绝大部分的助手函数。
举例:
比方我们挪用设置文件:
config()
现实我们能够如许写:app('config')->get()又比方:request()->time() 能够写作:app('request')->time()
关于其他的助手函数,app()都是一样打包全收。
以上就是快来了解下TP6中的超等函数app()!的细致内容,更多请关注ki4网别的相干文章!
收藏 | 0