Php 为什么Kohana使用before()和after()
我刚开始玩Kohana,来自CodeIgniter和straight php。我想知道为什么Kohana使用Php 为什么Kohana使用before()和after(),php,kohana,Php,Kohana,我刚开始玩Kohana,来自CodeIgniter和straight php。我想知道为什么Kohana使用before()和after()函数而不是普通的构造函数和析构函数?这两个函数之间有细微的区别: 创建和销毁实例时,将调用构造函数和析构函数 在执行控制器的操作之前和之后调用before和after方法 此外,您不能保证在执行操作之前和之后调用构造函数和析构函数,但是您可以保证,对于before和after方法。因为这样做允许更高级别的控制。除非您的应用程序不是不可恢复的,否则析构函数将被
before()
和after()
函数而不是普通的构造函数和析构函数?这两个函数之间有细微的区别:
创建和销毁实例时,将调用构造函数
和析构函数
在执行控制器的操作之前和之后调用before
和after
方法
此外,您不能保证在执行操作之前和之后调用
构造函数
和析构函数
,但是您可以保证,对于before
和after
方法。因为这样做允许更高级别的控制。除非您的应用程序不是不可恢复的,否则析构函数将被禁用。另一方面,after()
也不会被调用,当应用程序在调用之前被破坏时。我想我的意思是你不能保证构造函数/析构函数在执行操作之前/之后被调用。我将对此稍作修改,以进一步阐明我的意思。它还保证,构造函数在before()
之前调用,析构函数在after()
:D之后调用。但我想我可以想象,你的意思是:在调用\u destruct()
之前,你没有控制权。然而,无论如何,我已经投票了,因为有趣的部分已经澄清了。这正是我的观点:你无法控制构造函数和析构函数被调用的确切时间。Before和after是在操作之前和之后直接调用的:)此外,构造函数的参数列表自3.0以来已更改,但我假设Before方法永远不会有参数。有些人在升级时遇到问题,他们可以使用before方法避免这些问题。