php钩子

it2022-05-09  61

 

 

<?php //统一对外的类 class Hook{ private $hooklist = null; //感觉这里很像观察者模式或者是策略模式 public function add($action_hook){ $this->hooklist[]=new $action_hook(); } //触发事件 public function exec(){ foreach($this->hooklist as $action_hook){ $action_hook->act();//钩子中统一的方法 } } } //不同用途的钩子具体对象,比如说验证密码,验证权限,统一加密等等, class action_hook_1{ public function act(){ echo "我来做第一件事"; } } class action_hook_2{ public function act(){ echo "我来做第2件事"; } } class action_hook_3{ public function act(){ echo "我来做第3件事"; } } //需要绑定钩子的具体对象 class Ball{ public function down(){ echo '我需要做一些通用的验证工作'; //注册事件,这里就可以加载相应的钩子类,因为在一个文件,直接使用 $hook = new Hook(); $hook->add("action_hook_1"); $hook->add("action_hook_2"); $hook->add("action_hook_3"); $hook->exec(); } //淡然也可以注册完就直接执行钩子,也可以写到单独方法 public function exec(){ } } $ball = new Ball(); $ball->down();

 

  

今天想搞清楚钩子是什么,大概看了看,有一个地方实在是看不明白,

 

public function add($action_hook){ $this->hooklist[]=new $action_hook(); }

 

  直接$action_hook过来的值前面加new  后面加(),就可以建对象了?就算是字符串连接也应该是$action_hook."()"吧?

 

转载于:https://www.cnblogs.com/chunshu/p/10825356.html

相关资源:php钩子,插件实现的核心类

最新回复(0)