是否可以在CakePHP中“逐出”导入的控制器?

时间:2010-09-28 09:00:01

标签: cakephp

我遇到了GroupsController::build_acl() - http://book.cakephp.org/view/647/An-Automated-tool-for-creating-ACOs

的问题

我花了一段时间来追踪这个错误,现在我发现它我不知道如何解决它。

症状:

并非返回NodesController(由我定义)的所有方法。

可能的原因:

build_acl()导入第三方插件,该插件也有NodesController,后续App::import()不会覆盖它。

我即将尝试两次构建运行,一次注释掉插件代码,但是更耐用的解决方案将是首选!

我需要一种方法来删除导入的控制器或强制重新导入,同时保持在范围内。

2 个答案:

答案 0 :(得分:1)

你不能做你想做的事情,想一想直接的php一段时间。一旦你使用了include('some / file.php');你怎么取消导入它?你不能。

现在你不能覆盖它的原因再次归结为php。如果你运行

会发生什么
<?php
include('some/file.php');
include('some/file.php');
?>

您将收到有关已定义的类的错误。

Cake正在阻止这种情况发生,因此唯一(也是正确的方法)是没有2个具有相同名称的控制器。你可以根据自己的喜好命名,并使用路由器映射到漂亮的网址。

答案 1 :(得分:0)

原来这个插件是多余的,并且在应用程序的任何地方都没有被调用,并且如果它是一个类重新定义错误就会破坏它。删除文件后一切正常。