Need help with phphub5?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

summerblue
2.0K Stars 482 Forks 1.2K Commits 33 Opened issues

Description

PHPHub Ver 5 is a Forum project Powered by Laravel 5.1, and it is also the project build up PHP & Laravel China community (此项目已弃用)

Services available

!
?

Need anything else?

Contributors list



macbook

项目概述

  • 产品名称:PHPHub5
  • 项目代码:PHPHub5
  • 官方地址:https://learnku.com

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=local
APP_DEBUG=true
  • 首页地址:http://phphub5.app/
  • 管理后台:http://phphub5.app/admin

在开发环境下,直接访问后台地址即可登录 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://learnku.com
上。必须 在页面的每一个标题上加上
Powered by PHPHub
字样。

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

或者你可以联系

[email protected]
购买商业授权,商业授权允许移除页脚和标题的
Powered by PHPHub
字样。

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.