我正在尝试在开发自己的Composer包时找出正确的开发工作流程。我了解如何创建composer.json
并获取Packagist上的包。那不是问题。
假设我有一个简单的PHP类,我添加到Packagist。当我准备好对其进行更改(错误修复,新功能等)时,我该怎么办?
我是否只是composer install
现有的包到本地开发环境并直接在vendors
目录中对我的包进行更改?如果是这样,那个目录不是克隆的git repo,那么如何提交并推送我的更改呢?
或者,我是否克隆到repo到随机本地目录,然后composer install
使用VCS
和指向我克隆的git repo的自定义本地存储库到开发环境?如果是这样,我假设我在存储库中而不是在本地vendors
目录中进行更改。那么如何让我的开发环境保持更新?每次点击保存在我的包裹中的文件时,我是否真的必须composer update
?
此外,如果Composer看到软件包的版本号发生了变化,它只会进行更新,因此我还必须手动编辑我的软件包composer.json
并搞乱版本控制以获得开发环境要更新。每次我点击保存都会发生这种情况。
似乎工作流程对我来说应该更加明显。我在这里错过了什么?在我的本地开发环境中使用Composer以便正确加载其他依赖项非常重要,我显然希望我的包保留在克隆的git存储库中,以便我可以推送更改。
P.S。 - 假设我的包是非框架特定的。不是特定于Laravel或Symfony等。只是一个通用的PHP包。
答案 0 :(得分:0)
显而易见的答案是:
您从版本控制系统中查看该软件包,添加所需的错误修正或功能,提交结果并标记新版本。
为获得最佳效果,这是孤立完成的。不要假设该软件包周围存在可用的代码基础结构。如果您想测试您的软件包是否提供了您想要的功能,并且无法在更大的应用程序中测试软件包,剩下的就是:为此编写自动化测试。或者经历令人不快的编码,提交,标记,更新,测试,仍然破碎...更多编码...