Intro
Engine Architecture - 架構
Zend engine Architecture (Reference)
Web Ecosystem - 生態系
Installation - 安裝
PHP - Installation and Configuration
Ubuntu APT可以參考Debian系列官網說明:
PHP - Debian GNU/Linux installation notes
LNMP/LEMP (Linux+Nginx+MySQL+PHP) Stack安裝可以參考:
[Linux] Web Service環境安裝建置 by LNMP – Ubuntu 16.04
CLI 預設版本切換
$ sudo update-alternatives --set php /usr/bin/phpX.X
Quick Start
TBC
常用函數
TBC
PHP Package 套件管理
Composer - PHP Package 管理工具
Packagist - PHP Composer Repository
PHP生態系主要使用Composer作為軟體套件管理系統,並預設搭配 Packagist 作爲套件庫。
Namespace 規則:{Vendor name}/{Package name}
Logging
TBC
Depolyment - 部署
TBC
Template Engine
PHP 本身就是 Script Language,現行各大 Framework 有些會包含 Template Engine,或者純粹提供 View 管理框架搭配原生 PHP Script Language 開發。
歷史上獨立的 PHP Template Engine 如 Smarty
Web Framework - 框架
Concurrency - 並發/並行
PHP Web 主流是使用 PHP-FPM (PHP FastCGI 進程管理器) 來給 Web server 界接,實現 Request 高併發處理。
Multi-processing
原生可啟用的 module 為 PCNTL ,但不支援non-Unix platforms (Windows)。
yidas/php-worker-dispatcher: PHP multi-processing task dispatcher with managing workers
Multi-threading
原生不支援,可另外安裝官方支持的 pthreads
PHP Versions - PHP 版本比較
PHP Release history - Wikipedia
PHP 8
PHP: PHP 8.0.0 Release Announcement
Type declarations - #[ReturnTypeWillChange]
PHP 7
PHP: PHP 7.0.0 Release Announcement
PHP 5
Appendix
HTTP Client
最主流是使用 Guzzle 套件開發:
Guzzle, PHP HTTP client - https://docs.guzzlephp.org/
Built-in web server (測試用途)
PHP 提供 Built-in web server 作為測試用途,爲 single-threaded 有阻塞問題。