Test 类,位于 MyApp\src\models 文件夹中:
<?php
namespace MyApp\Models;
class Test
{
function __construct() {
echo "class Test running...";
}
}
项目根目录的索引页面:
<?php
require_once realpath("vendor/autoload.php");
use MyApp\Models\Test;
$test = new Test();
但是当我运行命令时:
composer dump-autoload -o
错误消息显示:
MyApp/src\models\Test.php does not comply with psr-4 autoloading standard. Skipping.
但无论如何它都会生成包含 autoload.php 和其他文件的供应商文件夹。并且index.php 工作正常。那么我在这里缺少什么?
根据规范,您需要在 FirstCaps 中拥有命名空间路径。
您的路径是小写的
MyApp\src\models
但您的命名空间是 FirstCap:
<?php
namespace MyApp\Models;
如果您将文件夹重命名为
MyApp\src\Models
,您应该可以开始了。
如果您已经将代码提交到 git,并且使用的是 Windows PC,请注意,由于 NTFS 和 FAT 文件系统都不区分大小写,因此将文件夹从
models
重命名为 Models
时可能会遇到问题。您可能需要从 models
重命名为 somethingelse
(并提交),然后重命名为 Models
(并再次提交)