Laravel与Codeigniter - 在Laravel中获取CI的HMVC功能



如果我没有弄错的话,Laravel的Bundles应该类似于Codeigner的分层MVC triad。我有一个在CI中构建的项目,我想将其迁移到Laravel,所以我正在尝试匹配一些功能。在CI中,只需要安装HMVC扩展,创建一个合适的文件夹结构,就可以访问新创建的控制器。不过,在Laravel中,创建捆绑包后,需要通过添加将其注册到application/bundles.php

return array('newbundle'),

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

作为一个附带问题,有人知道用Laravel的捆绑包实现Wordpress插件的"正确"方式吗?显示捆绑包目录中安装的所有捆绑包的列表,但只激活(注册)选定的捆绑包?

我不明白为什么没有人给你真正的答案。到目前为止,您可能已经找到了如何在旅途中自动加载捆绑包的方法,如果没有,请查看下面的捆绑包。

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

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

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

最新更新