使用 Docker 建立 Hyperf 專案

Donjan發表於2019-12-03

@[TOC]

安裝Hyperf開發容器

docker run -d --name user_center \
  --restart=always \
  #對映到宿主機目錄,這樣我們就直接在/home/wwwroot/user_center開發
  -v /home/wwwroot/user_center:/hyperf-skeleton \ 
  # 9501提供http服務,9504提供json-rpc服務
  -p 9501:9501 -p 9504:9504 \ 
  -it --entrypoint /bin/sh \
  hyperf/hyperf:7.3-alpine-cli

安裝Composer

docker exec -it user_center bash #進入容器
#下載COMPOSER
wget https://github.com/composer/composer/releases/download/1.9.0/composer.phar
#修改為可執行
chmod u+x composer.phar
#複製到/usr/local/bin/ 這樣就可以直接執行composer 命令
mv composer.phar /usr/local/bin/composer
#修改倉庫地址為阿里雲
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer

建立專案,以下命令都是在容器內部執行

cd /hyperf-skeleton
composer create-project hyperf/hyperf-skeleton=1.1.* #直接一路回車不安裝附加元件

安裝需要用到的元件

composer require illuminate/hashing gregwar/captcha \ hyperf/validation hyperf/translation hyperf/constants phper666/jwt-auth:~2.0.1 hyperf/config-aliyun-acm hyperf/json-rpc hyperf/rpc-server

illuminate/hashing laravel的hash元件
gregwar/captcha 驗證碼元件
hyperf/validation 官方驗證元件
hyperf/translation 多種語言元件
hyperf/translation 官方列舉類
phper666/jwt-auth JWT元件
hyperf/config-aliyun-acm 阿雲配置中心元件
hyperf/json-rpc hyperf/rpc-server 官方RPC服務元件

釋出元件配置

php bin/hyperf.php jwt:publish --config
php bin/hyperf.php vendor:publish hyperf/translation
php bin/hyperf.php vendor:publish hyperf/validation

配置專案

編輯專案根目錄的.env檔案,配置好資料庫和redis

APP_NAME=user_center

DB_DRIVER=mysql
DB_HOST=192.168.137.200
DB_PORT=3306
DB_DATABASE=user_center
DB_USERNAME=root
DB_PASSWORD=123456
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
DB_PREFIX=

REDIS_HOST=192.168.137.200
REDIS_AUTH=(null)
REDIS_PORT=6379
REDIS_DB=0

開發環境下的熱更新

下載https://github.com/ha-ni-cc/hyperf-watch裡的watch檔案到專案根目錄,然後啟動只需要執行php watch,這樣我們修改檔案,就會自動重啟程式

資料表設計

建立表

目前我們只建立了兩個表user和wx_user詳見遷移檔案
user表
https://github.com/donjan-deng/la-user-cen...
wx_user表
https://github.com/donjan-deng/la-user-cen...

資料填充

我們初始化了一個管理員帳號
https://github.com/donjan-deng/la-user-cen...

執行遷移

建立資料庫

php bin/hyperf.php migrate

填充資料

php bin/hyperf.php db:seed

有關資料遷移的使用方法可參閱官方文件https://hyperf.wiki/#/zh/db/migration

專案原始碼

專案原始碼已釋出到github https://github.com/donjan-deng/la-user-cen...

部落格:《PHP 微服務練兵》系列教程

相關文章