如何将自己的php包GitHub项目与composer集成使用和同时开发

Posted

技术标签:

【中文标题】如何将自己的php包GitHub项目与composer集成使用和同时开发【英文标题】:How to integrate own php package GitHub project with composer to use as well as develop it simultaneously 【发布时间】:2016-07-14 09:21:21 【问题描述】:

我想开发 laravel 包 我在 github 上创建了一个带有类的示例项目。 我在require 数组中的项目composer.json 中使用我的github phpcomposer.json 中的包名称。

当我执行composer update 时,我得到了错误。 我需要说明性的步骤来使用 Github 和 composer 开发和集成 PHP/Laravel 包。

我要添加包的项目的 Composer.json 是:

    
       "name": "laravel/laravel",
       "description": "The Laravel Framework.",
       "keywords": ["framework", "laravel"],
       "license": "MIT",
       "type": "project",
"require": 
    "php": ">=5.5.9",
    "laravel/framework": "5.2.*",
    "jeroen-g/laravel-packager": "^1.3",
    "igaster/laravel-theme": "^1.1",
    "laura/cms": "*.*"
,
"require-dev": 
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "~4.0",
    "symfony/css-selector": "2.8.*|3.0.*",
    "symfony/dom-crawler": "2.8.*|3.0.*"
,
"autoload": 
    "classmap": [
        "database"
    ],
    "psr-4": 
        "App\\": "app/"
    
,
"autoload-dev": 
    "classmap": [
        "tests/TestCase.php"
    ]
,
"scripts": 
    "post-root-package-install": [
        "php -r \"copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "php artisan key:generate"
    ],
    "post-install-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "pre-update-cmd": [
        "php artisan clear-compiled"
    ],
    "post-update-cmd": [
        "php artisan optimize"
    ]
,
"config": 
    "preferred-install": "dist"
,
"repositories": [
    "type": "vcs",
    "url": "https://github.com/harish-php/lauracms"
]

【问题讨论】:

【参考方案1】:

编辑

添加了有关如何创建自定义包的更多说明

自定义包composer.json


  
    "name": “packageName”,
  
    "autoload": 
    
        "psr-4": 
      
                “MySourcesNamespace\\”: "srcDir”
    
        
  
    



应用程序的 Composer.son

"require": 
   
    "packageName": "1.0.*"

,
"repositories": [
  
      
    "type": "vcs",
     
    "url":  "https://github.com/…"  

]

这里的版本应该被标记。如果你没有 Tag,你可以依赖 master 分支:

"require": 
   
    "MySourcesNamespace\\": "dev-master"

,

在进行作曲家更新时,您的类应该在供应商目录中。

【讨论】:

我做到了..我收到关于最低稳定性的错误..将发布详细的错误消息。 @harish Ok 发布错误信息和你的包的目录结构 您的需求无法解析为一组可安装的软件包。问题 1 - 在任何版本中都找不到请求的包 laura/cms,包名可能有错别字。潜在原因: - 包名称中的拼写错误 - 根据您的最低稳定性设置,该包在足够稳定的版本中不可用,请参阅 getcomposer.org/doc/04-schema.md#minimum-stability> 了解更多详细信息。阅读 getcomposer.org/doc/articles/troubleshooting.md> 了解更多常见问题。 好的,一个熟悉的错误:)。您可以在包含包的地方发布 composer.json 吗? 好吧,我想问题在这里:“laura/cms”:“*.*”尝试将其更改为“laura/cms”:“dev-master”我在你的 github 项目中看到你做没有任何标签。所以作曲家不知道要检索什么版本。使用 dev-master 告诉 composer 使用 master 分支。我还编辑了我的答案以包括必要的步骤

以上是关于如何将自己的php包GitHub项目与composer集成使用和同时开发的主要内容,如果未能解决你的问题,请参考以下文章

Github上的资源清单

如何在 Laravel 项目中为我自己的包运行 php 测试?

composer基础知识科普

如何从github上克隆项目并在自己的机器上跑起来

ubuntu18.04在线安装dockernvidia-docker2与docker-compos

composer.json:项目安装