作曲家是否只引用类并丢弃其他代码?

时间:2015-04-05 11:09:26

标签: php composer-php

关于作曲家文件中的依赖关系,例如,如果我使用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,那么它下面的类依赖于它?

是否丢弃了非类代码或它是如何工作的?

1 个答案:

答案 0 :(得分:2)

  

是否丢弃了非类代码或它是如何工作的?

不,它没有丢弃。 你看到的是生成的自动加载的类图。 它是一个文件映射类。类名是从文件中提取的。 如果文件包含多个类,则提取这些类并指向同一文件。这样做是为了允许个人使用这些类。

  • 如果您使用autoload.files指令,则Composer将在每个请求中包含这些文件。它们总是被装载。

  • 定义的顺序决定了什么是第一个。因此,如果您的代码具有引导代码,例如常量,它会影响代码和"文件"在引导程序之后,然后将它放在文件部分的顶部。

  • 使用autoload.classmap指令进行真正的自动加载(使用classname时,加载文件)会更好。试试这个:

    "autoload": {
         "classmap": ["nbbc.php", "src/"]
    }