Rom*_*man 6 php git composer-php
我正在为专有软件开发一个自定义编写器安装程序,我不确定我应该如何测试和调试它.
Composer仅在指定为依赖项时加载插件,因此我创建了一个测试项目,将插件定义为依赖项,如下所示:
{
//...
"repositories": [
{
"type":"git",
"url":"/path/to/gitrepo"
}
],
"require":{
"myvendor/my-plugin":"dev-master"
}
}
Run Code Online (Sandbox Code Playgroud)
问题是作曲家只使用最新的提交版本,这意味着如果我想测试一些东西,我必须先提交它.这导致了许多"无用的"一行更改提交(比如"哦,我忘了那里的逗号"),我真的不想在我的git repo历史中拥有它.
我想必须有一个更好的方法,但我找不到一个.理想情况下,我将目录定义为存储库(这将是我的工作目录),但据我所知,没有像"目录"类型存储库.
小智 6
对于开发,最好将正在进行的工作作为path类型引用。在主应用程序中,repositories像这样设置一个包:
"repositories": [
{
"type": "path",
"version": "dev-master",
"url": "/home/user/log-viewer"
}
],
Run Code Online (Sandbox Code Playgroud)
然后需要你的插件
composer require louisitvn/log-viewer:dev-master
Run Code Online (Sandbox Code Playgroud)
他们在这里的关键是要求您的包为dev-master. 输出可能如下所示:
$ composer require louisitvn/log-viewer:dev-master
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing louisitvn/log-viewer (dev-master)
Symlinked from /home/user/log-viewer
Run Code Online (Sandbox Code Playgroud)
如您所见,Composervendor/为插件创建了一个符号链接,而不是克隆它,并且您始终处于工作目录中的最新更改之上。
您可以在本地简单地编辑供应商包的代码。以后composer要更新这个包的时候,会问你如何处理修改后的文件。在这种情况下,您只需选择s隐藏更改即可。另请参阅此 stackoverflow以阐明可用选项的含义。
更新包后,您的更改将重新应用。
有关示例对话框,请参见屏幕:
