- 产品名称:个人博客系统api接口
- 项目代号:blog-api
- 演示地址:https://www.einsition.com
- 前端项目地址:https://github.com/yanthink/blog-v2
该系统使用 Laravel5.8 编写而成。
- 文章列表 -- Elasticsearch搜索;
- 文章详情;
- 微信小程序评论、回复、收藏、点赞;
- 通知 websocket 广播;
- 用户认证 -- 后台登录、退出;
- 多角色权限管理;
- 附件上传 -- 支持清除无效的附件;
- 文章管理 -- 列表、详情、发布、修改、删除;
- 用户管理 -- 列表、添加、修改、分配角色;
- 定时清除无用的附件;
- Debugbar;
- Nginx 1.8+
- PHP >= 7.1.3
- MySQL 5.7+
- Redis 3.0+
- Elasticsearch 6.0+
本项目代码使用 PHP 框架 Laravel 5.8 开发,本地开发环境使用 Laravel Valet。
克隆 blog-api
源代码到本地:
> git clone https://github.com/yanthink/blog-api.git
$ composer install
$ cp .env.example .env
你可以根据情况修改 .env
文件里的内容,如数据库连接、缓存、邮件设置等:
APP_URL=http://api.blog.test
...
DB_HOST=localhost
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=
$ php artisan key:generate
$ php artisan jwt:secret
$ php artisan storage:link
$ php artisan migrate --seed
初始的用户角色权限已使用数据迁移生成。
管理员账号密码如下:
username: admin
password: 888888
$ brew install elasticsearch
$ cd $(brew --prefix elasticsearch)
$ ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.4/elasticsearch-analysis-ik-6.2.4.zip
$ php artisan es:init
至此, 安装完成 ^_^。
扩展包 | 一句话描述 | 本项目应用场景 |
---|---|---|
dingo/api | 处理api接口的开源插件 | 用于api接口 |
tymon/jwt-auth | 身份验证的软件包 | 用于api认证 |
predis/predis | Redis 官方首推的 PHP 客户端开发包 | 缓存驱动 Redis 基础扩展包 |
spatie/laravel-permissiont | 角色权限管理 | 角色和权限控制 |
zgldh/qiniu-laravel-storage | Qiniu 云储存 Laravel 5 Storage版 | 存储附件 |
barryvdh/laravel-ide-helper | 代码提示及补全工具 | 代码提示及补全 |
barryvdh/laravel-debugbar | 页面调试工具栏 (对 phpdebugbar 的封装) | 开发环境中的 DEBUG |
overtrue/laravel-wechat | 微信 SDK for Laravel 5 / Lumen | 微信小程序登录 |
命令行名字 | 说明 | Cron | 代码调用 |
---|---|---|---|
remove-expired-attachment |
删除过期附件 | 每天凌晨2点执行一次 | 无 |
es:init |
初始化elasticsearch | 无 | 无 |
sync-article-read-count |
将Redis的文章阅读次数数据同步到数据库中 | 每天凌晨0点执行一次 | 无 |
名称 | 说明 | 调用时机 |
---|---|---|
PushArticleImagesToTargetDisk.php | 将文章图片保存到targetDisk | 发布文章和更新文章 |