Impostazione di percorsi magici per i plugin in CakePHP 1.3?
-
26-09-2019 - |
Domanda
sto lavorando sull'aggiornamento mio progetto da CakePHP 1,2-1,3. Nel processo, sembra che la "magia" di routing per i plugin con cui un nome del controller (ad esempio: "ForumsController") corrispondente al nome del plugin (ad esempio: "forum") più automaticamente rotte verso la radice del URL plug-in (ad esempio, :. "www.example.com/forums" puntano al plugin "forum", controller "forum", azione "Indice")
Il messaggio di errore dato è la seguente:
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';
}
?>
In realtà, anche se ci si dirige verso "www.example.com/forums/forums" o "www.example.com/forums/forums/index", ottengo lo stesso errore esatto.
Devo esplicitamente impostare percorsi da ogni singolo uso plug-I? Questo sembra distruggere un sacco di magia che mi piace di CakePHP. Ho trovato solo che facendo le seguenti opere:
Router::connect('/forums/:action/*', array('plugin' => 'forums', 'controller' => 'forums'));
Router::connect('/forums', array('plugin' => 'forums', 'controller' => 'forums', 'action' => 'index'));
Impostazione 2 percorsi per ogni singolo plug-in sembra eccessivo, non è vero? C'è una soluzione migliore che coprirà tutti i miei plugin, o almeno ridurre il numero di rotte ho bisogno di impostare per ogni plugin?
Soluzione
Credo, che argomento coperchi configurazione-e-applicazioni di avvio automatico che:
App::build(array(
'plugins' => array('/full/path/to/plugins/', '/next/full/path/to/plugins/')
));
Anche dare un'occhiata a questo biglietto: http://cakephp.lighthouseapp.com/projects/42648/tickets/750-plugin-route-problem-when-acl-and-auth-components-used # ticket-750-5 (Torta 1.3 aveva magia rimosso plug-in delle vie aeree).
Altri suggerimenti
Non hai myplugin_app_controller.php in app / plugins directory / / myplugin.
basta creare un file contenente seguente:
<?php
class MypluginAppController extends AppController {
}
?>
E si avrà caratteristiche tutta la vostra del plugin. :)