Можно ли «депортировать» импортированный контроллер в CakePHP? - PullRequest
0 голосов
/ 28 сентября 2010

У меня проблема с GroupsController::build_acl() - http://book.cakephp.org/view/647/An-Automated-tool-for-creating-ACOs

Мне потребовалось некоторое время, чтобы отследить ошибку, и теперь я нашел ее, я не уверен, как обойтиit.

Симптомы:

Не все методы для NodesController (определенные мной) возвращаются.

Возможная причина:

build_acl() importсторонний плагин, который также имеет NodesController и последующий App::import() не перезаписывает его.

Я собираюсь попробовать два запуска сборки, один с закомментированным кодом плагина, нопредпочтительнее было бы более долговечное решение!

Мне нужен способ отбросить импортированный контроллер или принудительно выполнить повторный импорт, оставаясь в области действия.

Ответы [ 2 ]

1 голос
/ 28 сентября 2010

Вы не можете делать то, что хотите, подумайте о прямом php некоторое время. как только вы используете include ('some / file.php'); как вы его не импортируете? Вы не можете.

Теперь причина, по которой вы не можете перезаписать его, снова сводится к php. что произойдет, если вы запустите

<?php
include('some/file.php');
include('some/file.php');
?>

вы получите ошибки об уже определенном классе.

Cake не позволяет этому случиться, поэтому единственный (и правильный путь) состоит в том, чтобы не иметь 2 контроллеров с одинаковым именем. вы можете назвать их как угодно и использовать роутер для сопоставления с хорошими URL.

0 голосов
/ 29 сентября 2010

Оказывается, что плагин был избыточным и нигде не вызывался в приложении и сломал бы его, если бы произошла ошибка переопределения класса.После удаления файлов все работало нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...