Laravel vs Codeigniter - 在Laravel中获得CI的HMVC功能

时间:2012-10-03 16:54:49

标签: codeigniter laravel bundle hmvc

如果我没有误会,Laravel的Bundles应该类似于Codeigniter的Hierarchical MVC triad。我有一个用CI构建的项目,我想将它迁移到Laravel,所以我试图匹配一些功能。在CI中,只需安装HMVC扩展,创建适当的文件夹结构,您就可以访问新创建的控制器了。但是在Laravel中,创建一个包后,需要通过添加

application/bundles.php中注册它
return array('newbundle'),

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

作为一个附带问题,有没有人知道使用Laravel捆绑软件实现WordPress插件的“正确”方式:显示捆绑包中安装的所有捆绑包的列表,但只激活(注册) )所选择的?

1 个答案:

答案 0 :(得分:5)

我不明白为什么没有人给你实际答案。到目前为止,你可能已经弄明白了如何在旅途中实现自动加载捆绑包,如果没有,请查看以下捆绑包。

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

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

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