{"id":13669147,"url":"https://github.com/summerblue/phphub5","last_synced_at":"2025-10-03T01:30:55.293Z","repository":{"id":41207530,"uuid":"63073314","full_name":"summerblue/phphub5","owner":"summerblue","description":"PHPHub Ver 5 is a Forum project Powered by Laravel 5.1, and it is also the project build up PHP \u0026 Laravel China community （此项目已弃用）","archived":true,"fork":false,"pushed_at":"2020-03-09T08:46:29.000Z","size":20573,"stargazers_count":1947,"open_issues_count":33,"forks_count":483,"subscribers_count":128,"default_branch":"master","last_synced_at":"2024-09-28T06:41:55.273Z","etag":null,"topics":["gulp","laravel","phphub"],"latest_commit_sha":null,"homepage":"https://laravel-china.org/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/summerblue.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-07-11T14:07:48.000Z","updated_at":"2024-09-26T12:42:12.000Z","dependencies_parsed_at":"2022-08-26T06:21:00.337Z","dependency_job_id":null,"html_url":"https://github.com/summerblue/phphub5","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/summerblue%2Fphphub5","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/summerblue%2Fphphub5/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/summerblue%2Fphphub5/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/summerblue%2Fphphub5/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/summerblue","download_url":"https://codeload.github.com/summerblue/phphub5/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235059234,"owners_count":18929279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gulp","laravel","phphub"],"created_at":"2024-08-02T08:01:04.021Z","updated_at":"2025-10-03T01:30:48.471Z","avatar_url":"https://github.com/summerblue.png","language":"PHP","funding_links":[],"categories":["PHP"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \n  \u003cbr\u003e\n  \u003ca href=\"https://laravel-china.org/topics/3383/laravel-the-first-chinese-new-book-laravel-tutorial\"\u003e\n    \u003cimg src=\"http://ww1.sinaimg.cn/large/6d86d850gw1fao8va0fv0j208y0aw74v.jpg\" width=200\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n![macbook](https://cloud.githubusercontent.com/assets/324764/18414545/d875e012-77ff-11e6-9249-0b56a6460cb8.png)\n\n## 项目概述\n\n* 产品名称：PHPHub5\n* 项目代码：PHPHub5\n* 官方地址：https://learnku.com\n\n[PHPHub](https://github.com/summerblue/phphub) Laravel 5.1 版本。\n\n## 运行环境\n\n- Nginx 1.8+\n- PHP 5.6+\n- Mysql 5.7+\n- Redis 3.0+\n- Memcached 1.4+\n\n## 开发环境部署/安装\n\n本项目代码使用 PHP 框架 [Laravel 5.1](https://doc.laravel-china.org/docs/5.1/) 开发，本地开发环境使用 [Laravel Homestead](https://doc.laravel-china.org/docs/5.1/homestead)。\n\n下文将在假定读者已经安装好了 Homestead 的情况下进行说明。如果您还未安装 Homestead，可以参照 [Homestead 安装与设置](https://doc.laravel-china.org/docs/5.1/homestead#installation-and-setup) 进行安装配置。\n\n### 基础安装\n\n#### 1. 克隆源代码\n\n克隆源代码到本地：\n\n    \u003e git clone https://github.com/summerblue/phphub5.git\n\n#### 2. 配置本地的 Homestead 环境\n\n1). 运行以下命令编辑 Homestead.yaml 文件：\n\n```shell\nhomestead edit\n```\n\n2). 加入对应修改，如下所示：\n\n```\nfolders:\n    - map: ~/my-path/phphub5/ # 你本地的项目目录地址\n      to: /home/vagrant/phphub5\nsites:\n    - map: phphub5.app\n      to: /home/vagrant/phphub5/public\n\ndatabases:\n    - phphub5\n```\n\n3). 应用修改\n\n修改完成后保存，然后执行以下命令应用配置信息修改：\n\n```shell\nhomestead provision\n```\n\n\u003e 注意：有时候你需要重启才能看到应用。运行 `homestead halt` 然后是 `homestead up` 进行重启。\n\n#### 3. 安装扩展包依赖\n\n    \u003e composer install\n\n#### 4. 生成配置文件\n\n    \u003e cp .env.example .env\n\n#### 5. 使用安装命令\n\n虚拟机里面：\n\n```shell\nphp artisan est:install\n```\n\n\u003e 更多信息，请查阅 ESTInstallCommand\n\n#### 6. 配置 hosts 文件\n\n主机里:\n\n    echo \"192.168.10.10   phphub5.app\" | sudo tee -a /etc/hosts\n\n### 前端工具集安装\n\n\u003e 代码里自带编译后的前端代码，如果你不想开发前端样式的话，你是不需要配置前端工具集的，可直接跳过直达 `链接入口` 部分。\n\n1). 安装 node.js\n\n直接去官网 [https://nodejs.org/en/](https://nodejs.org/en/) 下载安装最新版本。\n\n2). 安装 Gulp\n\n```shell\nnpm install --global gulp\n```\n\n3). 安装 Laravel Elixir\n\n```shell\nnpm install\n```\n\n4). 直接 Gulp 编译前端内容\n\n```shell\ngulp\n```\n\n5). 监控修改并自动编译\n\n```shell\ngulp watch\n```\n\n### 链接入口\n\n\u003e 请修改 `.env` 文件为 `APP_ENV=local` 和 `APP_DEBUG=true` 。\n\n* 首页地址：http://phphub5.app/\n* 管理后台：http://phphub5.app/admin\n\n在开发环境下，直接访问后台地址即可登录 1 号用户。\n\n至此, 安装完成。\n\n## 扩展包描述\n\n| 扩展包 | 一句话描述 | 在本项目中的使用案例 |  \n| --- | --- | --- |   \n|[infyomlabs/laravel-generator](https://packagist.org/packages/infyomlabs/laravel-generator)| Laravel 代码生成器 | 开发时的 Migration、Model、Controller 都使用此扩展包生成。 |  \n| [orangehill/iseed](https://github.com/orangehill/iseed) | 将数据表里的数据以 seed 的方式导出 | BannersTableSeeder, LinksTableSeeder, CategoriesTableSeeder 和 TipsTableSeeder 使用此扩展包生成。 |\n| [barryvdh/laravel-debugbar](https://github.com/barryvdh/laravel-debugbar) | 调试工具栏 | 开发时必备调试工具。 |\n|[rap2hpoutre/laravel-logviewer](https://github.com/rap2hpoutre/laravel-log-viewer)| Log 查看工具 | 生产环境下，使用此扩展包快速查看 Log，已做权限控制。 |\n| [laracasts/presenter](https://github.com/laracasts/Presenter) | Presenter 机制 | 以下 Model: User、Topic、Notification 都使用到了 Presenter。 |\n|[league/html-to-markdown](https://github.com/thephpleague/html-to-markdown)| 将 HTML 转换成 Markdown| 用户发帖、回复帖子时使用了此扩展包。 |\n|[erusev/parsedown](https://github.com/erusev/parsedown)| 将 Markdown 转换成 HTML| 用户发帖、回复帖子时使用了此扩展包。 |\n| [laravel/socialite](https://github.com/laravel/socialite) | 官方社会化登录组件 | GitHub 登录逻辑使用了此扩展包。 |\n|[NauxLiu/auto-correct](https://github.com/NauxLiu/auto-correct)| 自动给中英文之间加入合理的空格，纠正专用名词大小写| 用户发帖时用此扩展包过滤标题。 |\n| [Intervention/image](https://github.com/Intervention/image) | 图片处理功能库 | 用发帖和回复帖子时，图片上传的逻辑使用了此扩展包。 |\n| [zizaco/entrust](https://github.com/Zizaco/entrust.git) | 用户组权限系统 | 整站的权限系统基于此扩展包开发。 |\n| [VentureCraft/revisionable](https://github.com/VentureCraft/revisionable) | 记录 Model 的变更日志 | 以下 Model: User, Topic, Reply, Category, Banner 都用此扩展包记录删除日志。|\n| [mews/purifier](https://github.com/mewebstudio/Purifier) | HTML 白名单过滤器 | 用户发帖、回复时防止 XSS 过滤。 |\n|[oumen/sitemap](https://github.com/RoumenDamianoff/laravel-sitemap)| Sitemap 生成工具| 本项目的 sitemap 使用此扩展包生成。 |\n|[spatie/laravel-backup](https://github.com/spatie/laravel-backup)| 数据库备份解决方案 | 本项目的数据库备份使用此扩展包完成。 |\n|[summerblue/administrator](https://github.com/summerblue/administrator)| 管理后台解决方案| 本项目的后台使用此扩展包开发。 |\n|[laracasts/flash](https://packagist.org/packages/laracasts/flash)| 简单的 flash messages | 用户登录成功、发帖成功后的提示使用此扩展包开发 |\n\n\n## 自定义 Artisan 命令列表\n\n| 命令 | 说明 |\n| --- | --- |\n| est:install | 安装命令，仅支持开发环境下运行，在初次安装才有必要运行。|\n| est:reinstall | 重装命令，仅支持开发环境下运行，调用此命令会重置数据库、重置用户身份。|\n\n## 计划任务\n\n此项目的计划任务都以 Laravel 的 [任务调度](https://doc.laravel-china.org/docs/5.1/scheduling) 方式执行。\n\n| 命令 | 说明 | 调用 |\n| --- | --- | --- |\n| `backup:run --only-db` | 数据库备份，每 4 小时运行一次，属于 [spatie/laravel-backup](https://github.com/spatie/laravel-backup) 的逻辑 | php artisan backup:run --only-db|\n| `backup:clean` | 清理过期的数据库备份，每日 1:20 运行，属于 [spatie/laravel-backup](https://github.com/spatie/laravel-backup) 的逻辑 | php artisan backup:clean |\n\n\n## 代码生成器日志\n\n本项目使用 [infyomlabs/laravel-generator](https://packagist.org/packages/infyomlabs/laravel-generator) 快速构建项目， 记录这些日志目的为了方便后续开发可以借鉴。\n\n```shell\n\nphp artisan make:scaffold Appends --schema=\"content:text,topic_id:integer:unsigned:default(0):index\"\n\nphp artisan make:scaffold Attentions --schema=\"topic_id:integer:unsigned:default(0):index,user_id:integer:unsigned:default(0):index\"\n\nphp artisan make:scaffold Links --schema=\"title:string:index,link:string:index,cover:text:nullable\"\n\nphp 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\"\n\nphp 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)\"\n\nphp artisan make:scaffold Tips --schema=\"body:text:nullable\"\n\nphp 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\"\n\nphp artisan make:scaffold Topics --schema=\"user_id:integer:unsigned:default(0),votable_id:integer:unsigned:default(0),votable_type:string:index,is:string:index\"\n\nphp artisan make:scaffold Users --schema=\"github_id:integer:unsigned:default(0):index,github_url:string:index,email:string:index:index,name:string:index:index\"\n\nphp artisan make:scaffold Votes --schema=\"user_id:integer:unsigned:default(0),votable_id:integer:unsigned:default(0),votable_type:string:index,is:string:index\"\n\nphp artisan make:scaffold Banners --schema=\"position:string:index,order:integer:unsigned:default(0):index,image_url:string,title:string:index,description:text:nullable\"\n\nphp 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\"\n```\n\n## License\n\n\u003e 使用 PHPHub5 构建，或者基于 PHPHub5 源代码修改的站点 **必须** 在页脚加上 `Powered by PHPHub` 字样，并且必须链接到 `https://learnku.com` 上。**必须** 在页面的每一个标题上加上 `Powered by PHPHub` 字样。\n\n在遵守以上规则的情况下，你可以享受等同于 MIT 协议的授权。\n\n或者你可以联系 `summer@learnku.com` 购买商业授权，商业授权允许移除页脚和标题的 `Powered by PHPHub` 字样。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsummerblue%2Fphphub5","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsummerblue%2Fphphub5","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsummerblue%2Fphphub5/lists"}