Php 调用控制器的laravel index函数时的自动调用函数
我有一个控制器类,如下所示:Php 调用控制器的laravel index函数时的自动调用函数,php,laravel,oop,inheritance,Php,Laravel,Oop,Inheritance,我有一个控制器类,如下所示: class Controller extends BaseController{ protected function function1() { //code } protected function function2() { //code } } 项目中的每个控制器都扩展了这个类,这样我就可以在这个控制器类中编写多个控制器中使用的函数 class RandomController extends Controller{ pub
class Controller extends BaseController{
protected function function1()
{
//code
}
protected function function2()
{
//code
}
}
项目中的每个控制器都扩展了这个类,这样我就可以在这个控制器类中编写多个控制器中使用的函数
class RandomController extends Controller{
public function aCertainFunction()
{
$this->function1();
//code
{
}
我现在有一个函数,每次调用任何控制器的索引函数时都应该调用它。
一种选择是,我在我拥有的控制器中的每个索引函数的开始处手动添加此函数,并且我对将来创建的每个新控制器都会继续这样做,但这对我来说似乎并不有效
是否有一种方法可以在我的控制器类中定义此函数,以便从该类继承的所有类中的每个索引函数都将自动调用此函数?您肯定应该看看嵌入在Laravel框架中的函数。我们承认,每次执行
function1
或function2
时,您都希望触发aCertainFunction()
您必须声明一个事件类,该类将存储到名称空间App\Events代码>(您根本不需要扩展控制器,因为它专用于其他用途)
当您使用Event()
函数触发事件时,将调用事件类的publichandle
函数来执行。因此,您将直接在事件类中声明aCertainFunction
函数(并从handle
函数调用它)。请深入了解Laravel是如何处理事件的,因为它真正致力于授权,并根据特定目的调用它们(这就是为什么我们称它们为“侦听器”)。阅读观察者模式,然后Laravel doc将帮助您实现这一良好方式