Giter VIP home page Giter VIP logo

larabbs's Introduction

项目概述

该项目为教程实战项目,这里仅留作保存。

产品名称:LaraBBS 项目代号:larabb

功能如下

用户认证 —— 注册、登录、退出;

个人中心 —— 用户个人中心,编辑资料;

用户授权 —— 作者才能删除自己的内容;

上传图片 —— 修改头像和编辑话题时候上传图片;

表单验证 —— 使用表单验证类;

文章发布时自动 Slug 翻译,支持使用队列方式以提高响应;

站点『活跃用户』计算,一小时计算一次;

多角色权限管理 —— 允许站长,管理员权限的存在;

后台管理 —— 后台数据模型管理;

邮件通知 —— 发送新回复邮件通知,队列发送邮件;

站内通知 —— 话题有新回复;

自定义 Artisan 命令行 —— 自定义活跃用户计算命令;

自定义 Trait —— 活跃用户的业务逻辑实现;

自定义中间件 —— 记录用户的最后登录时间;

XSS 安全防御;

运行环境要求

Nginx 1.8+

PHP 7.1+

Mysql 5.7+

Redis 3.0+

Memcached 1.4+

开发环境部署/安装

本项目代码使用 PHP 框架 Laravel 5.5 开发,本地开发环境使用 Laravel Homestead。

下文将在假定读者已经安装好了 Homestead 的情况下进行说明。如果您还未安装 Homestead,可以参照 Homestead 安装与设置 进行安装配置。

基础安装

克隆源代码 克隆 larabbs 源代码到本地:

git clone [email protected]:endingman/larabbs.git

配置本地的 Homestead 环境

1). 运行以下命令编辑 Homestead.yaml 文件:

homestead edit

2). 加入对应修改,如下所示:

folders: - map: ~/my-path/larabbs/ # 你本地的项目目录地址 to: /home/vagrant/larabbs

sites: - map: larabbs.test to: /home/vagrant/larabbs/public

databases: - larabbs

3). 应用修改

修改完成后保存,然后执行以下命令应用配置信息修改:

homestead provision 随后请运行 homestead reload 进行重启。

安装扩展包依赖 composer install

4). 生成配置文件

cp .env.example .env 你可以根据情况修改 .env 文件里的内容,如数据库连接、缓存、邮件设置等。

生成秘钥 php artisan key:generate 6. 生成数据表及生成测试数据

在 Homestead 的网站根目录下运行以下命令

$ php artisan migrate --seed 初始的用户角色权限已使用数据迁移生成。

配置 hosts 文件 echo "192.168.10.10 phphub.app" | sudo tee -a /etc/hosts 前端框架安装

1). 安装 node.js

直接去官网 https://nodejs.org/en/ 下载安装最新版本。

2). 安装 Yarn

请按照最新版本的 Yarn —— http://yarnpkg.cn/zh-Hans/docs/install

3). 安装 Laravel Mix

yarn install

4). 编译前端内容

// 运行所有 Mix 任务... npm run dev

// 运行所有 Mix 任务并缩小输出.. npm run production 5). 监控修改并自动编译

npm run watch

// 在某些环境中,当文件更改时,Webpack 不会更新。如果系统出现这种情况,请考虑使用 watch-poll 命令: npm run watch-poll 链接入口

首页地址:http://larabbs.test/ 管理后台:http://larabbs.test/admin 管理员账号密码如下:

username:[email protected] password: password 至此, 安装完成 ^_^。

扩展包使用情况

扩展包 一句话描述 本项目应用场景

Intervention/image 图片处理功能库 用于图片裁切

guzzlehttp/guzzle HTTP 请求套件 请求百度翻译 API

predis/predis Redis 官方首推的 PHP 客户端开发包 缓存驱动 Redis 基础扩展包

barryvdh/laravel-debugbar 页面调试工具栏 (对 phpdebugbar 的封装) 开发环境中的 DEBUG

spatie/laravel-permission 角色权限管理 角色和权限控制

mewebstudio/Purifier 用户提交的 Html 白名单过滤 帖子内容的 Html 安全过滤,防止 XSS 攻击

hieu-le/active 选中状态 顶部导航栏选中状态

summerblue/administrator 管理后台 模型管理后台、配置信息管理后台

viacreative/sudo-su 用户切换 开发环境中快速切换登录账号

laravel/horizon 队列监控 队列监控命令与页面控制台 /horizon 自定义 Artisan 命令

命令行名字 说明 Cron 代码调用

larabbs:calculate-active-user 生成活跃用户 一小时运行一次 无

larabbs:sync-user-actived-at 从 Redis 中同步最后登录时间到数据库中 每天早上 0 点准时 无

队列清单 名称 说明 调用时机

TranslateSlug.php 将话题标题翻译为 Slug

TopicObserver 事件 saved()

TopicReplied.php 通知作者话题有新回复 话题被评论以后

larabbs's People

Contributors

endingman avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.