【发布时间】:2017-11-20 19:06:49
【问题描述】:
我正在尝试了解如何将 PSR-4 与 Composer 一起使用。我的项目中有 3 个文件夹:folder、folder2 和 `vendor.在所有这些文件夹之外有四个文件:index.php、composer.phar、composer.json 和 X.php。其中一些文件描述如下:
index.php
require_once 'vendor/autoload.php';
use \folder\in\A;
use \folder\in\B;
use \folder\C;
use \folder2\D;
$a = new A();
$b = new B();
$c = new C();
$d = new D();
$x = new X();
X.php
<?php
class X {
public function __construct() {
echo "Classe X";
}
}
composer.json
{
"autoload":{
"psr-4": {
"folder\\": "folder/",
"folder2\\": "folder2/"
}
}
}
index.php 文件适用于文件夹和文件夹 2 中的文件,但找不到 X.php。有什么问题?如何使用 Composer 和 PSR-4 在 index.php 中找到 X.php 文件?不过,我可以使用 require_once 找到 X.php 文件,但我想知道如何使用 Composer 和 PSR-4。
【问题讨论】:
-
你正在“使用”除 X 类之外的所有类
-
您的 X 类缺少命名空间。
-
我应该在 X 类中使用什么命名空间?这个类在所有其他文件夹之外。
-
如果你想正确地构建你的代码,根目录中不应该有任何类。什么命名空间和/或文件夹取决于类的实际作用。
标签: php composer-php psr-4