Php web应用程序的管理面板,如何使其他模块连接并扩展功能

Php web应用程序的管理面板,如何使其他模块连接并扩展功能,php,laravel,Php,Laravel,我正在构建一个web应用程序,其中有一个管理面板。我使用Laravel构建了这个应用程序。我还使用“含咖啡因的模块”软件包扩展了Laravel,使模块具有自己的控制器、视图、模型等成为可能 现在。我希望它的核心和基础都是“管理”模块。管理模块应该是应用程序的管理面板 现在来谈谈我的问题。例如,我很难弄清楚如何构造应用程序,以便其他模块可以连接到管理菜单。以及如何使其他模块的页面位于管理面板中,管理面板实际上可以处理正在运行的代码。其他模块基本上是如何与管理面板对话的 例如,博客模块应该添加对博客

我正在构建一个web应用程序,其中有一个管理面板。我使用Laravel构建了这个应用程序。我还使用“含咖啡因的模块”软件包扩展了Laravel,使模块具有自己的控制器、视图、模型等成为可能

现在。我希望它的核心和基础都是“管理”模块。管理模块应该是应用程序的管理面板

现在来谈谈我的问题。例如,我很难弄清楚如何构造应用程序,以便其他模块可以连接到管理菜单。以及如何使其他模块的页面位于管理面板中,管理面板实际上可以处理正在运行的代码。其他模块基本上是如何与管理面板对话的


例如,博客模块应该添加对博客文章的添加/编辑/删除管理。但是我希望所有的逻辑都能简单地连接到管理模块中,这样博客模块(以及所有其他模块)就可以包含它们自己的管理逻辑。有点类似于WordPress或Magento在使用插件扩展CMS时的工作方式

您可以创建一个管理中间件(用于路由),然后以任何方式编写您想要的代码。只需将您需要的URL(路由)放在管理中间件内部的管理面板上

AdminMiddle

namespace-App\Http\Middleware;
使用Illumb\Support\Facades\Auth;
使用闭包;
中产阶级
{
/**
*处理传入的请求。
*
*@param\light\Http\Request$Request
*@param\Closure$next
*@返回混合
*/
公共函数句柄($request,Closure$next)
{
如果(Auth::user()->account->role!=“超级管理员”){
返回重定向('/access denied');
}
返回$next($request);
}
}

现在将这个中间件放在kernel.php中

请发布您正在使用的laravel版本


将管理中间件放在管理面板的所有路由上,对于正常用户路由,按原样离开(无事可做)

您好,谢谢您的回答。我正在使用最新的Laravel 5.3。你的意思是使用中间件,然后每个模块将定义自己的管理路由等?是的,你想要相同的页面,用户可以登录并根据权限访问模块,对吗?如果是,那么只需在DB上动态创建模块枚举,并检查路由上的模块,如果用户拥有该模块,则用户将获得该模块。类似地,您可以检查您的视图是否允许访问。但是如果您只想分离普通用户和管理员用户及其模块,那么只需创建一个中间件(仅一个)。