合适的Composer包+Git开发工作流程


Proper Composer Package + Git development workflow

在开发自己的Composer包时,我正在努力找出合适的开发工作流程。我了解如何创建composer.json并在Packagist上获取包。这不是问题所在。

假设我有一个简单的PHP类,我添加到了Packagist中。当我准备好对它进行更改(bug修复、新功能等)时,我该怎么办?

我是否只是将现有的程序包composer install复制到本地开发环境中,并直接在vendors目录中对程序包进行更改?如果是这样,那么该目录不是克隆的git repo,那么我该如何提交和推送我的更改呢?

或者,我是克隆到随机本地目录中的repo,然后使用VCS和指向我克隆的git-reo的自定义本地存储库将composer install克隆到开发环境中?如果是这样,我假设我在存储库中进行更改,而不是在本地vendors目录中。那么我该如何让我的开发环境保持更新呢?每次在包中的文件中点击save时,我真的必须执行composer update吗?

此外,Composer只有在发现包的版本号发生更改时才会进行更新,因此我还必须手动编辑我的包composer.json,并处理版本控制,以便更新开发环境。每次我做出扑救时都会发生这种情况。

工作流程对我来说应该更明显。我缺少什么?重要的是,我在本地开发环境中使用Composer,以便正确加载其他依赖项,而且我显然希望我的包留在克隆的git存储库中,这样我就可以推动更改。

p.s.-假设我的包不是特定于框架的。不是特定于Laravel或Symfony等。只是一个通用的PHP包。

显而易见的答案是:

您可以从版本控制系统中签出该包,添加所需的错误修复或功能,提交结果并标记新版本。

为了获得最佳效果,这是单独进行的。不要假设该包周围有一个可用的代码基础结构。如果你想测试你的包是否提供了你想要的功能,而不能在更大的应用程序中测试包,剩下的就是:为此编写自动测试。或者经历编码、提交、标记、更新、测试等令人不快的循环。。。更多编码。。。