【问题标题】:composer cross package autoloading php作曲家跨包自动加载php
【发布时间】:2013-07-07 23:42:45
【问题描述】:

使用 composer autoloader 如何在包之间自动加载?

例如:如何从 myPackage 中自动加载独白类?

/someapp
/someapp/index.php
/someapp/vendor
/someapp/vendor/myPackage
/someapp/vendor/monolog

如果我的包有一个 /vendor 并且使用我的包的包有一个 /vendor 并且使用该包的包使用我的包的包有一个....等等,我可以看到 /vendor 目录的指数爆炸式增长。

那么我们如何跨包自动加载第三方依赖?

【问题讨论】:

    标签: php autoload composer-php


    【解决方案1】:

    您只需在您的包的composer.json 中定义您的包requires 另一个包,就是这样。当someapp 正在安装composer 依赖项时,依赖项的依赖项(依赖项等等等。递归地荒谬地)都将安装在someapp/vendor 中。然后在someapp/index.php 中包含自动加载文件,它允许任何人从任何已安装的包中自动加载类。

    即:

    mypackage/composer.json

    "require": {
        "monolog": "*"
    }
    

    someapp/composer.json

    "require": {
        "mypackage": "*"
    }
    

    安装:

    $ composer install
    

    结果:

    $ ls someapp/vendor
    mypackage     monolog
    

    【讨论】:

      猜你喜欢
      • 2014-08-15
      • 2014-08-16
      • 2013-12-09
      • 2013-03-05
      • 2015-09-24
      • 2019-05-16
      • 2018-06-15
      • 2016-07-08
      相关资源
      最近更新 更多