使用自定义类找不到CakePHP类
我刚开始使用CakePHP3。我试着站起来跑步,但做最简单的事情却让我头疼 我在使用自定义类找不到CakePHP类,php,cakephp-3.0,Php,Cakephp 3.0,我刚开始使用CakePHP3。我试着站起来跑步,但做最简单的事情却让我头疼 我在src/App/MySimpleClass.php <?php namespace MyApp\MyNamespace; class MySimpleClass { public function aSimpleFunction() { return 1; } } 您应该将控制器放置在: src/控制器 和使用: namespa
src/App/MySimpleClass.php
<?php
namespace MyApp\MyNamespace;
class MySimpleClass {
public function aSimpleFunction() {
return 1;
}
}
您应该将控制器放置在:
src/控制器
和使用:
namespace App\Controller;
没关系,我终于找到了解决办法
我只需要将src
添加到composer.json
中的类映射中:
"autoload": {
"classmap": [
"src"
],
...,
}
编辑:
我没有滥用类映射,而是将类文件移动到src
之外的目录中。如果您的类位于文件src/App/MySimpleClass.php中,则名称空间必须是App\App
。第一个App
是指每个CakePHP 3.x应用程序的根命名空间,第二个App
是指将类文件放入src
目录中的子目录
如果类的命名空间应为App\MyNamespace
,则类文件必须位于src/MyNamespace
中
另外:根据您引用的错误消息,MyFirstController位于名为TestController.php的文件中。相反,它应该是MyFirstController.php。我建议大家阅读一下这个主题。与其说这是一个“解决方案”,不如说这是一个笨拙的解决办法。将实现直接放在src
文件夹中不是好做法。您的目录结构应该镜像您的名称空间结构,这样您就不需要这种攻击。
"autoload": {
"classmap": [
"src"
],
...,
}