Настройка волшебных маршрутов для плагинов в CakePhp 1.3?

StackOverflow https://stackoverflow.com/questions/3029776

Вопрос

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

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

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 маршрутов для каждого плагина кажется сверхугольником, не так ли? Есть ли лучшее решение, которое охватит все мои плагины или, по крайней мере, уменьшить количество маршрутов, которые мне нужно настроить для каждого плагина?

Это было полезно?

Решение

Я думаю, что тема Конфигурация и приложение-загрузка покрывает, что:

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- noishound#Ticket-750-5. (Торт 1.3 удалил волшебные маршруты плагинов).

Другие советы

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

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

<?php
class MypluginAppController extends AppController {

}
?>

И у вас будет все функции вашего плагина. :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top