关于composer文件中的依赖关系,例如,如果我使用classmap
来包含这些文件,我会注意到生成了一个自动加载文件,例如:
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'BBCode' => $vendorDir . '/cyphix333/nbbc/nbbc.php',
'BBCodeEmailAddressValidator' => $vendorDir . '/cyphix333/nbbc/nbbc.php',
'BBCodeLexer' => $vendorDir . '/cyphix333/nbbc/nbbc.php',
'BBCodeLibrary' => $vendorDir . '/cyphix333/nbbc/nbbc.php',
);
现在,根据我的判断,这是指它可以在哪里找到所有需要的类;但是,如果该文件中还有其他代码,例如CONSTANTS
集,它下面的类依赖于它,该怎么办?
非类代码被丢弃了吗?它是如何工作的?
非类代码被丢弃了吗?它是如何工作的?
不,这是不公开的。您看到的是自动加载的生成类映射。这是一个类到文件的映射。类名是从文件中提取的。如果一个文件包含多个类,那么这些类将被提取并指向同一个文件。这样做是为了允许单独使用这些类。
-
如果使用
autoload.files
指令,则Composer将在每个请求中包含这些文件。它们总是满载的。 -
定义的顺序决定了什么是第一个。因此,如果你的代码有引导程序代码,比如Constants,它会影响引导程序之后的代码和"文件",那么把它放在files部分的顶部。
-
最好使用
autoload.classmap
指令进行真正的自动加载(使用类名时,加载文件)。试试这个:"autoload": { "classmap": ["nbbc.php", "src/"] }