【问题标题】:Workflow for developing Laravel Packages开发 Laravel 包的工作流程
【发布时间】:2017-07-03 05:14:59
【问题描述】:

我正在开发我的第一个 Laravel 包,我意识到我的工作流程包含更多用于发布每个修改的步骤。

这是我的工作流程:

  1. 我创建了一个全新的 Laravel 5.4 安装。在里面,我创建了一个包/作者/名称/src,我在其中编写了我的插件。
  2. 我运行我的测试
  3. 一旦我进行了更改并想要发布它: a.我把它推送给我的 Git 代表 b.我用版本号标记它 c.在我的主项目中,我运行 composer update
  4. 我检查了集成没有任何问题

对于我想在我的主项目中看到的每一个小变化,这都是相当多的变化......

有没有办法不发布任何单个更改,只在本地进行?

【问题讨论】:

  • 接下来,我希望看到一个好的工作流程。

标签: php git laravel composer-php


【解决方案1】:

是的,您可以在本地开发一个包并在不发布的情况下使用它。工作流程是:在 Laravel 项目之外创建一个包目录,然后在其中创建包目录,例如目录结构应如下所示:

- my-laravel-project
- packages
- - my-package-1
- - - composer.json
- - my-package-2
- - - composer.json

然后,在您的Laravel 项目的composer.json 文件中,添加如下所示的repositories 部分,并在每个本地包的require 部分中添加一个条目,例如:

{
    "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 部分只是像往常一样需要依赖项。您可以在Composer's website 上查看更多信息。

【讨论】:

  • 但是我不应该需要 2 composer.json 吗? 1 个用于开发,1 个用于主控?
  • composer.json 将始终为每个包一个。
  • 但是对于我的 prod 应用程序,我应该想要“url”:“url-to-git.git”},而不是本地包的路径吗?这对开发人员来说可以,但对生产人员来说不行,我错了吗?
  • 完成本地开发后,发布它,其余过程相同。您可以删除本地存储库依赖项并切换到 composer.json 中的 git 存储库。
  • 我实现了它,但它没有获得最新的本地更改 :( 它正在获得最后一个版本化的提交,(0.8.6)??? 另外,如果我尝试使用 vcs,它也会这样做,求版本,正常吗???
猜你喜欢
  • 2015-12-16
  • 1970-01-01
  • 2019-05-23
  • 2011-09-23
  • 2019-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多