# laravle5.5-blog
**Repository Path**: MoSheng2020/laravle5.5-blog
## Basic Information
- **Project Name**: laravle5.5-blog
- **Description**: 基于laravel5.5的php博客项目
- **Primary Language**: PHP
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-07-08
- **Last Updated**: 2022-08-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## This is a blog item for laravel5.5
## 莫生
##
My QQ:1098901025
My WeChat:
## 目前开发进度
### 因缺少好看的前段页面
### 写到前段这里还未写好
### 如有好看的前端页欢迎联系我,感谢
### 功能可二次开发
## 一、功能概述
### 前后端分离
### 前台功能
首页
注册|登录,手机注册、邮箱注册、找回密码
分类
留言
文章列表
文章详情页
文章评论
### 后台功能:
用户管理 编辑、停用、添加、删除用户
角色管理 添加、删除角色,编辑角色权限
权限管理 添加权限、权限对应laravel权限路由、修改、编辑、删除权限
分类管理 添加、编辑、删除分类
文章管理 添加、编辑、删除文章的分类|标题|缩略图|关键词|描述
网站配置管理
友情链接管理
轮播图管理
### 项目涉及
1、图形验证码
2、短信接口
3、RBAC权限系统
4、邮件服务
5、百度编辑器、markdown编辑器
6、阿里云oss、七牛云文件上传
7、常用composer组件使用
8、redis缓存
9、docker本地服务器、git
10、laravel的路由、控制器、模型、中间件、数据库增删改查、get/post接口
## 二、RBAC权限概述:
### 用户管理、角色管理、权限管理
创建五个数据表
1、用户表 blog_user
2、角色表 blog_role
3、权限表 blog_permission
4、用户角色关系表 blog_user_role
5、角色权限关系表 blog_role_permission
## 常用命令
创建控制器
php artisan make:controller Admin/ArtisanController1
创建model
php artisan make:model Models/Admin/Article
##中间件
如下代码
Route::group(['prefix'=>'admin','namespace'=>'Admin','middleware'=>['islogin','hasRole']],function(){
其中middleware就是中间件,它在group组下的所有页面都会判断islogin用户是否登录
创建中间件:php artisan make:middleware IsLogin
在app/Http/Middleware/IsLogin.php写入中间件验证
app/Http/Kernel.php注册中间件
## 图片处理组件-intervention/image
1、安装
composer require intervention/image
2、配置
在config/app.php文件中添加
Intervention\Image\ImageServiceProvider::class
'Image'=>Intervention\Image\Facades\Image::class
3、常用方法
在控制器中映入
use Image;
$img = Image::make('public/foo.jpg');
$img->resize(320,240);
$img->save('public/bar.jpg');
## 百度富文本编辑器
### 1.1 下载编辑器
1. `git clone ` 仓库
2. `npm install` 安装依赖(如果没有安装 grunt , 请先在全局安装 grunt)
3. 在终端执行 `grunt default`
### 1.2 创建demo文件
解压下载的包,在解压后的目录创建demo.html文件,填入下面的html代码
```html
ueditor demo
```
### 1.3 在浏览器打开demo.html
如果看到了下面这样的编辑器,恭喜你,初次部署成功!

## markdown编辑器
1、安装
composer require graham-campbell/markdown
2、配置
在config/app.php文件中添加
GrahamCampbell\Markdown\MarkdownServiceProvider
'Markdown'=>GrahamCampbell\Markdown\Facades\Markdown::class,
3、常用语法
Markdwon::convertToHtml('foo');//foo
## 阿里云oss
https://packagist.org
搜索johnlui/aliyun-oss
执行命令安装composer require johnlui/aliyun-oss:~2.1.2
新建 app/services/OSS.php,内容可参考:[OSS.php](https://github.com/johnlui/AliyunOSS/blob/master/example/OSS.php),然后修改配置:
```php
... ...
private $city = '青岛';
// 经典网络 or VPC
private $networkType = '经典网络';
private $AccessKeyId = '';
private $AccessKeySecret = '';
... ...
```
在 `composer.json` 中 `autoload -> classmap` 处增加配置:
```json
"autoload": {
"classmap": [
"app/services"
]
}
```
然后运行 `composer dump-autoload`。
无需配置,保证目录 `App/Services` 和命名空间 `namespace App\Services;` 一致即可自动加载。
### 使用
```php
use App\Services\OSS;
// 在外网上传一个文件并指定 options 如:Content-Type 类型
// 更多 options 见:https://github.com/johnlui/AliyunOSS/blob/master/src/oss/src/Aliyun/OSS/OSSClient.php#L142-L148
OSS::publicUpload('bucket', '目标 object 名', '本地文件绝对路径', [
'ContentType' => 'application/pdf',
... ...
]);
```
如果上传的是图片,务必保证ContentType是image/jpg,否则打开图片是直接下载而不是预览
2022年07月21日08:29:06测试可用
## 安装Redis扩展
composer require "predis/predis:~1.0"
## 三、Tips:
### 1、当resource路由的控制器中定义了public function index(){},那么访问的话不要加index,直接访问路由定义的根目录。
比如这个:Route::resource('admin/cate','Admin\SortController');
直接访问localhost/admin/cate便可,访问localhost/admin/cate/index是无法访问的
不要被控制器中的index给混淆了
