我正在使用CakePHP 3.我一直在寻找使我的应用程序模块化的方法,并建议我使用插件来做到这一点。所以我决定试一试。请参阅我之前的问题:Modular Directory Structure With CakePHP。我有一个名为Client的插件(模块) - 它有一个名为ClientsController的控制器。
当我使用“http://localhost/client/clients/index”访问它时,它不起作用。我得到一个丢失的控制器错误。我发现这是因为扩展了位于主目录中的App \ Controller \ AppController。我在主src目录中的插件中有一些常见的东西。
怎么了?
为什么我不能延长App\Controller\AppController
?
<?php
use App\Lib\OC\OCSSP;
use Cake\Network\Exception;
use Cake\ORM\TableRegistry;
use Cake\Routing\Router;
use Cake\Utility\Text;
use App\Controller\AppController;
/**
* Clients Controller
*
* @property \App\Model\Table\ClientsTable $Clients
*/
class ClientsController extends AppController
{
public function initialize()
{
parent::initialize();
}
}
答案 0 :(得分:1)
我不知道蛋糕,但从外观上看,你只是忘记了错误信息建议使用的命名空间。
namespace \Client\Controller
这将导致范围分辨率错误,您会看到它就像命名类
你有一个名为
的班级 \ClientsController
而且蛋糕正在寻找一个名为
的人\Client\Controller\ClientsController
另请注意,在打开php标记之后,您希望命名空间成为文件中code
的第一行。
<?php
namespace ....