Laravel的管理员小组?

时间:2012-12-21 02:36:06

标签: php laravel

我正在考虑从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?

4 个答案:

答案 0 :(得分:2)

我也是从CI切换到Laravel,发现基本的管理面板在Laravel中存在,但在生成CRUD时处理数据不是一个合适的解决方案

检查LaraAdmin是一个开源Laravel管理面板/ CMS,可用作Laravel的管理后端,数据管理工具或CRM样板,具有CRUD生成,模块管理器,媒体,菜单,备份等功能。

文档:http://laraadmin.com/docs/1.0

源代码:https://github.com/dwijitsolutions/laraadmin

答案 1 :(得分:1)

您可能已经考虑过这一点,但我认为最好使用管理包,因为捆绑包都是核心系统的一部分。它对SoC和简单(易用性)都有好处。

然后管理面板可以找到所有捆绑包(当然除了它自己)以读取和写入配置条目,例如博客包的配置条目。

另一种方法是将管理面板放入主应用程序,方法是将特定命令路由到各个管理控制器(不要忘记可以将控制器放入子文件夹)。例如,您可以使用routes.phpadmin/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,都要为每个站点创建一个覆盖主站点类的包。这样,您就可以将每个站点保存在自己的源代码控制存储库中。