测试我自己的作曲家包不起作用


Test my own composer package does not work

我想做一个作曲家包。但是,我仍处于开发阶段,将或将要进行较早的测试。

我有一个空的vendor文件夹,里面有作曲家的自动加载器:

/vendor
  /composer
autoload.php

所以现在我已经尝试了我的包"模拟"并创建了我的文件夹结构和 composer.json:

/vendor
  /composer
  /me
    /package
      /src
      /tests
      composer.json
autoload.php

这是我的作曲家.json:

{
   "name": "me/package",
   "description": "",
   "license": "",
   "authors": [
    {
      "name": "",
      "email": ""
    }
   ],
   "minimum-stability": "dev",
   "require": {
     "php": ">=5.4.0"
   },
  "autoload": {
   "psr-4": {
     "Me''Package''": "src/"
   }
 }
}

这是我的班级:

namespace Me'Package;
class Test {
  // ...
}

如果我想称它为:

if(file_exists('vendor/autoload.php')) require 'vendor/autoload.php';
$test = new 'Me'Package'Test();

我变得Fatal error: Class 'Me'Package'Test' not found.

当然,我也在根目录中插入了一个 composer.json,但我仍然可以require我的包状态,因为它没有发布,对吧?但是我该如何测试它并向作曲家说他应该自动加载我的包呢?

如果你想使用composer来包含未在 http://Packagist.org/上列出的包,你可以在composer.json(项目根文件(中添加一个"repository"节。这将读取项目,并从中获取 composer.json,使用主"requires"部分的名称。

"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/example/private-repo.git"
    }
}

"url"部分实际上也可以是git,SVN或HG存储库的任何有效URL - 甚至是基于 file://的引用。