Pregunta

Estoy trabajando en la mejora de mi proyecto desde CakePHP 1.2 a 1,3. En el proceso, parece que la "magia" de enrutamiento para los plugins mediante el cual un nombre de controlador (por ejemplo: "ForumsController") que coincide con el nombre del plugin (por ejemplo: "foros") ya no dirige automáticamente a la raíz de la URL del plugin (por ejemplo, :. "www.example.com/forums" apuntando a enchufable "foros", el controlador "foros", la acción "índice")

El mensaje de error dado es como sigue:

Error: ForumsController could not be found.

Error: Create the class ForumsController below in file: app/controllers/forums_controller.php

<?php
class ForumsController extends AppController {
    var $name = 'Forums';
}
?>

De hecho, incluso si navego a "www.example.com/forums/forums" o "www.example.com/forums/forums/index", me sale el mismo error exacto.

¿Es necesario configurar explícitamente caminos para cada uso individual plugin que? Esto parece destruir una gran parte de la magia que me gusta de CakePHP. Sólo he encontrado que al hacer las siguientes obras:

Router::connect('/forums/:action/*', array('plugin' => 'forums', 'controller' => 'forums'));
Router::connect('/forums', array('plugin' => 'forums', 'controller' => 'forums', 'action' => 'index'));

Configuración de 2 rutas para cada plug-in parece un exceso, ¿no es así? ¿Hay una mejor solución que cubrirá todas mis plugins, o al menos reducir el número de rutas que necesito configurar para cada plug-in?

¿Fue útil?

Solución

supongo, ese tema cubiertas configuración-y-aplicación-bootstrapping que:

App::build(array(
    'plugins' => array('/full/path/to/plugins/', '/next/full/path/to/plugins/')
));

También echar un vistazo a este billete: http://cakephp.lighthouseapp.com/projects/42648/tickets/750-plugin-route-problem-when-acl-and-auth-components-used # ticket-750-5 (torta 1.3 tenía magia eliminado plugin de rutas).

Otros consejos

Usted no tiene myplugin_app_controller.php en su / directorio / app plugins / miplugin.

Basta con crear un archivo que contiene lo siguiente:

<?php
class MypluginAppController extends AppController {

}
?>

Y usted tendrá todas las características de su plugin. :)

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