2024-05-05 08:35:29
2024-05-05 03:00:52
2024-05-05 05:59:54
rbac我知道 但用在这里太大材小用了, 我就想知道他的原理
他的原理主要是,写一个基类CommonAction.class.php,然后让所用要验证的类都继承它,从而就在执行其他类的是后完成了自动验证。
我就是想知道这里面具体的原理啊
为什么继承了他就会先自动执行一次_initialize方法...
这就是面向对象的规则,特殊就特殊在函数名是_initialize()
它就相当于C++里面的类的初始函数base(),是在类创建时自动执行的,
继承之后,当然自动执行他了。
也就是说,_initialize()换成别的函数名就不行了
c++里面类的初始函数?
类创建时自动执行?
面向对象有这些东西吗
我说清楚点吧 就是说我写个类 叫PublicAction,里面有个方法叫validate(), 如何让这个类的其他方法和子类的其他方法 在执行前都自动执行这个validate方法. 如何实现
_initialize()换成别的函数名就不行了
thinkphp框架规定这个名字 换了当然不行, 但如果我自己规定一个不就行了?
...算了吧 我去读读源代码
都跟你说了,肯定不行呀!这是php的语法规则。你看源代码能看到,那就真是见了鬼了
...php语法规则里面可没这个
这函数是人定义的
参考ThinkPHP.Lib.Think.Core.Action.class.php的39行至46行
public function __construct()
{
//实例化视图类
$this->view = Think::instance('View');
//控制器初始化
if(method_exists($this,'_initialize'))
$this->_initialize();
}
好吧,不过我也没说错吧,构造函数
还好吧 直接用initialize搞定了
2024-05-05 03:10:46