如何将自己的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 php 包composer.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集成使用和同时开发的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 项目中为我自己的包运行 php 测试?