vue.js+php开发个人博客系统

原文链接:http://codebear.cn/article?id=h2IJZNg7YkvwAIlK7MSXi

1.png

前端源码地址: https://github.com/CB-ysx/myblog
博客在线地址: http://codebear.cn

前言

该博客于2018年7月开始开发,8月完成并上线第一个版本,至今处于优化+添加新功能...

为何搭建个人博客

一直想搭建自己的个人博客,写博客可以记录我的学习笔记、总结经验、分享技术等等。尝试过csdn、博客园、hexo写博客,但作为一名程序猿,还是想拥有属于自己的个人博客!

为何使用vue+php搭建博客

  • 最初接触vue是今年年初的时候,我的毕业设计是做一个二手车销售网站(呃(⊙o⊙)…一开始看到这题目我是拒绝的,因为我想做android,没办法,老师不给换题目)。这个时候我的前端知识还处于html+css+单纯js或jq实现的阶段,慢慢在网上了解到vue,了解到vue<code>提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件</code>,这正是我喜欢的,所以就用vue写毕业设计,之后就一发不可收拾,接连写了(用Vue实现海报排版设计功能)、视频播放网站。这次就决定用vue写个个人博客。
  • 记得两三年接触的php,当时是跟朋友一起做项目,用的thinkphp(不过当初我做的是前端,php就了解一下),之后就一直做android,也是因为我的毕业设计,才开始重新使用php,选择了最容易上手的ci框架,边学边做毕业设计,也慢慢封装了一个方便使用的项目(基本只需写controller和model,配置router、数据库就行),所以这次博客也就选择这个来开发,速度快些。

使用的服务器、技术栈、库

项目放在我的阿里云ECS(学生机)上,图片上传到七牛

  • php(ci框架)
  • vue
  • vue-router
  • vuex-router-sync
  • vuex
  • web-storage-cache
  • element-ui
  • axios(网络请求)
  • cropperjs(图片裁剪,后台管理系统中使用)
  • highlight.js(代码高亮)
  • marked(markdown文本转html)
  • mavon-editor(markdown编辑器)
  • moment(日期处理)
  • photoswipe(查看大图)

博客界面主题

参考hexo的next主题,根据自己的喜好和审美观稍作修改。

实现

效果图

由于gif压缩比较模糊,可移步到博客直接浏览http://codebear.cn

  • 移动端


    博客
    后台管理
  • pc端


    博客
    后台管理

php写博客接口

  • 项目结构

image.png
  • 返回值helper

image.png

其中<code>success_result、fail_result</code>这两个方法是接口返回的json结构,<code>success、fail</code>这两个方法是model返回给controller的json结构,这样封装统一返回接口,比较好管理。

  • 后台管理权限检查

这里我使用了token作为权限认证,每次登陆都会重新生成一个新的token以及更新有效期,保存进数据库。
在Common_model中实现token检查:


image.png

在Base_Controller中加载Common_model并获取客户端传来的accessToken:


image.png

其他所有controller都继承Base_controller,在需要权限验证的controller构造方法里调用权限检查:
image.png

博客

后台管理系统与博客写在同一个项目里,使用vue-cli脚手架的项目,自己再改造一下。因为首屏加载慢问题,一些库(vue、element-ui等在非dev模式下改成由cdn加载)。

博客: 首页(最新文章列表)、分类/标签、归档、关于、友链、文章、文章列表、个人简历、搜索

后台管理系统: 首页(数据统计显示)、文章管理(发布、编辑、删除、预览等)、评论管理(回复、删除)、分类/标签管理(添加、删除、编辑)、网站配置(关于、简历、头像等)

一些共用组件: 评论模块(表情实现参考jquery 表情输入框,可存数据库)、markdown文章显示模块(使用marked解析(发布的时候解析成html存进数据库的)、highlight.js处理代码高亮、photoswipe实现大图预览)、图片裁剪上传(el-upload+cropperjs)、文章目录(根据html自动生成)

  • 项目结构

image.png
  • axios封装统一处理

image.png

总结

写这个博客系统初版用了大概一个月时间,现在陆陆续续在优化以及添加新功能学到了cdn加载、图片dataUrl转blob、动画效果、pc移动自适应等知识。每一次做项目都是在不断学习,不断进步

前端源码地址: https://github.com/CB-ysx/myblog
博客在线地址: http://codebear.cn

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • 1. Two Sum Given an array of integers, return indices of...
    迪爷阅读 740评论 0 0
  • 目 录 一、认识“脆弱” 二、什么是“反脆弱” 三、为什么要学会反脆弱 四、提升反脆弱能力的方法 正 文 一、认识...
    天悦刘洋阅读 379评论 0 1