2

如果我没记错的话,Laravel 的 Bundles 应该类似于 Codeigniter 的 Hierarchical MVC triads。我有一个内置 CI 的项目,我想将它迁移到 Laravel,所以我正在尝试匹配一些功能。在 CI 中,只需安装 HMVC 扩展,创建适当的文件夹结构,您就可以访问新创建的控制器。但是,在 Laravel 中,创建捆绑包后,您需要application/bundles.php通过添加来注册它

return array('newbundle'),

有没有办法让我自动注册我的包目录中存在的所有(有效)包?就像这样,无需显式注册每个新捆绑包。换句话说,我想让bundle更加动态,这样我就可以复制一个bundle,将它粘贴到另一个项目中并立即开始使用它。

作为一个附带问题,是否有人知道使用 Laravel 的捆绑包实现 Wordpress 对其插件所做的“正确”方式:显示安装在捆绑包目录中的所有捆绑包的列表,但仅激活(注册)选定的那些?

4

1 回答 1

5

我不明白为什么没有人给你真正的答案。到目前为止,您可能已经知道如何实现自动加载包,如果没有,请看下面的包。

http://bundles.laravel.com/bundle/autobundle

对于第二个问题,您需要开发一个自定义应用程序/捆绑包来管理它,就像 wordpress 使用插件一样。我只能给你想法,开发部分是你的。

保留一个数据库表(示例包)并有一个自定义包或路由/控制器来管理添加/删除包,包括将新包上传为 zip 并将其解压缩到包文件夹,同时在 db 表中注册包详细信息。每当您想激活插件时,将 activate 字段设置为 true 并在应用程序目录的 main start.php 中使用自定义捆绑启动方法,该方法可以是获取已激活捆绑包的所有名称并将其加载到的函数注册表。如果您想使用这种方法,您可以避免使用自动捆绑,因为它实际上会加载捆绑目录中的所有内容。

于 2012-10-20T14:40:50.463 回答