dps*_*dio 10 php plugins directory-structure laravel laravel-5
我正在尝试开发我的第一个可以通过插件扩展的Laravel(5)应用程序.我一直在阅读很多关于插件架构的内容,但我正在努力解决的问题是在Laravel中组织这样一个项目的最佳或首选方式.我非常感谢这里的任何帮助和建议,因为我不想走错路.
以下是我在思考如何构建和实现这个:
/ Plugins
- PluginManager.php
/ Contracts
- PluginInterface.php
/ Plugins
/ ExamplePlugin1
- ExamplePlugin1.php
/ ExamplePlugin2
- ExamplePlugin2.php
Run Code Online (Sandbox Code Playgroud)
问题1: 根/插件目录的最佳位置在哪里?直接在app/root文件夹或app/Http之类的地方?
在应用程序启动时,我希望PluginManager类扫描插件/插件/子目录,因为所有已安装的插件都将驻留在该目录中.此时,PluginManager将创建这些插件类的反射实例并将它们存储在一个数组中,以便以后可以循环它们并在它们存在时调用它们的方法.
问题2:由于我希望PluginMananger可用于所有请求,我是否应该使用服务提供商和Facade?
问题3:这种方法有效还是任何人都可以提供替代解决方案?
所有这些插件都将实现PluginInterface接口,以便PluginManager类可以调用所有插件上的init()函数.
谢谢你的时间
小智 1
问题1
最简单的方法是创建一个目录“app/Plugins”(“app/ Http /Plugins”,仅当您的插件特定于 Laravel 核心应用程序或路由@RTM时:“将控制台和 Http 目录视为提供进入应用程序“核心”的 API。”)。
问题2
是的!@see:使用延迟提供程序的性能问题
问题3
也许您可以在应用程序根目录中创建一种plugins.lock以避免在每个请求上扫描“app/Plugins”?
| 归档时间: |
|
| 查看次数: |
3726 次 |
| 最近记录: |