Skip to content
China Drone Developer Community
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
bootstrap
config
database
packages/rss
public
resources
routes
storage
tests
.editorconfig
.env.example
.gitattributes
.gitignore
artisan
composer.json
composer.lock
gulpfile.js
package-lock.json
package.json
phpspec.yml
phpunit.xml
readme.md
server.php
yarn.lock

readme.md


macbook

项目概述

PHPHub Laravel 5.1 版本。

运行环境

  • Nginx 1.8+
  • PHP 5.6+
  • Mysql 5.7+
  • Redis 3.0+
  • Memcached 1.4+

开发环境部署/安装

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

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

基础安装

1. 克隆源代码

克隆源代码到本地:

> git clone https://github.com/summerblue/phphub5.git

2. 配置本地的 Homestead 环境

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

homestead edit

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

folders:
    - map: ~/my-path/phphub5/ # 你本地的项目目录地址
      to: /home/vagrant/phphub5
sites:
    - map: phphub5.app
      to: /home/vagrant/phphub5/public

databases:
    - phphub5

3). 应用修改

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

homestead provision

注意:有时候你需要重启才能看到应用。运行 homestead halt 然后是 homestead up 进行重启。

3. 安装扩展包依赖

> composer install

4. 生成配置文件

> cp .env.example .env

5. 使用安装命令

虚拟机里面:

php artisan est:install

更多信息,请查阅 ESTInstallCommand

6. 配置 hosts 文件

主机里:

echo "192.168.10.10   phphub5.app" | sudo tee -a /etc/hosts

前端工具集安装

代码里自带编译后的前端代码,如果你不想开发前端样式的话,你是不需要配置前端工具集的,可直接跳过直达 链接入口 部分。

1). 安装 node.js

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

2). 安装 Gulp

npm install --global gulp

3). 安装 Laravel Elixir

npm install

4). 直接 Gulp 编译前端内容

gulp

5). 监控修改并自动编译

gulp watch

链接入口

请修改 .env 文件为 APP_ENV=localAPP_DEBUG=true

在开发环境下,直接访问后台地址即可登录 1 号用户。

至此, 安装完成。

扩展包描述

扩展包 一句话描述 在本项目中的使用案例
infyomlabs/laravel-generator Laravel 代码生成器 开发时的 Migration、Model、Controller 都使用此扩展包生成。
orangehill/iseed 将数据表里的数据以 seed 的方式导出 BannersTableSeeder, LinksTableSeeder, CategoriesTableSeeder 和 TipsTableSeeder 使用此扩展包生成。
barryvdh/laravel-debugbar 调试工具栏 开发时必备调试工具。
rap2hpoutre/laravel-logviewer Log 查看工具 生产环境下,使用此扩展包快速查看 Log,已做权限控制。
laracasts/presenter Presenter 机制 以下 Model: User、Topic、Notification 都使用到了 Presenter。
league/html-to-markdown 将 HTML 转换成 Markdown 用户发帖、回复帖子时使用了此扩展包。
erusev/parsedown 将 Markdown 转换成 HTML 用户发帖、回复帖子时使用了此扩展包。
laravel/socialite 官方社会化登录组件 GitHub 登录逻辑使用了此扩展包。
NauxLiu/auto-correct 自动给中英文之间加入合理的空格,纠正专用名词大小写 用户发帖时用此扩展包过滤标题。
Intervention/image 图片处理功能库 用发帖和回复帖子时,图片上传的逻辑使用了此扩展包。
zizaco/entrust 用户组权限系统 整站的权限系统基于此扩展包开发。
VentureCraft/revisionable 记录 Model 的变更日志 以下 Model: User, Topic, Reply, Category, Banner 都用此扩展包记录删除日志。
mews/purifier HTML 白名单过滤器 用户发帖、回复时防止 XSS 过滤。
oumen/sitemap Sitemap 生成工具 本项目的 sitemap 使用此扩展包生成。
spatie/laravel-backup 数据库备份解决方案 本项目的数据库备份使用此扩展包完成。
summerblue/administrator 管理后台解决方案 本项目的后台使用此扩展包开发。
laracasts/flash 简单的 flash messages 用户登录成功、发帖成功后的提示使用此扩展包开发

自定义 Artisan 命令列表

命令 说明
est:install 安装命令,仅支持开发环境下运行,在初次安装才有必要运行。
est:reinstall 重装命令,仅支持开发环境下运行,调用此命令会重置数据库、重置用户身份。

计划任务

此项目的计划任务都以 Laravel 的 任务调度 方式执行。

命令 说明 调用
backup:run --only-db 数据库备份,每 4 小时运行一次,属于 spatie/laravel-backup 的逻辑 php artisan backup:run --only-db
backup:clean 清理过期的数据库备份,每日 1:20 运行,属于 spatie/laravel-backup 的逻辑 php artisan backup:clean

代码生成器日志

本项目使用 infyomlabs/laravel-generator 快速构建项目, 记录这些日志目的为了方便后续开发可以借鉴。

php artisan make:scaffold Appends --schema="content:text,topic_id:integer:unsigned:default(0):index"

php artisan make:scaffold Attentions --schema="topic_id:integer:unsigned:default(0):index,user_id:integer:unsigned:default(0):index"

php artisan make:scaffold Links --schema="title:string:index,link:string:index,cover:text:nullable"

php artisan make:scaffold Replies --schema="topic_id:integer:unsigned:default(0):index,user_id:integer:unsigned:default(0):index,is_block:tinyInteger:unsigned:default(0):index,vote_count:integer:unsigned:default(0):index,body:text,body_original:text:nullable"

php artisan make:scaffold SiteStatuses --schema="day:string:index,register_count:integer:unsigned:default(0),topic_count:tinyInteger:unsigned:default(0),reply_count:integer:unsigned:default(0),image_count:integer:unsigned:default(0)"

php artisan make:scaffold Tips --schema="body:text:nullable"

php artisan make:scaffold Topics --schema="title:string:index,body:text,user_id:tinyInteger:unsigned:default(0),category_id:integer:unsigned:default(0),reply_count:integer:unsigned:default(0),view_count:integer:unsigned:default(0),vote_count:integer:unsigned:default(0),last_reply_user_id:integer:unsigned:default(0),order:integer:unsigned:default(0),is_excellent:tinyInteger:unsigned:default(0),is_wiki:tinyInteger:unsigned:default(0),is_blocked:tinyInteger:unsigned:default(0),body_original:text:nullable,excerpt:text:nullable"

php artisan make:scaffold Topics --schema="user_id:integer:unsigned:default(0),votable_id:integer:unsigned:default(0),votable_type:string:index,is:string:index"

php artisan make:scaffold Users --schema="github_id:integer:unsigned:default(0):index,github_url:string:index,email:string:index:index,name:string:index:index"

php artisan make:scaffold Votes --schema="user_id:integer:unsigned:default(0),votable_id:integer:unsigned:default(0),votable_type:string:index,is:string:index"

php artisan make:scaffold Banners --schema="position:string:index,order:integer:unsigned:default(0):index,image_url:string,title:string:index,description:text:nullable"

php artisan make:scaffold NotificationMailLogs --schema="from_user_id:integer:unsigned:default(0):index,user_id:integer:unsigned:default(0):index,type:string:index,body:text:nullable"

License

使用 PHPHub5 构建,或者基于 PHPHub5 源代码修改的站点 必须 在页脚加上 Powered by PHPHub 字样,并且必须链接到 https://laravel-china.org 上。必须 在页面的每一个标题上加上 Powered by PHPHub 字样。

在遵守以上规则的情况下,你可以享受等同于 MIT 协议的授权。

或者你可以联系 aufree@yousails.com 购买商业授权,商业授权允许移除页脚和标题的 Powered by PHPHub 字样。

You can’t perform that action at this time.