一、门面(facade)

门面在ThinkPHP中可以理解为一个代理商,有了它可以灵活的去使用其中的类。

二、钩子和行为

钩子也可以说是插件,就是程序运行到某个位置,我们用钩子把这个程序截住,去执行所定义的行为,完了以后程序继续往下走。那么钩子具体在哪配置,在哪使用,怎么使用呢?

钩子在应用目录(application)下的tags.php文件中可以配置我们的钩子,钩子可以在程序的任何位置都可以使用,下面简单的演示钩子的使用

1、自定义一个钩子

在tags.php文件中加入我们需要定义的钩子

//自定义钩子
'new_ming' => [
app\behavior\Test::class
]

2、Test类(行为)

<?php

namespace app\behavior;

class Test
{
//run方法为系统固定的 配置文件中可以配置 系统默认为run方法
public function run()
{
echo "this is behavior.这是一个钩子的行为";
}
}

3、使用钩子

比如在控制器中使用我们自定义的钩子

<?php
namespace app\index\controller; use think\Controller; class index extends Controller
{
public function index(){
app()->hook->listen('new_ming');//这是一个钩子
}
}

最新文章

  1. GCD定时器
  2. Maven:将Jar安装到本地仓库和Jar上传到私服
  3. STL数组处理常用函数
  4. Vector[C++]
  5. MVC3.0 中Razor 学习
  6. Lua与C/C++交互问题
  7. PHP - 点击更换头像
  8. linux cent os putty 问题彻底解决办法
  9. 移动端 微信 网易 触屏滑动回弹菜单(css版)
  10. 嵌入javascript脚本的位置
  11. 【eclipse】eclipse报错:the resource is not on the build path of a java project
  12. h5页面使用sessionStorage滚动到上次浏览器位置《原创》
  13. 安装Vmware并破解
  14. [转]Anatomy of a Program in Memory
  15. 14Junit、反射、注解
  16. C# 窗体内有子控件时鼠标检测
  17. 谷歌浏览器安装octotree插件
  18. Spark代码中设置appName在client模式和cluster模式中不一样问题
  19. 【xsy1012】KSHKM的基因工程 AC自动机DP
  20. Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统

热门文章

  1. 简单Web UI 自动化测试框架 pyse
  2. php PDO getlastsql写法
  3. 利用爬虫爬取LOL官网上皮肤图片
  4. centos6升级openssh至7.9
  5. tp5验证码的使用
  6. PHP代码安全有必要了解下
  7. hdu 1863 畅通工程 (prim)
  8. nyoj 599-奋斗的小蜗牛 (double ceil(); (temp - 1) / 5)
  9. 自制window下core animation引擎 - demo第二弹 - 仿QQ电脑管家加速小火箭
  10. python进程池与线程池