2010-06-12 1 views
0

Я работаю над обновлением своего проекта от CakePHP 1.2 до 1.3. В этом процессе кажется, что «волшебная» маршрутизация для плагинов, с помощью которой имя контроллера (например: «ForumsController»), соответствующее имени плагина (например, «форумы») больше не автоматически направляется в корень URL-адреса плагина (например, : «www.example.com/forums», указывая на плагины «форумы», «форумы» контроллера, «индекс» действия).Настройка магических маршрутов для плагинов в CakePHP 1.3?

Сообщение об ошибке дается следующим образом:

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

В самом деле, даже если я перейти к «www.example.com/forums/forums» или «www.example.com/forums/forums/ index ", я получаю ту же самую точную ошибку.

Нужно ли мне явно настраивать маршруты для каждого плагина, который я использую? Кажется, это разрушает много волшебства, которое мне нравится в CakePHP. Я только обнаружил, что делает следующие работы:

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

Настройка 2 маршрута для каждого отдельного плагина кажется излишним, не так ли? Есть ли лучшее решение, которое охватит все мои плагины или, по крайней мере, уменьшит количество маршрутов, которые мне нужно настроить для каждого плагина?

ответ

1

Я думаю, что тема Configuration-and-application-bootstrapping охватывает, что:

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

Также посмотри на этом билете: http://cakephp.lighthouseapp.com/projects/42648/tickets/750-plugin-route-problem-when-acl-and-auth-components-used#ticket-750-5 (Cake 1,3 удалила магический плагин маршруты).

+0

Спасибо bancer, я должен был упомянуть, что я попытался предоставить настраиваемый массив плагинов для 'App :: build()', но это тоже не помогло. Я использую AuthComponent, поэтому, возможно, я столкнулся с той же проблемой, что и этот билет. Я не могу проверить сейчас, так как я на работе, но спасибо за хедз-ап за эту проблему! –

-1

У вас нет myplugin_app_controller.php в каталоге/app/plugins/myplugin.

Просто создайте файл, содержащий следующее:

<?php 
class MypluginAppController extends AppController { 

} 
?> 

И вы будете иметь все возможности вашего плагина. :)

+0

Нет, у меня определенно есть этот файл. Спасибо хоть! –