[PHP] PHP Web 開發環境與語言架構指南

Intro

PHP - Wikipedia

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 管理工具

composer.json - 放置於 Git 根目錄的 Composer 設定檔

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 - 框架

PHP frameworks - Wikipedia

[PHP] 框架概念與設計模式 – PHP各框架功能對照


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

PHP 5 - Wikipedia


Appendix

HTTP Client

最主流是使用 Guzzle 套件開發:
Guzzle, PHP HTTP client - https://docs.guzzlephp.org/

Built-in web server (測試用途)

PHP 提供 Built-in web server 作為測試用途,爲 single-threaded 有阻塞問題。

Leave a Reply

Your email address will not be published. Required fields are marked *