Php 开发Laravel软件包的工作流
我正在开发我的第一个Laravel软件包,我意识到我的工作流程包含了更多发布每次修改的步骤 以下是我的工作流程:Php 开发Laravel软件包的工作流,php,git,laravel,composer-php,Php,Git,Laravel,Composer Php,我正在开发我的第一个Laravel软件包,我意识到我的工作流程包含了更多发布每次修改的步骤 以下是我的工作流程: 我创建了一个全新的Laravel 5.4安装。在内部,我创建了一个包/author/name/src,在其中我编写了我的插件 我运行我的测试 一旦我做出更改并希望发布更改: a、 我把它推给我的Git代表 b、 我用版本号标记它 c、 在我的主项目中,我运行composer update 我检查集成是否没有损坏 这是相当多的变化,每一个小变化,我想看到在我的主要项目 有没有办法不发布
有没有办法不发布任何单个更改,只发布本地更改?是的,您可以在本地开发一个包并使用它,而无需发布它。工作流程是:在
Laravel
项目外部创建一个包目录,然后在其中创建包目录,例如,目录结构应如下所示:
- my-laravel-project
- packages
- - my-package-1
- - - composer.json
- - my-package-2
- - - composer.json
然后,在Laravel
项目的composer.json
文件中,添加如下所示的存储库
部分,并为每个本地包在要求
部分添加一个条目,例如:
{
"repositories": [
{
"type": "path",
"url": "../packages/my-package-1"
},
{
"type": "path",
"url": "../packages/my-package-2"
}
],
"require": {
"my/package-1": "*",
"my/package-2": "*"
}
}
在本例中,我在
packages
目录中有两个不同的包,并且在Laravel
项目中添加了这两个包。repositories
部分描述了每个包的包类型和路径/url,因此composer可以在本地找到它们,require
部分只是像往常一样需要依赖项。您可以查看更多信息。下面,我希望看到一个好的工作流。但我不需要2 composer.json吗?1代表dev,1代表master?每个包都会有一个composer.json
。但是对于我的prod应用程序,我应该使用“url”:“}而不是本地包的路径吗?这对dev来说是可以的,但对prod来说不是,我错了吗?一旦您完成了本地开发,然后发布它,其余的过程都是一样的。您可以删除本地存储库依赖项并在composer.json
中切换到git repo。我实现了它,但它没有得到最新的本地更改:(它得到了最后一个版本连接的提交,(0.8.6)??此外,如果我尝试使用vcs,它也会这样做,寻找版本,这正常吗???