yii2行为的方法如何注入到组件类中详解
发布时间:2021-03-09 04:02:38 所属栏目:编程 来源:网络整理
导读:媒介 当相识了举动属性的注入逻辑后,要领的注入对付我们来说就很简朴了。逻辑一样。只不外而今我们不再挪用 __get 要领,而是一个用于要领的 __call 要领。下面话不多说了,来一路看看具体的先容: 在研究之前先跟我进修两个PHP的常识: __call call_user_f
媒介当相识了举动属性的注入逻辑后,要领的注入对付我们来说就很简朴了。逻辑一样。只不外而今我们不再挪用 __get 要领,而是一个用于要领的 __call 要领。下面话不多说了,来一路看看具体的先容: 在研究之前先跟我进修两个PHP的常识:
__call__call 是 PHP 的一个把戏要领,这个要领和 __get 成果差不多,当发明一个类的要领未界说时会触发此函数,它有两个参数 $name 参数是要挪用的要领名称。$arguments 参数是一个列举数组,包括着要转达给要领 $name 的参数,举个例子 // do it $model = new User(); $model->hello("abei2017");// Calling object method 'hello' abei2017 看懂了么,贴个官方文档地点 call_user_func_array挪用回调函数,并把一个数组参数作为回调函数的参数。先贴个官方文档地点 ,举个例子再。 $model = new User();call_user_func_array([$model,"Hello"],["abei2017"]); // User::Hello got abei2017 OK,在你相识了这两个函数后,我们开始研究举动要领的注入。 要领怎样注入说来蛮简朴,就一个要领 $this->ensureBehaviors(); foreach ($this->_behaviors as $object) { if ($object->hasMethod($name)) { return call_user_func_array([$object,$name],$params); } } throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()"); } 逻辑很简朴
最后到达和组件挪用本身的要领一样的结果。 总结到此刻我们知道怎样设置举动、举动运行、举动注入道理,以上就是这篇文章的所有内容了,但愿本文的内容对各人的进修可能事变能带来必然的辅佐,假若有疑问各人可以留言交换,感谢各人对编程之家的支持。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |