我正在考虑从Code Igniter切换到Laravel。
我们使用自定义管理面板部署了大量网站。
这是设置为Code Igniter的两个安装, 你基本上已经(简化了,我们实际上在主站点和管理面板上使用了HMVC,但这得到了重点)
index.php
assets
system
application
config
controllers
models
views
admin
index.php
assets
application
config
controllers
models
views
管理员安装设置为通过include从主站点加载配置文件(例如database.php
)。
主站点的所有模型都使用管理面板中的模型通过include然后扩展它们,使我们只能在主站点中拥有特定于主站点的功能。
这对我们来说效果很好,但是现在我们正在转向Laravel,我们想知道是否有更好的方法,我们使用管理面板管理几个“模块”,如博客,购物车,物业经理,这些都是投入。
基本上我们希望能够:
admin
/ main
/ shared
所以捆绑包是自包含的。实现这一目标的最佳方法是什么?在laravel?
答案 0 :(得分:2)
我也是从CI切换到Laravel,发现基本的管理面板在Laravel中存在,但在生成CRUD时处理数据不是一个合适的解决方案
检查LaraAdmin是一个开源Laravel管理面板/ CMS,可用作Laravel的管理后端,数据管理工具或CRM样板,具有CRUD生成,模块管理器,媒体,菜单,备份等功能。
答案 1 :(得分:1)
您可能已经考虑过这一点,但我认为最好使用管理包,因为捆绑包都是核心系统的一部分。它对SoC和简单(易用性)都有好处。
然后管理面板可以找到所有捆绑包(当然除了它自己)以读取和写入配置条目,例如博客包的配置条目。
另一种方法是将管理面板放入主应用程序,方法是将特定命令路由到各个管理控制器(不要忘记可以将控制器放入子文件夹)。例如,您可以使用routes.php
,admin/pages/edit/152
路由到pages.php
中的application/controllers/admin/
控制器。您甚至可以使用此方法管理各种捆绑/管理单元,方法是扫描捆绑目录,如前所述。
答案 2 :(得分:0)
有没有办法可以更改Apache配置,因此每个站点都是Laravel上的一个目录的虚拟主机?这样每个站点都是自己的“html”目录,你不需要在Laravel中改变任何东西; index.php中的行将为您完成所有繁重的任务:
require '../paths.php';
这假设您的所有网站都在同一台计算机或群集上运行,因此您的系统将如下所示
assets
system
application
config
controllers
admin
site1
site2
models
admin
site1
site2
views
admin
site1
site2
html_site1
html_site2
但是,如果您只想将管理面板作为自己的应用程序,则可以将html的内容复制到admin目录中,更改该目录的mod_rewrite或.htaccess然后更改
require '../paths.php';
到
require 'path/to/admin/paths.php';
它将使用完全不同的laravel应用程序。
答案 3 :(得分:0)
您可以使用Laravella(CMS,CRUD包用于laravel)
https://github.com/laravella/laravella/releases
无论您是否使用Laravella,都要为每个站点创建一个覆盖主站点类的包。这样,您就可以将每个站点保存在自己的源代码控制存储库中。