2010-06-12 7 views
0

Je travaille sur la mise à jour de mon projet de CakePHP 1.2 à 1.3. Dans le processus, il semble que le routage "magique" pour les plugins par lequel un nom de contrôleur (par exemple: "ForumsController") correspondant au nom du plugin (par exemple: "forums") ne se dirige plus automatiquement vers la racine de l'URL du plugin. : "www.example.com/forums" pointant vers le plugin "forums", contrôleur "forums", action "index").Configurer des routes magiques pour les plugins dans CakePHP 1.3?

Le message d'erreur donné est la suivante:

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'; 
} 
?> 

En fait, même si je navigue sur "www.example.com/forums/forums" ou « www.example.com/forums/forums/ index ", je reçois la même erreur exacte.

Ai-je besoin de configurer explicitement des routes vers chaque plugin que j'utilise? Cela semble détruire une grande partie de la magie que j'aime chez CakePHP. Je n'ai trouvé que faire les travaux suivants:

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

Configuration 2 voies pour chaque plug-in simple semble exagéré, ne ce pas? Existe-t-il une meilleure solution qui couvrira tous mes plugins, ou au moins réduira le nombre de routes que je dois configurer pour chaque plugin?

Répondre

1

Je suppose que le sujet Configuration-and-application-bootstrapping couvre que:

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

Jetez aussi un coup d'oeil à ce billet: http://cakephp.lighthouseapp.com/projects/42648/tickets/750-plugin-route-problem-when-acl-and-auth-components-used#ticket-750-5 (gâteau 1.3 avait retiré les routes plugin magiques).

+0

Merci bancer, j'aurais dû mentionner que j'ai essayé de fournir un tableau de plugins personnalisé à 'App :: build()', mais cela n'a pas aidé non plus. J'utilise AuthComponent, donc je suis peut-être confronté au même problème que décrit ce ticket. Je ne peux pas vérifier maintenant depuis que je suis au travail, mais merci pour la tête sur ce problème signalé! –

-1

Vous n'avez pas myplugin_app_controller.php dans votre répertoire/app/plugins/myplugin.

Il suffit de créer un fichier contenant ce qui suit:

<?php 
class MypluginAppController extends AppController { 

} 
?> 

Et vous aurez toutes les fonctionnalités de votre plug-in. :)

+0

Non, j'ai définitivement ce fichier. Merci quand même! –