Поскольку ваши потребности озвучиваются в соответствии с первоначальным замыслом AuthComponent, у вас есть два варианта.
Во-первых, если это действительно не соответствует вашим потребностям, вы можете создать и поддерживать свой собственный AuthComponent. Сделайте это, скопировав /cake/libs/controller/components/auth.php
в /app/controller/components/auth.php
.
Это позволит вам полностью переписать компонент, но недостатком будет то, что вы больше не будете получать обновления AuthComponent при обновлении торта.
Во-вторых, вы можете расширить практически все в CakePHP, используя следующий шаблон:
// 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);
}
}
.. и замените все экземпляры AuthComponent
в ваших контроллерах на AppAuthComponent
.
- Вам нужно только определить методы, которые вы хотите заменить.
- Вы можете запускать методы из исходного AuthComponent (даже те, которые вы переопределили) в любой момент во время ваших методов, используя
parent::...
- Аргументы метода должны оставаться в том же порядке, что и исходный API для согласованности.
Если вы хотите добавить больше аргументов метода, поместите их после API, например:
function identify($user = null, $conditions = null, $custom = array()) { ... }
Этот подход позволяет вам выполнять настройку под конкретное приложение, в то же время, при необходимости, используя самые последние методы, определенные в ядре.