【发布时间】:2016-06-17 21:54:07
【问题描述】:
我刚刚开始使用 Composer。我想确保我正确理解 Composer 在使用 Composer 的默认值下载和安装 来自 Packagist 的软件包时所做的事情。这是正确的:
-
composer.json文件的“Require”部分指定将从 Packagist下载和安装的软件包。 只有“Require”部分中列出的软件包才会被下载和安装已安装。 - 在步骤#1 的下载和安装过程中,会在默认的
vendor文件夹(在下载和安装过程中在项目的根目录中创建)中创建一个autoload_namespaces.php文件。该文件包含每个下载和安装的包的命名空间定义,该包映射到文件系统上的文件夹 - 如果每个下载的文件都包含与
autoload_namespaces.php's命名空间中的一个匹配的命名空间定义,则在步骤#1 中下载的文件中包含的类只能通过autoload_namespaces.php's命名空间访问。 如果下载的文件中没有命名空间定义,则文件中的类将分配给 GLOBAL 命名空间。 - composer.json 文件的“Autoloader”部分仅用于定义自定义命名空间并将这些自定义命名空间映射到文件系统上的文件夹。下载和安装的包命名空间仅在
autoload_namespaces.php文件中定义,并且不受任何影响composer.json的“Autoloader”部分,假设autoload_namespaces.php文件中存在的命名空间未在composer.json“Autoloader”部分中重复。
我对上述项目的理解是否正确?如果没有,请纠正我吗?
提前致谢 -
【问题讨论】:
标签: php namespaces composer-php