我的./app
文件夹看起来像:
+-- app
+-- Classes
+-- Events
+-- EventBase.php
+-- EventX.php
EventX
文件没有什么秘密:
<?
namespace AppClassesEvents;
class EventX {
// ...
}
EventBase.php
表示内部的立面,我只是尝试实例化 EventX
:
public function someMethod() {
new AppClassesEventsEventX;
// ...
}
在这条线之后,框架抛出一个例外,说找不到课程:
SymfonyComponentDebugExceptionFatalThrowableError (E_ERROR)
Class 'AppClassesEventsEventX' not found
即使那样:
file_exists(__DIR__ . 'EventX.php'); // true
尝试创建外墙并通过将类文件从他的当前目录移动并返回后解决此问题(是的,我不这样做,但它奏效了)。
有些东西告诉我,这是一个自动加载过程的问题,所以我尝试了这些命令(但仍然无法正常工作):
php artisan cache:clear
php artisan clear-compiled
php artisan config:clear
composer dump-autoload
为了调查问题,我该怎么办?
我认为问题在于php tag&lt;?
<?php
namespace AppClassesEvents;
class EventX {
// ...
}
php还允许短路打开标签&lt;?(不建议您使用short_open_tag php.ini配置文件指令或使用 - eNable-short-short-tags Option配置PHP时。
链接
您需要将新名称空间添加到composer.json中
"psr-4": {
"App\": "app/",
"Classes\": "app/classes/"
否则作曲家无法检测到您的新名称空间
可以在这里找到另一种方法:https://stackoverflow.com/a/28360186/6111545