Pregunta

En una gran parte de mi torta de aplicaciones que tienen una cáscara que se invocan a través de cron y la consola pastel, y me pregunto si puedo restringir estos métodos en una manera "privada", por lo que sólo puede haber invocado por la consola? Por ejemplo, digamos que tengo esto en mi concha:

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

¿Cómo podría restringir el "generateReports" acción sea una "cáscara única" método? Porque yo también podría invocar el método en el navegador a través de: http://site.url/reviews/generateReports
Y tan útil como esto puede ser para la depuración podría ser peligroso en un entorno de producción.

Si hago el método privado, es decir _generateReports, a continuación, la cáscara no se le permitirá a ejecutarlo. ¿Algunas ideas? Siento que no debería haber una solución fácil para esto, pero no he sido capaz de encontrar uno, o una pregunta similar publicado. Gracias!

¿Fue útil?

Solución

Si su acción es sólo para ser ejecutado por el servidor, entonces ¿por qué construir el interior de la acción de un controlador de acceso web?

Si desea que sólo el CakeShell para ejecutar ese método entonces la acción sólo debe crearse como un CakeTask.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top