将本地包添加到作曲家autoload.php

时间:2015-07-19 14:51:38

标签: php composer-php autoload

我正在处理一个我后来要上传到packagist的软件包。但就目前而言,我只想在本地开发它。但我找不到让作曲家自动加载我的包而不用Packagist的方法。

目前我的项目结构如下:

www/
  index.php
  composer.json
  composer.lock
  vendor/
    autoload.php
    acme/
      http/
        composer.json
        src/
          Request.php

我手动将acme文件夹放在vendor文件夹中。我还在composer.json文件夹中添加了另一个acme/http,其中包含以下内容:

{
    "name": "Acme/Http",
    "authors": [{
            "name": "Acme"
        }],
    "require": {
        "php": ">=5.3.0"
    },
    "autoload": {
        "psr-4": {
            "Acme\\Http\\": "src/"
        }
    }
}

现在,我现在如何添加我的"本地"投射到作曲家的项目autoload.php

3 个答案:

答案 0 :(得分:0)

运行composer dump-autoload以更新自动加载器。

有关详细信息,请参阅: https://getcomposer.org/doc/03-cli.md#dump-autoload

答案 1 :(得分:0)

acme/http放在vendor外面会更加干净明了:

www/
  index.php
  composer.json
  composer.lock
  acme/
    http/
      composer.json
      src/
        Request.php
  vendor/
    autoload.php

然后在www/composer.json上使用repositories条目:

{
    "name": "foo/www",
    ...
    "require": {
        "acme/http": "*",
        ..
    },
    "repositories": [
        {
            "type": "path",
            "url": "./acme/http"
        }
    ]
}

答案 2 :(得分:-2)

将您的课程添加到vendor/composer/autoload_psr4.phpvendor/composer/autoload_classmap.php