2016-09-18 129 views
0

我无法理解,因为Composer没有自动加载我需要的软件包。已安装Autoload Composer软件包

我现在composer.json文件有以下几点:

{ 
    "require": { 
     "atlas/orm": "@dev" 
    }, 
    "require-dev": { 
     "atlas/cli": "@dev" 
    } 
} 

它应该产生在/vendor/composer/autoload_namespaces.php文件中的命名空间。但事实并非如此。该文件只能有以下几点:

// autoload_namespaces.php @generated by Composer 

$vendorDir = dirname(dirname(__FILE__)); 
$baseDir = dirname($vendorDir); 

return array(
    'Psr\\Log\\' => array($vendorDir . '/psr/log'), 
); 

当然,当我尝试使用“需要DIR‘/vendor/autoload.php’;”自动加载软件包然后使用它的类,它不起作用。 关于如何解决这个问题的任何想法?

+0

您是否发出“作曲家安装”或“作曲更新”命令生成自动装载机? – vascowhite

+0

@vascowhite,是的,我发布了一个作曲家安装命令。它确实生成了autoload文件,但是例如autoload_namespaces.php文件只包含上面的信息。 –

回答

1

对于要求安装的所有依赖项,您必须要求'autoload.php'。对于自动加载(PSR-4),在composer.json文件中,您必须给出一个名称,在该名称下将命名空间以及将自动加载文件的文件夹名称。

"Namespace_name\\":"folder_name" 

注意:namespace_name后面的反斜线需要被转义,因此需要额外的反斜杠。

然后运行composer dump-autoload -o