使用自定义存储库和包使用 Composer 设置项目

Setup a project with Composer by using custom repositories and packages

我正在尝试设置一个 composer 项目,该项目将使我能够设置自己的框架并提取存储在 github 私有存储库中的任何给定依赖项。

首先是一些先决条件:

  1. 我不想向 packagist 添加代码。
  2. 我想确保我的供应商文件夹尽可能干净。

框架composer.json

{
    "name": "mycompany/myframework",
    "description": "YET another Framework",
    "type": "project",        
    "repositories": [
        {
          "type": "package",
          "package": {
             "name": "mycompany/system",
             "version": "0.0.2",
             "type": "library",
             "source": {
                "url": "https://github.com/mycompany/system.git",
                "type": "git",
                "reference": "master"
             }            
          }
       }
   ],
   "require": {                
       "mycompany/system": "0.0.2",
       "mnsami/composer-custom-directory-installer": "1.1.*"        
   },    
   "license": "proprietary",
   "authors": [...],      
   "extra":{
       "installer-paths":{}
   }
}

mycompany/system composer.json

{
    "name": "mycompany/system",
    "type": "library",
    "description": "utility belt xD"
}

PHP 中 class 的代码(来自 mycompany/sytem )具有以下结构:

namespace MYCOMPANY;
//this file name is called utils.php
//adherence to PSR-4 is assumed
class utils  {

}

我的目标是:

我想告诉 composer 它应该创建以下结构:

供应商\我的公司\utils.php(不是供应商\我的公司\系统\utils.php)

稍后,我希望能够添加更多这样的存储库,并将它们也存储在 MYCOMPANY 下。 framwework 将解决此设置。

自定义安装由 mnsami/composer-custom-directory-installer

处理

根据经验,我猜我应该将不同的包保留在它们自己的目录中,但是,因为没有覆盖的风险,因为其他文件将具有不同的命名约定。

编辑 这可以做到吗? 如果可以,怎么做?

提前致谢

经过几个小时的工作并关注@NicoHaase 在评论中的回复,我放弃了这个问题。

我试图创建一个干净的文件夹,将来自不同存储库的所有不同 类 放入其中,但 composer 不能那样工作。

我希望这会帮助其他想要同样东西的人。