我的博客-项目准备
项目内容
一、业务原型图及设计
简单直接,我们直接仿一个网站(简化版),点击查看, 这是一个很好的学习网站,学习到了很多基础知识~,顺便帮他推广一下~。
1.结构分析
网站主要有3个模块视频、问答、文章(路径、订阅、签到我们后续再说)。
当然还有2个主要的模块,个人中心和评论。
- 视频模块:一个二维的概念我们可以理解为“专题-->视频”即一个专题对应多个视频。
- 问答:可以提问及回答。
- 文章:可以发布文章。
- 评论:可以对以上三个模块进行评论。
- 个人中心:可以发布视频、提问及文章等。
2.页面分析:
- 共享页面:header头、footer尾;
- 主页面:头图、专题展示,下级页面如下
- 所有视频页;
- 视频详情页;
- 问答:问答列表,下级页面如下:
- 问答详情;
- 文章:文章列表,下级页面如下:
- 文章详情;
3.场景分析
结合实际应用,我们将视频模块与文章模块进行合并(视频模块后期再说吧)。
专题对应多个文章。
所以本次我们主要实现的模块可以暂定为:文章、问答、评论、个人中心。
- 文章详情;
二、框架选择
当然是laravel5.3的标配啊。
开发环境:php5.6.4,mysql5.7。
win10项目目录下运行php artisan serve --host=0.0.0.0 --port=80
开始项目的(访问http://localhost即可,别忘了配置数据库)
三、数据库设计
1.模型关系图如下:
2.需要用到的第三方扩展(个人脚手架的开始)
脚手架(以下项目是我现在做项目的一个原型基础,现在教大家搭建一下)
1.汉化(Laravel-lang)composer require caouecs/laravel-lang:~3.0
复制vendor/caouecs/laravel-lang/src/zh-CN到resources/lang/下
修改config/app.php
中'locale' => 'zh-CN'
2.Repository 模式(参考)composer require "bosnadev/repositories: 0.*"
教程见参考
3.七牛云集成
安装依赖包composer require qiniu/php-sdk
配置文件filesystems.php
在disks
中添加如下内容
'qiniu' => [
'driver' => 'qiniu',
'domains' => [
'default' => env('QINIU_DEFAULT'), //你的七牛域名
'https' => env('QINIU_HTTPS'), //你的HTTPS域名
'custom' => env('QINIU_HTTP'), //你的自定义域名
],
'access_key'=> env('QINIU_ACCESS_KEY'), //AccessKey
'secret_key'=> env('QINIU_SECRET_KEY'), //SecretKey
'bucket' => env('QINIU_BUCKET'), //Bucket名字
'notify_url'=> env('QINIU_NOTIFY_URL'), //持久化处理回调地址
],
然后配置你的参数到.env
文件
在app文件夹下新建helpers.php
/**
* 生成文件路径(返回图片路径)
* @param $file
* @param $exts
* @return bool|string
*/
if(!function_exists('makePath')) {
function makePath($file, $exts = ['jpg', 'png', 'jpeg', 'gif']) {
$ext = strtolower($file->guessExtension());
if( in_array($ext, $exts) ){
$filename = md5(microtime()) . '.' . $ext ;
$storagePath = 'uploads/files/'. date('Ymd');
if (env('FILE_DISK') == 'local'){
$destinationPath = public_path($storagePath);
$file->move($destinationPath ,$filename);
return '/'.$storagePath .'/' .$filename;
}else {
$path = $file->path();
return upload_qiniu($storagePath.'/'.$filename, $path);
}
}
return false;
}
}
/**
* 上传文件到七牛云(返回图片路径)
* @param $filename
* @param $filepath
* @return bool|string
*/
if(!function_exists('upload_qiniu')) {
function upload_qiniu($filename, $filepath) {
$upManager = new Qiniu\Storage\UploadManager();
$auth = new Qiniu\Auth(config('filesystems.disks.qiniu.access_key'), config('filesystems.disks.qiniu.secret_key'));
$token = $auth->uploadToken(config('filesystems.disks.qiniu.bucket'));
list($ret, $err) = $upManager->putFile($token, $filename, $filepath);
if ($err !== null) {
return false;
} else {
return 'http://'.config('filesystems.disks.qiniu.domains.custom').'/'.$filename;
}
}
}
- 消息提示(参考)
安装composer require laracasts/flash
配置
'providers' => [
Laracasts\Flash\FlashServiceProvider::class,
];
详细配置参考composer require laracasts/flash
- SendCloud邮件发送服务(参考)
安装composer require naux/sendcloud
配置
修改config/app.php
,添加服务提供者'providers' => [ // 添加这行 Naux\Mail\SendCloudServiceProvider::class, ];
在
.env
中配置你的密钥, 并修改邮件驱动为sendcloud
MAIL_DRIVER=sendcloud SEND_CLOUD_USER= # 创建的 api_user SEND_CLOUD_KEY= # 分配的 api_key
上面这些基本上就够我们用的了~,后续再根据实际需求添加
今天先到这吧。如果大家有更好的方式或扩展包希望留言让我少走一些弯路~,多谢大家关照~(下方可以加我微信。打赏也可以哈~哈哈哈)
本作品采用《CC 协议》,转载必须注明作者和本文链接
手动点赞~
赞!我也经常去laravist看jellyBool的视频,讲得都很棒!
阔以阔以。
请问文章中数据库的那张图是用什么画的?
求个前台模板:smile:
@Artisan Chrome的插件Gliffy Diagrams
@生活无限好 自己做东西的话bootstrap就挺好的啊,后台静态模板我一般用AdminLTE
@fnf1993 试用了一下,很棒的工具。希望能多分享些好用的工具 ?
怎么不更新了?