更新时间:2022-06-22 09:31:17
由于您的需求听起来与AuthComponent原本打算的设计,你有两个选择。
Since your needs sound outwith AuthComponent's originally intended design you have two options.
首先,如果它真的不符合你的需求,你可以创建和维护非常自己的AuthComponent。通过将 /cake/libs/controller/components/auth.php
复制到 /app/controller/components/auth.php
。
Firstly, if it really doesn't fit your needs, you could create and maintain your very own AuthComponent. Do this by copying /cake/libs/controller/components/auth.php
to /app/controller/components/auth.php
.
这将允许您完全重写组件,但缺点是,当您升级蛋糕时,您不会再收到AuthComponent的更新。
This would allow you to rewrite the component completely, but the downside is you will no longer receive updates to AuthComponent when you upgrade cake.
其次,您可以使用以下模式扩展CakePHP中的任何内容:
Secondly, you can extend just about anything in CakePHP using the following pattern:
// save as: /app/controllers/components/app_auth.php
App::import('Component', 'Auth');
class AppAuthComponent extends AuthComponent {
function identify($user = null, $conditions = null) {
// do stuff
return parent::indentify($user, $conditions);
}
}
..并替换 AppAuthComponent 。
如果您想添加更多的方法参数,请将它们放在API之后,例如:
parent::...
If you wish to add more method arguments, put them after the API ones, eg:
function identify($ user = null,$ conditions = null,$ custom = array()){...}
这种方法允许您进行应用程序特定的自定义,同时仍然使用核心中定义的最新方法。
This approach allows you to make application-specific customisation while still using the latest methods defined in the core where necessary.