仅加载运行时所需的文件

时间:2015-08-17 08:54:34

标签: php composer-php

使用composer require加载库时,您将获得完整的软件包:

vendor/
    autoload.php
    example-author/
        example-library/
            docs/
                (5 MB of HTML and pictures)
            samples/
                (10 MB of sample data)
            test/
                (150 files)
            src/
                Foo.php (20 KB)
                Exception.php (1 KB)

如果您只想使用该库(而不是对其代码库做出贡献),则意味着部署完全不需要的目录树。

这是它的意思吗?

我更喜欢一种更接近作曲家年龄的设置,例如:

vendor/
    autoload.php
    example-author/
        example-library/
            Foo.php
            Exception.php

......只要它是支持的方案。

1 个答案:

答案 0 :(得分:2)

请务必从dist下载,而不是从source下载。

  

Dist: dist是包数据的打包版本。通常是发布版本,通常是稳定版本。

     

来源:该来源用于开发。这通常源自源代码存储库,例如git。你可以去取   当您想要修改下载的包时。

     

包可以提供其中任何一个,甚至两者。取决于   某些因素,例如用户提供的选项和稳定性   包装,一个将是首选。

如果正确配置了包,那么它们不应包含tests中的docsdist。您可以在github的包源中轻松检查这一点。应该有一个.gitattributes文件,其中某些文件被排除在dist存档之外,如下所示:

/tests export-ignore
/docs export-ignore
.gitattributes export-ignore
.gitignore export-ignore
.gitmodules export-ignore
.travis.yml export-ignore
build.properties export-ignore
build.xml export-ignore
phpunit.xml.dist export-ignore
run-all.sh export-ignore
composer.lock export-ignore

Git文档的Exporting Your Repository章节对此进行了解释。

如果来源中没有.gitattributes,那么您将不得不要求该软件包的作者自己包含一个或提出拉取请求。

作曲家的默认

当您的作曲家处于默认配置时,使用stable个套件,首选安装为dist

"config": {
    "preferred-install": "dist"
},
"minimum-stability": "stable"

然后作曲家从github下载一个zip文件,该文件是使用.gitattributes中定义的过滤器创建的。

从dist下载作曲家

如果您想拥有dist存档,则有两种选择。

  1. 制作"preferred-install": "dist"
  2. 使用--prefer-dist
  3. 上的composer update选项

    它们都使作曲家对{em>所有包使用dist。 如果您希望仅使用example-author/example-library的来源而不是所有包的dist,请使用:

    composer update example-author/example-library --prefer-dist
    

    注意

    如果已存在,则必须删除dist文件夹中的包文件夹(您希望从/vendor更新)才能重新安装。否则它将坚持已经下载的版本。