cakePHP дублирует функцию или использует внешний контроллер? (СУХОЙ выпуск) - PullRequest
2 голосов
/ 27 октября 2011

У меня 3 контроллера, Tokens, Stores и Users.

Токен относится к двум другим моделям, для каждого токена есть тип владельца и идентификатор владельца.

В User_controller и Store_controller также есть функция EmailTokenToUser, которая отправляетссылка для активации на человека, который зарегистрировал пользователя или магазин.

Мой вопрос: я должен передать функцию токену?если да, то как мне это назвать?(requestAction - плохая идея, создание объекта только для одной функции ..)

Есть идеи?

1 Ответ

2 голосов
/ 27 октября 2011

Для повторного использования кода вы должны передать его в МОДЕЛЬ токена, а не в контроллер.Так должно быть не единственным.Чтобы использовать его, вы не должны использовать requestAction, даже если он находится внутри контроллера (опять же, так и должно быть, вы МОЖЕТЕ сделать это с requestAction).Вы можете сделать это двумя способами.

App:import('model', Token');
Token::myFunction($args);

ИЛИ

$token = ClassRegistry:init('Token');
$token->myFunction($args);

ИЛИ (если вы подключаете его из контроллера, вы также можете использовать)

$this->loadModel('Token');
$this->Token->myFunction($args);

Это если вы поместите в модель токена функцию.Если нет, и следуйте инструкциям контроллера, вы должны сделать это следующим образом

App:import('controller', 'Tokens');
TokensController::myFunction($args);

ИЛИ

App:import('controller', 'Tokens');
$token = new TokensController();
$token->myFunction($args);

Надеюсь, это поможет вам:)

...