mirror of
https://gitee.com/hyperf/hyperf.git
synced 2024-12-01 11:17:54 +08:00
c224ba6922
* v2.0.4 * Translate Co-authored-by: huangzhhui <huangzhwork@gmail.com>
1.3 KiB
1.3 KiB
編程須知
這裏收集各種通過 Hyperf 編程前應該知曉的知識點或內容點。
不能通過全局變量獲取屬性參數
在 PHP-FPM
下可以通過全局變量獲取到請求的參數,服務器的參數等,在 Hyperf
和 Swoole
內,都 無法 通過 $_GET/$_POST/$_REQUEST/$_SESSION/$_COOKIE/$_SERVER
等$_
開頭的變量獲取到任何屬性參數。
通過容器獲取的類都是單例
通過依賴注入容器獲取的都是進程內持久化的,是多個協程共享的,所以不能包含任何的請求唯一的數據或協程唯一的數據,這類型的數據都通過協程上下文去處理,具體請仔細閲讀 依賴注入 和 協程 章節。
項目部署
官方的 Dockerfile 已經完成了以下操作。
線上代碼部署時,請務必開啟 scan_cacheable
。
開啟此配置後,首次掃描時會生成代理類和註解緩存,再次啟動時,則可以直接使用緩存,極大優化內存使用率和啟動速度。因為跳過了掃描階段,所以會依賴 Composer Class Map
,故我們必須要執行 --optimize-autoloader
優化索引。
綜上,線上更新代碼,重啟項目前,需要執行以下命令
# 優化 Composer 索引
composer dump-autoload -o
# 生成代理類和註解緩存
php bin/hyperf.php