在CakePHP中,如何将控制器文件添加到/app/controllers/目录,从而从/core/cake/目录中的控制器扩展此类?

在CakePHP中,如何将控制器文件添加到/app/controllers/目录,从而从/core/cake/目录中的控制器扩展此类?,php,inheritance,cakephp,cakephp-1.3,cakephp-1.2,Php,Inheritance,Cakephp,Cakephp 1.3,Cakephp 1.2,在core\cake\libs\controller\images\u controller.php中,我有这样一个类: <?php class ImagesController extends AppController { .................... function view() { .................... } .................... } ?> 但现在,在我看来,在/ap

core\cake\libs\controller\images\u controller.php
中,我有这样一个类:

<?php
class ImagesController extends AppController
{
    ....................
    function view()
    {
        ....................
    }
    ....................
}
?>
但现在,在我看来,在
/app/controllers
中,我必须创建这样一个类:

class ImagesController extends ImagesController{
    ....................
}
基本上,我试图在
/app/controllers
中创建的
ImagesController
类应该从
core\cake\libs\controller\images\u controller.php中的
ImagesController
类扩展,这意味着在
core\cake\libs\controller\images\u controller.php
中扩展/继承此类:

<?php
class ImagesController extends AppController
{
    ....................
    function view()
    {
        ....................
    }
    ....................
}
?>


类ImagesController扩展ImagesController
在我看来并不正确,因为我不确定CakePHP是否理解我试图说
/app/controllers
中我的类的名称将是
ImagesController
,我试图从名为
ImagesController
的类扩展它在
core\cake\libs\controller\images\u controller.php
中定义。你是怎么做到的?谢谢。

要解决问题中涉及扩展同名类的部分,请执行以下操作:

class ImagesController extends ImagesController{
    ....................
}
namespace-App\Controller
使用Foreign\Namespace\Controller\samenameconcontroller作为不同的名称
类SameNameController扩展了不同的名称{
//代码在这里
}
[此处有更多详细信息][https://www.php.net/manual/en/language.namespaces.importing.php]

如评论中所述,CakePHP core没有附带
ImagesController
类,这意味着core已被修改,文件本来就不应该放在那里


只要这是一个简单的错误,并且不受依赖核心文件夹中存在的文件的其他修改的约束,就应该可以简单地将其移动到应用程序级
控制器
文件夹中,ie to
app/controllers/images\u controller.php

CakePHP核心中没有图像控制器,即无论您在那里做什么,都已经有一个修改过的核心。@ndm换句话说,
类ImagesController扩展了AppController
首先不应该用
core\cake\libs\controller\images\u controller.php
编写。我所要做的就是将
类ImagesController将AppController
core/cake/libs/controller/images\u controller.php
扩展到
/app/controllers/images\u controller.php
,对吗?理论上,这应该是可行的,但我不确定创建该文件的人在这样做时想到了什么,他们可能做了哪些其他事情可能会阻止这一切。理想情况下,该应用程序由测试用例适当覆盖,因此您可以简单地尝试并查看。@ndm您是对的。它按照您的建议工作,只需将文件从
core/cake/…
移动到
app/…
。非常感谢。请写下您的评论作为答案,这样我就可以接受它,并将这个问题标记为具有最佳答案。这是在CakePHP框架中实现的方法,还是您提出的解决方案是扩展同名类的通用PHP方法?我知道CakePHP也是PHP,但它是一个框架,所以我想知道你是遵循框架规则,还是只提供一种在PHP中做事情的通用方法,而没有CakePHP框架。这是一种通用的PHP解决方案。我不知道您可以在CakePHP中专门使用任何其他方法。CakePHP 1.x不支持或使用名称空间。我的建议是使用通用的php语法。而且,您会发现,Cake实际上与php标准和最佳实践高度一致,而不是建立额外的php工作方法。@ndm,
use as
应该可以工作,无论所讨论的类是否在命名空间中?