cakePHP复制函数还是使用外部控制器?(干式发行)
我有3个控制器,cakePHP复制函数还是使用外部控制器?(干式发行),php,cakephp,dry,cakephp-model,code-duplication,Php,Cakephp,Dry,Cakephp Model,Code Duplication,我有3个控制器,令牌、存储和用户 令牌与其他两个模型相关,每个令牌都有一个所有者类型和所有者id 在User_controller和Store_controller中都有一个称为EmailTokenToUser的函数,它将激活链接发送给注册用户或商店的人 我的问题是:我应该将函数传递给令牌吗? 如果是,我该如何称呼它?(requestAction是个坏主意,只为一个函数创建一个对象.) 有什么想法吗?要重用代码,应该将代码传递给令牌的模型,而不是控制器。这是一种方式,而不是唯一的方式。要使用它,
令牌、存储
和用户
令牌与其他两个模型相关,每个令牌都有一个所有者类型和所有者id
在User_controller和Store_controller中都有一个称为EmailTokenToUser的函数,它将激活链接发送给注册用户或商店的人
我的问题是:我应该将函数传递给令牌吗?
如果是,我该如何称呼它?(requestAction是个坏主意,只为一个函数创建一个对象.)
有什么想法吗?要重用代码,应该将代码传递给令牌的模型,而不是控制器。这是一种方式,而不是唯一的方式。要使用它,即使在控制器内部也不应该使用requestAction(同样,使用requestAction也应该如此)。你可以用两种方法来做
App:import('model', Token');
Token::myFunction($args);
或
或者(如果从控制器内部冷却,也可以使用)
这是如果您将它放在函数的令牌模型中。如果不是的话,用控制器的方式,你应该这样做
App:import('controller', 'Tokens');
TokensController::myFunction($args);
或
希望它能帮助你:)太好了。有一个问题:如果模型是相关的,我应该加载它吗?我能不能只
$this->LocalModel->RelatedModel->function()
?可以,因为它已经被加载了。应该行得通
$this->loadModel('Token');
$this->Token->myFunction($args);
App:import('controller', 'Tokens');
TokensController::myFunction($args);
App:import('controller', 'Tokens');
$token = new TokensController();
$token->myFunction($args);