laravel-admin
是一个可以快速帮你构建后台管理的工具,它提供的页面组件和表单元素等功能,能帮助你使用很少的代码就实现功能完善的后台管理功能。(QQ群: 391528810)
Demo || 阅读文档
基于laravel框架实现前后端分离的单页面应用架构
使用相关技术:vue+bootstrap+phpswoole+docker+laravel
git clone https://gitee.com/laravel-admin/laraveladmin.git
cd laraveladmin
cp .env.example .env
vi .env
sh ./docker/install.sh
设置当前代码目录的上级目录跟"~"目录必须包含 dokcer的File Sharing列表中的目录中
php容器环境中安装composer相关扩展包及项目代码初始化
如果安装"laravel/envoy"过程中失败请切换下全局镜像源,进行尝试
- 腾讯云composer镜像源:https://mirrors.cloud.tencent.com/composer
- 阿里云composer镜像源:https://mirrors.aliyun.com/composer
- 华为云composer镜像源:https://mirrors.huaweicloud.com/repository/php
- laravel(中国)composer镜像源:https://packagist.laravel-china.org
- phpcomposer:https://packagist.phpcomposer.com
docker-compose run --rm php composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer #设置镜像源
docker-compose run --rm php composer global require laravel/envoy -vvv #该命令出错了请切换镜像源
docker-compose run --rm php composer global dump-autoload
docker-compose run --rm node cnpm install #前端编译扩展包安装
docker-compose run --rm node npm run prod #编译前端页面js
docker-compose run --rm php envoy run init --branch=master #项目初始化
docker-compose up -d #启动服务
系统已安装有nginx服务器导致端口(80,443)冲突依据如下进行配置
vim docker-compose.yml
- 设置本机已有的nginx代理配置
server
{
listen 80;
server_name local.laraveladmin.cn;
location / {
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header Scheme $scheme;
proxy_set_header Server-Protocol $server_protocol;
proxy_set_header Server-Name $server_name;
proxy_set_header Server-Addr $server_addr;
proxy_set_header Server-Port $server_port;
proxy_pass http://host.docker.internal:81;
}
}
本地开发环境绑定hosts后就可以进行访问了
127.0.0.1 local.laraveladmin.cn
docker-compose run --rm node npm run watch
docker-compose exec php envoy run update --branch=master
用户名:demo_admin
密码:admin123456
这些基础功能可以方便快速让实现我们的业务
内置基于权限系统,已将路由、菜单进行绑定。
后台为web及移动端提供统一,通用,简洁的纯json数据接口,实现前后端分离
后台用户,前端用户,注册登录忘记密码及相关权限管理
记录相关请求日志,方便操作记录跟踪.记录包括提交的参数及响应结果
开发中可以使用Navicat可视化生成数据表,然后通过命令直接生成代码(控制器,模型,迁移文件,列表页面视图,编辑页面视图)
提供基于laravel的docker线上环境,及开发环境(php mysql nginx redis phpswoole).启动时已自动配置好并启动了队列,定时任务,进程守护程序
基于前后端分离的思想搭建单页面应用,后端提供统一接口,前端基于VUE搭建
基于 Laravel Envoy 提供远程部署解决方案,提供了一套干净的、最简化的语法。使用 Blade 风格语法,你可以轻松为开发设置任务。
支持一个账号关联多个三方用户登录,并统一转换成统一的数据格式及解码相应数据项值
支持多国语言包全场景自动切换,支持开发中指定主语言包通过脚本调用翻译API(百度翻译,有道翻译,谷歌翻译)直接辅助翻译其它语言
数据表批量导入导出,支持导入导出过程中暂停取消操作,支持导入数据自动验证数据并将错误数据excel返回,支持导入导出语言包转换
支持菜单内容开发环境维护,支持拖拽移位设置菜单位置
支持主题:夜间护眼模式,蓝色主题,白色主题,紫色主题,绿色主题,红色主题,黄色主题
系统日志文件便捷查看页面,方便快速处理系统出现的异常问题
可通过脚本自动辅助生成API接口文档,支持参数说明,支持响应说明,调试接口等功能
统一的前后端表单验证规则,可自动辅助生成验证相关代码,也支持自定义验证规则扩展
Laravel 是 Taylor Otwell 开发的一款基于 PHP 语言的 Web 开源框架,采用了 MVC 的架构模式
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。
Git 和其它版本控制系统(包括 Subversion 和近似工具)的主要差别在于 Git 对待数据的方式。
Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用
Bootstrap 是全球最受欢迎的前端开源工具库,它支持 Sass 变量和 mixin、响应式栅格系统、自带大量组件和众多强大的 JavaScript 插件。
NPM(node package manager)是 Node.js 世界的包管理器。NPM 可以让 JavaScript 开发者在共享代码、复用代码以及更新共享的代码上更加方便。
Laravel Envoy 为定义运行在远程主机上的通用任务提供了一套干净的、最简化的语法。使用 Blade 风格语法,你可以轻松为开发设置任务,Artisan命令,以及更多。
Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你声明项目所依赖的代码库,它会在你的项目中为你安装他们。
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务
即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
larave-mix是位于webpack顶层的一个简洁的配置层,在 80% 的情况下使用 laravel mix 会使操作变的非常简单
Swoole 使 PHP 开发人员可以编写高性能高并发的 TCP、UDP、Unix Socket、HTTP、 WebSocket 等服务,让 PHP 不再局限于 Web 领域。
Vue I18n 是 Vue.js 的国际化插件
Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库
一个基于 JavaScript 的开源可视化图表库
类似于Laravel Collection的前端集合操作库
Animate.css 是CSS3的动画库
开源在线 Markdown 编辑器,已经基于vue进行封装
可快速搜索选项的select组件库,已经转换成VUE组件
好用的前端拖拽组件库,已封装成VUE组件
基于vue的表单验证库,设计理念类似laravel的验证
好用的vue复制粘贴板组件库vue-clipboard2
每一个 Vuex 应用的核心就是 store(仓库)。“store”基本上就是一个容器,它包含着你的应用中大部分的状态 (state)
Vue Router 是 Vue.js (opens new window)官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌
项目开发过程中遇到展示json的场景,且json文件体积过大,小则几百kb,也尝试了已经开源的部分组件,但由于节点过多,渲染速度过慢,无法使用,已有项目技术选型为vue。
zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。
新一代身份验证解决方案 整合三大运营商网关取号服务,准确识别用户手机号码,实现App 登录注册等环节一键通过,帮助企业优化验证流程,助力运营拉新、留存、促活。