如何为我的Laravel项目创建“附加”程序包

时间:2019-03-05 17:26:48

标签: laravel package

我有一个Laravel项目,我已经建立了一段时间。我想添加的功能不是主应用程序的一部分,但可以作为外接程序包添加,但是我不知道执行此操作的最佳方法。这些软件包将具有自己的路线,视图,模型和控制器。

我已经看过https://laravel.com/docs/5.7/packages和其他网站来创建Laravel软件包,但是最大的问题是,使用此设置,该软件包是通过composer.json加载的。每当我更新主应用程序并向主项目添加新的依赖项时,它将使用用户已注册的任何加载项覆盖用户composer.json。

有人可以指出正确的方向吗?

1 个答案:

答案 0 :(得分:2)

您可能有两种方法来创建自己的插件

  1. 使用此软件包创建包含您自己的内容的模块- https://github.com/nWidart/laravel-modules

  2. 创建自己的程序包- https://wisdmlabs.com/blog/create-package-laravel/

您对开发软件包和丢失更改的疑问是不正确的。请阅读上述指南,并进一步研究如何在Laravel中开发软件包。

或者,您可以选择第一个选项,该选项更容易使用,也不会造成混乱,您可以在单独的文件夹中创建自己的模块并在应用程序中使用它。您也可以将其作为单独的模块共享。

  

,但是最大的问题是,通过这种设置,软件包是通过以下方式加载的   composer.json。每当我更新主应用程序并添加新的   对主项目的依赖,它将覆盖用户   composer.json及其已注册的任何加载项。

这不是事实。您对composer.json的整体用法和功能感到困惑。

创建自己的包/模块时,您将拥有自己的composer.json。如果添加新的依赖项或更新应用程序,则不会丢失更改。

每次添加新的依赖项或更新composer时,更改都会在composer.json上更新,而不会清除现有的软件包信息。您不必担心丢失更改。