1

我正在考虑从 Code Igniter 切换到 Laravel。

我们使用自定义管理面板部署了大量站点。

这是安装为 Code Igniter 的两个安装,

你基本上有(简化,我们实际上在主站点和管理面板上都使用了 HMVC,但这说明了重点)

index.php
assets
system
application
  config
  controllers
  models
  views    
admin
  index.php
  assets
  application 
    config 
    controllers
    models
    views     

并且管理员安装设置为database.php通过包含从主站点加载配置文件(例如)。

我们所有的主站点模型都使用管理面板中的模型,包括然后扩展它们,使我们能够仅在主站点中拥有特定于主站点的功能。

这对我们来说效果很好,但是现在我们正在切换到 Laravel,我们想知道是否有更好的方法来做到这一点,我们使用管理面板来管理几个“模块”,例如博客、购物车、物业经理、这些都是插件。

本质上,我们希望能够:

  • 保持主站点与管理面板的分离清晰,以便我们可以在我们的任何站点上使用管理面板。
  • 仍然可以放入捆绑包(例如博客捆绑包)。
  • 理想情况下,我们希望在管理面板和主站点之间有一个共享的 bundles 文件夹,其中包含三个文件夹。admin//所以一个bundle是自包含的mainshared

在 laravel 中实现这一点的最佳方法是什么?

4

4 回答 4

2

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

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

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

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

于 2016-10-24T13:20:31.380 回答
1

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

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

另一种方法是将管理面板放置在您的主应用程序中,通过将特定命令路由到各种管理控制器(不要忘记您可以将控制器放入子文件夹)。例如,您可以使用routes.php,将 路由admin/pages/edit/152到 中的pages.php控制器application/controllers/admin/。如前所述,您甚至可以使用这种方法通过扫描 bundles 目录来管理您的各种 bundles/snap-ins。

于 2012-12-21T05:35:43.990 回答
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 的内容复制到管理目录中,更改该目录的 mod_rewrite 或 .htaccess 然后更改

require '../paths.php';

require 'path/to/admin/paths.php';

它将使用完全不同的 laravel 应用程序。

于 2012-12-27T23:01:16.467 回答
0

你可以使用 Laravella(一个 CMS,laravel 的 CRUD 包)

https://github.com/laravella/laravella/releases

无论你是否使用 Laravella,都要为每个站点创建一个包来覆盖主站点的类。这样您就可以将每个站点保留在其自己的源代码控制存储库中。

于 2014-02-20T13:06:14.060 回答