2010-12-10 54 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