Autoload Composer安装了软件包

时间:2016-09-18 18:19:45

标签: php composer-php autoload

我无法理解没有作曲家自动加载我需要的软件包。

我当前的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' ;;"要自动加载包然后使用它的类,它不起作用。 关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

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

"Namespace_name\\":"folder_name"

注意:namespace_name之后的反斜杠需要进行转义,因此需要额外的反斜杠。

然后运行composer dump-autoload -o