Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 开发Laravel软件包的工作流_Php_Git_Laravel_Composer Php - Fatal编程技术网

Php 开发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软件包,我意识到我的工作流程包含了更多发布每次修改的步骤

以下是我的工作流程:

  • 我创建了一个全新的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,它也会这样做,寻找版本,这正常吗???