Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Composer php psr-0与composer自动加载不是wotking,但它与psr-4自动加载完美配合_Composer Php_Psr 4_Psr 0 - Fatal编程技术网

Composer php psr-0与composer自动加载不是wotking,但它与psr-4自动加载完美配合

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

我试图用PSR-0自动加载一个文件,但它没有自动加载该文件。我用PSR-4自动加载尝试了相同的文件。有了PSR-4,它工作得非常好。PSR-0所需的文件夹结构是否有任何差异

即使保持中提到的文件夹结构,我也无法使PSR-0工作

这是我的文件夹结构

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/" ]
  }
}