Alpaca-Spa.js + Laravel 实现后台管理系统(前后分离开发)

时间:2022-05-20 19:57:48

Alpaca-Spa-Laravel 后台管理

简介

Alpaca-Spa-Laravel 简介

  Alpaca-Spa-Laravel 是用Alpaca-Spa + Laravel 前后端分离开发的一款后台管理系统的DEMO. 主要功能模块有登录、定时任务管理、用户管理、权限管理、个人信息管理等。在实际开发中可以根据具体的需求添加新的功能。
  开发模式为前后分离开发,Alpaca-Spa负责实现前端功能,包括组织页面结构,渲染页面数据、样式,交互逻辑等,Laravel负责提供后台功能,访问数据库,处理业务逻辑,提供数据接口给前端,

演示地址

Alpaca-Spa : http://www.tkc8.com

Alpaca-Spa-Laravel : http://full.tkc8.com

代码 : http://git.oschina.net/cc-sponge/Alpaca-Spa-Laravel

登录账号是一个测试帐号,权限只有浏览功能,没有编辑等修改功能。

目录结构

-app
  -Common
  -Console
  -Models
  -Modules
  ExceptionHandler.php
  RouteProvider.php
-bootstrap
-builder
-config
-crontab
-public
  -admin
index.php
-storage
-vendor
.env.development
composer.json
composer.lock
1.app/Common用来放置一些公共的类、函数等

2.app/Models用来放置与数据库对应的实体类文件

3.app/Modules存放模块相关信息,里面包含控制器,业务逻辑等,

本示例中只有一个Manage模块,用来实现后台管理的相关功能

4.config存放配置文件

5.builder 中是一个自动生成代码的工具,这里先不做详细介绍

6.bootstrap 是Laravel框架本身自带的一个目录,主要功能是提供应用初始化的一些相关功能

7.storage 中存放应用运行时候的文件,例如logcache

8.vendor 中存放通过composer加载的相关插件

9.public 入口目录,配置服务器时,应该将网站根目录设置为public

10.public\index,php 后台服务Laravel框架的入口文件

11.public\admin 后台服务Laravel框架的入口文件

路由功能

1 app/RouteProvider.php中可以配置整个系统的路由组织结构

2 app/Modules/Manage/Route.php配置Manage模块的相关路由,推荐每一个模块拥有自己的一个路由配置文件

配置文件

1 配置文件存放在config目录中

2 处理与系统环境相关的配置。

如果设置了环境变量MOD_ENV = DEVELOPMENT,系统会加载.env.development配置文件
如果设置了环境变量MOD_ENV = PRODUCTION,系统会加载.env.production配置文件
如果设置了环境变量MOD_ENV = TEST,系统会加载.env.test配置文件
否则会默认加载.envt配置文件

权限控制

1 实现权限功能,需要在数据库中存在5张表:

用户表、角色表、权限表、用户角色关系表、角色权限关系表。

这样建立用户-角色-权限的对应关系。

2 登录权限控制

1)如果当前控制器下的某一个动作不需要登录权限:

protected function withoutLoginActions()
{

// 以下Action不需要登录权限
return ['action1','action2'];
}
这样 action1 与 action2 就不需要登录也可以访问

2)如果当前控制器下的所有动作都不需要登录权限:

protected function withoutLoginActions()
{

this->isNoLogin =true;
}
这样当前控制器下的所有动作都不需要登录权限就可以直接访问

3 角色权限控制

1)如果当前控制器下的某一个动作不需要角色权限控制:

protected function withoutAuthActions()
{

// 以下Action不需要登录权限
return ['action1','action2'];
}
这样 action1 与 action2 不需要角色权限也可以访问

2)如果当前控制器下的所有动作都不需要登录权限:

protected function withoutAuthActions()
{

this->isNoAuth =true;
}
这样当前控制器下的所有动作都不需要登录权限就可以直接访问

3)重写当前控制器下某一个动作的角色权限

protected function withoutAuthActions()
{

return [
'actionName'=>function($result){
if($_GET['id'] == 1){
return true;
}
},
];
}

可以通过为action指定一个函数来自定义动作的角色权限控制功能,

函数有一个参数$result

如果$resulttrue表示系统默认的角色权限控制判断当前动作有权限访问,false为没有权限访问,

定时任务功能

    框架提供了php处理定时任务的方法,具体可以参见演示地址

Alpaca-Spa.js  + Laravel 实现后台管理系统(前后分离开发)

前端功能

    public\admin中存放前端代码,

public\admin\index.html是前端入口文件,

public\admin\main\controller存放前端main模块的控制器,

public\admin\main\view存放前端main模块的视图页面,

欢迎讨论

Alpaca-Spa.js  + Laravel 实现后台管理系统(前后分离开发)

作者: Sponge
邮箱: 1796512918@qq.com