【问题标题】:Test my own composer package does not work测试我自己的作曲家包不起作用
【发布时间】:2014-12-17 00:02:58
【问题描述】:

我想做一个作曲家包。但是,我仍处于开发阶段,会或会但更早的测试出来。

我有一个空的 vendor 文件夹,其中包含来自 composer 的自动加载器:

/vendor
  /composer
autoload.php

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

/vendor
  /composer

  /me
    /package
      /src
      /tests
      composer.json

autoload.php

这是我的 composer.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我的包状态,因为它没有发布,对吧?但是我该如何测试它并告诉作曲家他应该自动加载我的包?

【问题讨论】:

    标签: php composer-php


    【解决方案1】:

    如果您想使用 composer 包含一个未在 http://Packagist.org/ 中列出的包,您可以在 composer.json(项目根文件)中添加一个“repositories”节。这会读取项目,并从中获取 composer.json,使用 main-'requires' 部分的名称。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-06
      • 2016-06-07
      • 2017-03-13
      • 2014-01-31
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多