CakePHP: ограничить метод контроллера только для оболочки? - PullRequest
1 голос
/ 10 декабря 2010

Во многих моих приложениях Cake у меня есть оболочки, которые вызываются через cron и консоль тортов, и мне интересно, могу ли я ограничить эти методы "закрытым" способом, чтобы они могли быть вызваны ТОЛЬКО консолью? Например, скажем, у меня есть это в моей оболочке:

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

Как можно ограничить действие «generateReports» методом «только для оболочки»? Потому что я мог бы также вызвать метод в моем браузере, перейдя в: http://site.url/reviews/generateReports
И как бы это ни было полезно для отладки, это может быть опасно в производственной среде.

Если я сделаю метод приватным, то есть _generateReports, то оболочке не будет разрешено его выполнять. Есть идеи? Я чувствую, что должно быть простое решение для этого, но я не смог найти ни одного, или похожий вопрос опубликован. Спасибо!

1 Ответ

1 голос
/ 10 декабря 2010

Если ваше действие должно выполняться только сервером, тогда зачем создавать действие внутри контроллера, доступного через Интернет?

Если вы хотите, чтобы только CakeShell запускал этот метод, то действие должнобыть создан как CakeTask.

...