- 通过git clone获得本项目源码:
运行命令
git clone https://github.com/EdenChan/StartupsCampfire.git
- 安装composer依赖
在clone下来的StartupsCampfire
文件夹中运行命令
cp .env.example .env
创建项目.env文件(如果处于windows环境下可利用git bash执行上述命令)
随后编辑.env文件进行环境配置
示例结果如下
APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomString
DB_HOST=localhost
DB_DATABASE=startupscampfire(请先建立数据库`startupscampfire`)
DB_USERNAME=root
DB_PASSWORD=root
DB_PREFIX=scamp_(如果通过sql导入方式建立数据库请勿更改表前缀)
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_COOKIENAME=startupscampfire_session
QUEUE_DRIVER=sync
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
之后执行
composer install
这条命令将安装项目的composer依赖,为提升composer包安装速度建议使用composer**全量镜像,
相关信息如下:http://pkg.phpcomposer.com/
然后运行命令
php artisan key:generate
设定laravel应用所需的key
上述命令执行完成后,
请在StartupsCampfire
文件夹中使用命令
php artisan vendor:publish
导出composer包配置到本项目中
- 安装npm模块 本项目初步尝试使用gulp工具进行前端构建,如有需要可运行命令
npm install
安装相关模块,需要确保已安装nodejs和已全局安装gulp模块,相关信息请见: http://www.gulpjs.com.cn/docs/getting-started/
4)建立数据库
默认使用mysql数据库,请先建立数据库startupscampfire
如需安装示例数据,请将根目录下的startupscampfire.sql
文件导入
如仅需表结构,可在composer依赖安装完毕后运行命令
php artisan migrate
进行数据库初始化
5)运行应用 根目录下执行命令
php artisan serve
然后通过浏览器访问地址http://localhost:8000
即可
体验用户 账号eden 密码123456
目前项目暂时部署在阿里云上
访问 http://localhost:8000/admin
初始管理员 账号admin 密码123456 请尽量不要更改线上数据哈
1)前后台分离用户验证
2)前台主要功能: 注册登录、忘记密码、发布动态、申请活动、发布评论、回复评论、 收藏动态、收藏活动、动态/活动/评论点赞 编辑个人信息、关注用户、@提醒、即时消息提示、站内检索、分类导航..
3)后台主要功能: 活动/评论/分类/用户动态管理、活动审核、发布平台活动、 导航管理、首页幻灯片管理、用户管理、站点公告管理..
TODO: 将来考虑加入的功能: 用户分组、私信发送、活动报名、站内信、用户推荐、举报..
另外由于项目时间等等问题,本来考虑使用vuejs完成部分前端内容,但最终还是保持最简单的前端写法,后续会考虑引入一些新的前端技术和利用ajax等方式优化一下前端部分的交互。
本项目在实现过程中参考了目前基于laravel的部分项目源码,主要项目有:
https://github.com/summerblue/phphub (phphub网站的源码)
https://github.com/douyasi/yascmf
https://github.com/BootstrapCMS/CMS (代码规范,推荐阅读)
本项目使用的部分composer包:
https://github.com/lazychaser/laravel-nestedset (处理树形结构数据:如无限级分类、导航等)
https://github.com/Sarav-S/Laravel-Multiauth (用户分表验证,可将不同角色用户存到不同的user表中 ,分别进行管理)
https://github.com/andersao/l5-repository (用于Laravel5的Repository抽象包,支持实现Repository层逻辑)
https://github.com/stevenyangecho/laravel-u-editor (百度ueditor富文本编辑器, 如果遇到无法上传图片的问题可以参考这个issue: stevenyangecho/laravel-u-editor#6)
很早之前就听说了Laravel的大名,最近有空的时候学习了一下这个框架的一些基本用法,利用空余时间断断续续地做了一个月多点的时间,基本把这个项目做成了现在这个样子,主要定位于给Laravel的初学者提供一些使用框架的思路。
和之前接触的一些框架(tp、ci等等)相比,laravel无疑在构建一个更规范的工作流方面做得更加出色,composer支持、好用的Eloquent ORM、好用的Blade模板、好用的Restful路由、方便的Form Request..这些都能减少开发过程中的很多思考时间,使开发者更专注于项目功能的实现。
当然由于我自己的各种经验欠缺问题,在这个项目许多实现上还是非常simple和naive的,接下来的时间还是需要更多的思考如何能够更好地解决部件解耦、减少重复和提高代码质量等问题,希望能够和大家交流,向大家好好学习:)