Question

Dans beaucoup de mes applications Cake je coquilles qui sont invoquées par Cron et la console de gâteau, et je me demande si je peux limiter ces méthodes de manière « privée » afin qu'ils puissent être invoqué que par la console? Par exemple, disons que j'ai dans mon shell:

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

Comment pourrais-je restreins la méthode « generateReports » action pour être une « coquille seulement »? Parce que je pourrais aussi invoquer la méthode dans mon navigateur en allant à: http://site.url/reviews/generateReports
Et aussi utile que cela puisse être pour le débogage, il pourrait être dangereux dans un environnement de production.

Si je fais la méthode privée, à savoir _generateReports, le shell ne sera pas autorisé à exécuter. Des idées? Je me sens comme il devrait y avoir une solution facile à cela, mais je ne l'ai pas été en mesure de trouver un, ou une question similaire affichée. Merci!

Était-ce utile?

La solution

Si votre action ne doit être exécutée par le serveur, alors pourquoi construire l'action à l'intérieur d'un contrôleur web accessible?

Si vous souhaitez seulement la CakeShell pour exécuter cette méthode alors l'action ne doit être créé en tant que CakeTask.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top