2010-12-10 52 views
1

在我的很多Cake应用程序中,我有通过cron和蛋糕控制台调用的shell,我想知道是否可以用“私有”方式限制这些方法,以便它们只能由控制台调用?例如,假设我有这个在我的外壳:CakePHP:仅限制控制器方法到shell?

$this->requestAction(array('controller' => 'reviews', 'action' => 'generateReports'));

我怎么能限制“generateReports”行动是一个“空壳只有”法?因为我也可以通过以下方式在我的浏览器中调用该方法: http://site.url/reviews/generateReports
同样有用,因为这可能用于调试,它可能在生产环境中很危险。

如果我使该方法是私有的,即_generateReports,那么shell将不被允许执行它。有任何想法吗?我觉得应该有一个简单的解决方案,但我一直无法找到一个,或发布类似的问题。谢谢!

回答

1

如果您的操作只能由服务器执行,那么为什么要在网络可访问的控制器内构建动作?

如果您只希望CakeShell运行该方法,那么该操作只能作为CakeTask创建。

+0

不知何故CakeTasks的概念已经躲过我。看起来很完美 - 谢谢! – kaptron 2010-12-14 02:49:54