首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel 5项目结构(插件系统)

Laravel 5项目结构(插件系统)
EN

Stack Overflow用户
提问于 2015-02-10 12:37:23
回答 1查看 4.2K关注 0票数 10

我正在尝试开发我的第一个Laravel (5)应用程序,可以通过插件进行扩展。我已经读了很多关于插件架构的文章,但是我正在挣扎的是在Laravel组织这样一个项目的最好的或者更好的方法。我非常感谢这里的任何帮助和建议,因为我不想走上错误的道路。

下面是我对构建和实现这一点的想法:

代码语言:javascript
复制
/ Plugins
    - PluginManager.php

    / Contracts
        - PluginInterface.php

    / Plugins

        / ExamplePlugin1
            - ExamplePlugin1.php

        / ExamplePlugin2
            - ExamplePlugin2.php

问题1:位于何处是根目录/Plugins的最佳位置?直接在app/ root文件夹中还是像app/Http之类的地方?

在应用程序启动时,我希望PluginManager类扫描Plugins/ plugins /子目录,因为所有已安装的插件都在那里。此时,PluginManager将创建这些插件类的反射实例,并将它们存储在数组中,以便以后可以遍历它们,如果它们存在,则调用它们的方法。

问题2:,因为我希望PluginMananger对所有请求都可用,我应该为此使用服务提供者和外观吗?

问题3:这种方法有效吗?或者有人能提供一个替代的解决方案?

所有这些插件都将实现PluginInterface接口,以便PluginManager类可以对所有插件调用init()函数。

耽误您时间,实在对不起

EN

回答 1

Stack Overflow用户

发布于 2015-05-22 10:07:22

问题1

最简单的方法是创建一个目录"app/ plugins“(只有当您的插件特定于Laravel核心应用程序或路由"app/Http/Plugins”:“将控制台和Http目录视为为应用程序的”核心“提供API时,才能使用它)。”

问题2

是的!@见:使用延迟提供程序的性能问题

问题3

您是否可以在应用程序根目录中创建一种plugins.lock,以避免在每个请求上扫描"app/Plugins“?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28431885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档