Composer php psr-0与composer自动加载不是wotking,但它与psr-4自动加载完美配合
我试图用PSR-0自动加载一个文件,但它没有自动加载该文件。我用PSR-4自动加载尝试了相同的文件。有了PSR-4,它工作得非常好。PSR-0所需的文件夹结构是否有任何差异 即使保持中提到的文件夹结构,我也无法使PSR-0工作 这是我的文件夹结构Composer php psr-0与composer自动加载不是wotking,但它与psr-4自动加载完美配合,composer-php,psr-4,psr-0,Composer Php,Psr 4,Psr 0,我试图用PSR-0自动加载一个文件,但它没有自动加载该文件。我用PSR-4自动加载尝试了相同的文件。有了PSR-4,它工作得非常好。PSR-0所需的文件夹结构是否有任何差异 即使保持中提到的文件夹结构,我也无法使PSR-0工作 这是我的文件夹结构 Test --Package --Test.php 我在Test.php中有: <?php namespace Test\Package; class Test { public function __cons
Test
--Package
--Test.php
我在Test.php中有:
<?php
namespace Test\Package;
class Test
{
public function __construct()
{
echo "In Test class";
}
}
与直觉相反,它包含一个部分路径,使得PSR-0似乎需要一个到包的路径才能加载类。实际上,PSR-0基于包构造路径,因此仅当代码位于不属于命名空间路径的src/
或lib/
等文件夹中时,它才需要指定路径。如果基于名称空间的目录结构在与composer.json
相同的目录中启动,则不需要路径
假设问题中指定了目录结构,有几种方法可以使用composer加载此类
PSR-0
请注意,即使代码位于Test/Package/
中,此文件夹也不是PSR-0中指定的
PSR-4
对于PSR-4自动加载,包源的路径必须出现在composer.json
文件中
{
"autoload": {
"psr-4": { "Test\\Package\\": "Test/Package/" }
}
}
类映射
当需要加载未组织到典型命名空间文件夹树中的类时,也可以简单地指定文件夹列表,在其中使用classmap
数组搜索类
{
"autoload": {
"classmap": [ "Test/Package/" ]
}
}
但是,一般来说,使用PSR-0或PSR-4将提供更简单的体验,因为classmap
方法要求每个文件夹都要单独指定。可能重复@Wazelin,但我无法使PSR-0工作,即使保持这里提到的文件夹结构是我的结构测试--Package--Test.php Test.php////正如您所描述的那样他们应该在工作。您实际的类名和文件夹结构是什么?这是我在描述中指定的:)@jwriteclub在测试文件夹@jwriteclub之外
{
"autoload": {
"psr-4": { "Test\\Package\\": "Test/Package/" }
}
}
{
"autoload": {
"classmap": [ "Test/Package/" ]
}
}