Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔的管理小组?_Php_Laravel - Fatal编程技术网

Php 拉威尔的管理小组?

Php 拉威尔的管理小组?,php,laravel,Php,Laravel,我正在考虑从代码点火器切换到Laravel 我们使用自定义管理面板部署了大量站点 这是设置为两个安装的代码点火器 你基本上已经做到了(简化了,我们实际上在主站点和管理面板上都使用HMVC,但这让人明白了这一点) 管理员安装设置为通过includes从主站点加载配置文件(例如database.php) 我们的所有主站点模型都通过include使用管理面板中的模型,然后对其进行扩展,这样我们就可以只在主站点中拥有特定于主站点的功能 这对我们来说效果很好,但现在我们正在切换到Laravel。我们想知道

我正在考虑从代码点火器切换到Laravel

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

这是设置为两个安装的代码点火器

你基本上已经做到了(简化了,我们实际上在主站点和管理面板上都使用HMVC,但这让人明白了这一点)

管理员安装设置为通过includes从主站点加载配置文件(例如
database.php

我们的所有主站点模型都通过include使用管理面板中的模型,然后对其进行扩展,这样我们就可以只在主站点中拥有特定于主站点的功能

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

基本上,我们希望能够:

  • 保持主站点与管理面板的分离清晰,这样我们就可以在我们的任何站点上使用管理面板
  • 仍然能够放入捆绑包(例如博客捆绑包)
  • 理想情况下,我们希望在管理面板和主站点之间有一个包含三个文件夹的共享bundles文件夹<代码>管理/
    /
    共享
    因此捆绑包是自包含的

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

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

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


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

有没有办法更改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';

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

您可以使用Laravella(laravel的CMS、CRUD软件包)


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

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

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

文件:


源代码:

@Charles-为什么那些标签不相关?它是关于两个不同的框架-因此
框架
|它是关于一个管理面板,用于为多个站点供电,因此
多站点
,它是关于管理面板,因此
管理
标记不是关键字。“框架”和“管理”是噪音。它们基本上是无用的垃圾场。去看看他们的问题列表,你会发现列出的问题没有共同点。应该不鼓励使用它们。“multisite”没有其他问题,它是不必要地作为wordpress问题的一部分创建的。这是一个拉威尔的问题。公平的呼吁,然后,只是想一些澄清,为什么他们被删除,现在我知道不再使用它们。
require '../paths.php';
require 'path/to/admin/paths.php';