項目文檔編寫規範

此文件是 項目文檔編寫規範 的 readme 編寫範例,點擊 我要改進 即可查看其 Markdown 內容。

項目概述

LaraBBS 是一個簡潔的論壇應用,使用 Laravel5.5 編寫而成。一步步開發此項目的教程請見 《Web 開發實戰進階 - 從零開始構建論壇系統》

功能如下

  • 用戶認證 —— 註冊、登錄、退出;
  • 個人中心 —— 用戶個人中心,編輯資料;
  • 用戶授權 —— 作者才能刪除自己的內容;
  • 上傳圖片 —— 修改頭像和編輯話題時候上傳圖片;
  • 表單驗證 —— 使用表單驗證類;
  • 文章發佈時自動 Slug 翻譯,支持使用隊列方式以提高響應;
  • 站點『活躍用戶』計算,一小時計算一次;
  • 多角色權限管理 —— 允許站長,管理員權限的存在;
  • 後臺管理 —— 後臺數據模型管理;
  • 郵件通知 —— 發送新回覆郵件通知,隊列發送郵件;
  • 站內通知 —— 話題有新回覆;
  • 自定義 Artisan 命令行 —— 自定義活躍用戶計算命令;
  • 自定義 Trait —— 活躍用戶的業務邏輯實現;
  • 自定義中間件 —— 記錄用戶的最後登錄時間;
  • XSS 安全防禦;

運行環境要求

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

開發環境部署/安裝

本項目代碼使用 PHP 框架 Laravel 5.5 開發,本地開發環境使用 Laravel Homestead

下文將在假定讀者已經安裝好了 Homestead 的情況下進行說明。如果您還未安裝 Homestead,可以參照 Homestead 安裝與設置 進行安裝配置。

基礎安裝

1. 克隆源代碼

克隆 larabbs 源代碼到本地:

> git clone [email protected]:summerblue/larabbs.git

2. 配置本地的 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 進行重啓。

3. 安裝擴展包依賴

composer install

4. 生成配置文件

cp .env.example .env

你可以根據情況修改 .env 文件裏的內容,如數據庫連接、緩存、郵件設置等:

APP_URL=http://larabbs.test
...
DB_HOST=localhost
DB_DATABASE=larabbs
DB_USERNAME=homestead
DB_PASSWORD=secret

DOMAIN=.larabbs.test

5. 生成數據表及生成測試數據

在 Homestead 的網站根目錄下運行以下命令

$ php artisan migrate --seed

初始的用戶角色權限已使用數據遷移生成。

7. 生成祕鑰

php artisan key:generate

8. 配置 hosts 文件

echo "192.168.10.10   larabbs.test" | 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

鏈接入口

管理員賬號密碼如下:

username: [email protected]
password: password

至此, 安裝完成 ^_^。

服務器架構說明

這裏可以放一張大大的服務器架構圖,下面是個例子:

file

上圖使用工具 ProcessOn 繪製。

擴展包使用情況

擴展包 一句話描述 本項目應用場景
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 通知作者話題有新回覆 話題被評論以後

參考 https://learnku.com/docs/laravel-specification/7.x/readme-examplemd/7614

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章