一款基于 Laravel5.4 和 ACEAdmin 的后台系统

About RufoAdmin

为什么我要做这个后台系统?我太闲?当然不是,提高生产力!这是一个基于laravel5.4的管理后台,页面采用ACEAdmin,
已经内置了RBAC权限管理,多语言问卷,日志管理等等功能,更多功能等你发现。有些细节可能没有注意,所以可能会有bug!
github传送门

How to use

  • composer install
  • cp .env.bak .env
  • 运行rufoadmin.sql
  • happy enjoy!

    特别提醒

    千万不要忘记STAR,START,STAR ! ! !

  • 建议使用PHP7环境,mysql使用5.6,不开严格模式,group by在严格模式下不能兼容。
  • 临时测试地址:http://www.rufo.site/admin/login
  • 超管账号:123456@qq.com 密码:123456 请不要随便操作菜单
  • 没什么权限的用户:123@qq.com 密码:123456 请不要随便操作菜单

    一些特别的说明

    1. 我是怎么实现的权限控制的呢?
      我主要实现了角色-用户-权限的机制,如果用户没用权限这不能显示对应的菜单,
      并且不能访问对应的URL,
      后台有一个特别的权限是浏览后台,记忆啥名忘记了。
    2. 多语言问卷是怎么回事呢?
      因为在以前工作中老用到问卷模块就顺手加了一个,只是实现了一个后台的功能,
      前台需要自己实现,内置3中语言中日英。问题类型单选,多选,问答题。
    3. 插件机制,如何实现插件机制?
      作者开发前期有一个愚昧的想法,把每个模块写在一个单独的包里,通过composer自动加载
      但是这样扩展性依然不是很高,并且对用户友好,作者开发的
      的admin后台模块就是在一个包里,基本所以代码都在一个包里,这对别人维护来说有点
      捉襟见肘。最终想起了wordpress的即插即用的插件机制。
      如何实现插件机制呢?我前期只能模仿wordpress来开发,wordpress的钩子函数是插件的核心,
      而laravel却没有对应的功能,作为替代方案我觉得可以用事件来代替。
      最终实现了简单的插件功能,插件开启,关闭,删除都会触发对应的插件,插件开启时其代码
      也会被加载!

开发一个简单的插件

特别的,我规定插件放在plugins目录,每个插件目录下面有一个package.json文件配置插件的信息。

  • 目录结构如下图所示:

  • 目录结构

    注意:实际控制器的命名空间应该和package.json文件里面的命名空间相对应。当开启
    一个插件时会执行PluginWasEnabled.php的代码,其他类似
  • 逼者写了2个方法来添加和删除菜单,源码位于packages/admin/src/Admin.php

    //add_menu($title, $url, $parent_menu_id=0,$is_create_permission = false,$permission_name='')
    Admin::add_menu('编辑env文件', 'system/env/index',7);
    Admin::delete_menu('编辑env文件');
  • 对于插件中有有资源文件的情况,需要执行以下代码来拷贝资源到public目录

    
    $file = new FileUtil();
    $file->copyDir(plugin_address('edit-env/asset'),'vendor/plugins/edit-env',true);
  • 插件的路由对应插件的routes.php,views视图文件对应插件的views目录

  • 其他:略,以后补充

大概什么样子

  • 目录结构
  • 目录结构
  • 目录结构
  • 目录结构
  • 目录结构

关于我

不会JAVA的PHPer不是一个好的php程序员!

后台开发说明

  1. 开发流程:添加权限(权限标识和url一致,例如:admin/permission/index)->添加url->添加菜单(绑定权限)->修改逻辑.
  2. 权限名字应用菜单url相同,菜单的(菜单active_url)是激活的样式

后期计划

  1. 添加内容管理功能,例如文章管理
  2. 添加用户权限组功能
  3. 商城。。。
  4. star是开源的动力

    License

rufoadmin is open-sourced software licensed under the MIT license.

当它本可进取时,却故作谦卑; 在困难和容易之间,它选择了容易; 自由软弱,却把它认为是生命的坚韧; 侧身于生活的污泥中,虽不甘心,却又畏首畏尾。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
leo

ACE 属于收费模板,请不要放在开源项目中。

6年前 评论

看了下 你这个不叫RBAC啊. 本人不才 也用ACE(同样被管理员警告) 造了一个laravel后台管理的轮子, 你可以过来看看 交流.

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!