基于 Laravel 5 构建的、支持模块化和多语言的 CMS —— AsgardCMS
1、简介
AsgardCMS 是基于 Laravel 5 构建的、支持模块化和多语言的CMS。
官网:https://asgardcms.com/
Github:https://github.com/AsgardCms
基于 AsgardCMS 构建的站点:https://asgardcms.com/gallery
百牛信息技术bainiu.ltd整理发布于博客园
2、功能特性
AsgardCMS以模块方式提供功能特性,系统自带的模块包括:
- 核心模块:安装/升级、配置、侧边栏管理、权限控制、前端资源管理器、辅助函数、表单
- 后台模块:小部件
- 媒体模块:配置、缩略图、事件、链接媒体文件到实体
- 菜单模块:管理、显示菜单
- 设置模块
- 主题
- 用户模块
- 标签模块
- 工作台模块:创建模块、生成实体、创建主题等
此外官方还为我们提供了博客模块、区块模块以及通知模块。
3、系统要求
目前AsgardCMS分稳定版本(1.0)和开发版本(2.0),稳定版本基于Laravel 5.1,开发版本基于Laravel 5.3。
开发版本对系统要求如下:
- PHP 5.6+
- PDO 扩展
- cURL 扩展
- OpenSSL 扩展
- Mbstring 扩展
- Tokenizer 扩展
- Mcrypt 扩展
- GD 扩展
- MySQL 5.5
- 以下缓存之一:Memcached、Redis、APC(默认是数组)
文档版本和开发版本对 PHP 扩展要求一致,只不过PHP版本只需要是 5.5.9+ 即可。
4、安装
下面我们以开发版本为例,讲述 AsgardCMS 的安装。
首先我们需要通过 Composer 来创建项目:
composer create-project asgardcms/platform=2.0.x-dev your-project-name
如果安装稳定版本的话,对应安装命令如下:
composer create-project asgardcms/platform your-project-name
然后创建相应的数据库。
接下来,在项目根目录运行安装命令 php artisan asgard:install 进行安装,安装命令会做以下这些事:
- 设置数据库信息
- 运行迁移
- 填充数据
- 发布前端资源
- 创建一个后台账户
安装完成后,就可以通过 /auth/login 进入登录页面并使用上面安装过程中填写的邮箱和密码进行登录。登录成功后就可以访问后台面板 /backend。
5、用到的第三方扩展包
AsgardCMS 受益于开源社区,在构建过程中我们使用到了如下扩展包:
- Laravel主题扩展包:floatingpointsoftware/stylist
- Laravel多模块管理:nwidart/laravel-modules
- Laravel框架HTML及表单构建器:laravelcollective/html
- 轻松实现视图展示:laracasts/presenter
- Laravel多语言扩展包:dimsav/laravel-translatable
- Laravel本地化实现:mcamara/laravel-localization
- Laravel侧边栏构建器:maatwebsite/laravel-sidebar
- PHP图片操作:intervention/image
- Laravel 5 菜单扩展包:pingpong-labs/menus
- 扩展Eloquent\Collection处理无限嵌套数据项:typicms/nestablecollection
- Laravel包开发测试助手:orchestra/testbench
- Laravel调试器:barryvdh/laravel-debugbar
请在使用的时候注意标明。
基于 Laravel 5 构建的、支持模块化和多语言的 CMS —— AsgardCMS的更多相关文章
- 基于laravel框架构建最小内容管理系统
校园失物招领平台开发 --基于laravel框架构建最小内容管理系统 摘要 针对目前大学校园人口密度大.人群活动频繁.师生学习生活等物品容易遗失的基本现状,在分析传统失物招领过程中的工作效率低下. ...
- 基于开源软件构建高性能集群NAS系统,包括负载均衡(刘爱贵)
大数据时代的到来已经不可阻挡,面对数据的爆炸式增长,尤其是半结构化数据和非结构化数据,NoSQL存储系统和分布式文件系统成为了技术浪潮,得到了长足的发展.非结构化数据目前呈现更加快速的增长趋势,IDC ...
- 基于Dubbo框架构建分布式服务(一)
Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...
- Gravitational Teleport 是一个先进的 SSH 服务器,基于 Golang SSH 构建,完全兼容 OpenSSH
Gravitational Teleport 是一个先进的 SSH 服务器,可通过 SSH 或者 HTTPS 远程访问 Linux 服务器.其目的是为了替代 sshd.Teleport 可以轻松让团队 ...
- 基于Dubbo框架构建分布式服务
Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...
- 基于 Apache Mahout 构建社会化推荐引擎
基于 Apache Mahout 构建社会化推荐引擎 http://www.ibm.com/developerworks/cn/views/java/libraryview.jsp 推荐引擎利用特殊的 ...
- 基于 Laravel、Vue.js开发的全新社交系统----ThinkSNS+
什么是ThinkSNS+ ThinkSNS(简称TS)始于2008年,一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+.新的产品名 ...
- 基于 Laravel 开发 ThinkSNS+ 中前端的抉择(webpack/Vue)踩坑日记【ThinkSNS+研发日记系列】
在上一篇文章< ThinkSNS+基于Laravel master分支,从1到 0,再到0.1>,简单的介绍了 社群系统ThinkSNS+ ,这里分享在开发过程中,前端选择的心理活动. L ...
- ThinkSNS+ 基于 Laravel master 分支,从 1 到 0,再到 0.1
什么是 ThinkSNS+ 09 年,由北京的团队开发了 ThinkSNS 涉足社交开源行业.这么多年累计不少客户.2014-2016,两年都在维护和开发之前基于 TP 的 ThinkSNS , 慢慢 ...
随机推荐
- Codeforces 837 E Vasya's Function
Discription Vasya is studying number theory. He has denoted a function f(a, b) such that: f(a, 0) = ...
- disruptor 核心链路应用场景
核心链路一般比较复杂并且需要考虑:服务之间相互依赖性.流程能够走完.人员的变动等情况 要考虑:兜底.补偿. 常见解决方案是:1)完全解耦 2)模板模式 其他解决方案:1)有限状态机框架:spring- ...
- amplab
https://github.com/amplab/SparkNet https://amplab.cs.berkeley.edu/
- JavaScript 函数作用域的“提升”现象
在JavaScript当中,定义变量通过var操作符+变量名.但是不加 var 操作符,直接赋值也是可以的.例如 : message = "hello JavaScript ! " ...
- 使用datatables实现列宽设置、水平滚动条、显示某列部分内容
示例 1.//使用 columnDefs 给列设置宽度 $('#example').DataTable( { "columnDefs": [ //给第一列指定宽度为表格整个宽度的2 ...
- 阿里云OSS 图片处理api(custom)
阿里云OSS 图片处理api(custom) 阿里云对象存储服务(Object Storage Service, 简称OSS) 学习了:https://blog.csdn.net/u014559227 ...
- vim编码方式配置的学习和思考
哎呀呀,今天9月30号,立即就要十一长假了,心里还有点小小浮躁.工作已经基本做完,想成为技术大牛怎么能够如此浮躁.为了应付浮躁的心灵,决定写一篇小博,平静一把. 今天一个配置文件须要有中文,而且同事是 ...
- stl之multiset容器的应用
与set集合容器一样,multiset多重集合容器也使用红黑树组织元素数据,仅仅是multiset容器同意将反复的元素健值插入.而set容器则不同意. set容器所使用的C++标准头文件set.事实上 ...
- HDU 1257 最少拦截系统(dp)
Problem Description 某国为了防御敌国的导弹突击,发展出一种导弹拦截系统.可是这样的导弹拦截系统有一个缺陷:尽管它的第一发炮弹可以到达随意的高度,可是以后每一发炮弹都不能超过前一发的 ...
- Cocos2d-x 精灵碰撞检測(方法一)
声明函数碰撞检測函数,两个精灵和重写update bool isCollision( CCPoint p1,CCPoint p2,int w1,int h1,int w2,int h2 ); CCSp ...