PHP+Go 開發仿簡書,實戰高併發高可用微服務架構 雲盤無mi
2023-01-05由 上山的人鄧燎 發表于 農業
簡書怎麼發帖子
PHP+Go 開發仿簡書,實戰高併發高可用微服務架構 雲盤無mi
下栽地止:www。ukoou。com/resource/1308/mk-php-go-wfw
PHP 8。1 提供的 10 大功能
列舉
Fiber(纖維)
never 返回型別
readonly 屬性
final 類常量
新的 array_is_list() 函式
新的 fsync() 和 fdatasync() 函式
對字串鍵陣列解包的支援
$_FILES 新的用於目錄上傳的 full_path 鍵
新的 IntlDatePatternGenerator 類
1。 列舉
PHP 8。1 添加了對列舉的支援,簡寫為 enum 。它是一種逐項型別,包含固定數量的可能值。請參閱以下程式碼片段以瞭解如何使用列舉。
<?php
/**
* Declare an enumeration。
* It can also contain an optional ‘string’ or ‘int’ value。 This is called backed Enum。
* Backed enums (if used) should match the following criteria:
* - Declare the scalar type, whether string or int, in the Enum declaration。
* - All cases have values。
* - All cases contain the same scalar type, whether string or int。
* - Each case has a unique value。
*/
enum UserRole: string {
case ADMIN = ‘1’;
case GUEST = ‘2’;
case WRITER = ‘3’;
case EDITOR = ‘4’;
}
/**
* You can access a case by using
* the ‘::’ scope resolution operator。
* And, to get the name of the enum case, you
* can use the ‘->’ followed by the attribute ‘name’。
*/
echo UserRole::WRITER->name;
/**
* To get the value of the enum case, you can
* use the ‘->’ followed by the attribute ‘value’。
*/
echo UserRole::WRITER->value;
?>
基礎篇
瞭解大部分陣列處理函式
字串處理函式 區別 mb_ 系列函式
& 引用,結合案例分析
== 與 === 區別
isset 與 empty 區別
全部魔術函數理解
static、$this、self 區別
private、protected、public、final 區別
OOP 思想
抽象類、介面 分別使用場景
Trait 是什麼東西
echo、print、print_r 區別 (區分出表示式與語句的區別)
__construct 與 __destruct 區別
static 作用(區分類與函式內)手冊 、SOF
__toString () 作用
單引號’與雙引號” 區別
常見 HTTP 狀態碼,分別代表什麼含義
301 什麼意思 404 呢?
進階篇
Autoload、Composer 原理 PSR-4 、原理
Session 共享、存活時間
異常處理
如何 foreach 迭代物件
如何陣列化操作物件 $obj [key];
如何函式化物件 $obj (123);
yield 是什麼,說個使用場景 yield
PSR 是什麼,PSR-1, 2, 4, 7
如何獲取客戶端 IP 和服務端 IP 地址
客戶端 IP
服務端 IP
瞭解代理透傳 實際 IP 的概念
如何開啟 PHP 異常提示
PHP-Parse 是分析 PHP 程式碼生成 AST 的庫,分析出可讀性很高的物件資料結構,方便後續的更新和遍歷。
PHP-Parse 的主要作用是修改原有程式碼(比如插入自定義的程式碼片段),生成新的代理類 。框架內生成代理類,處理注入有用到,比如 Hyperf
的
DI 元件利用反射和 PHP-Parse 實現了注入。
AST 的簡單介紹 具體搜尋,資料很多,講得很好
比如下面 PHP 程式碼會被解析成
<?php
namespace NameSpace;
class SomeClass
{
protected function echo()
{
echo ‘Hello’;
}
}
array(
0: Stmt_Namespace(
name: Name(
parts: array(
0: NameSpace
)
)
stmts: array(
0: Stmt_Class(
attrGroups: array(
)
flags: 0
name: Identifier(
name: SomeClass
)
extends: null
implements: array(
)
stmts: array(
0: Stmt_ClassMethod(
attrGroups: array(
)
flags: MODIFIER_PROTECTED (2)
byRef: false
name: Identifier(
name: echo
)
params: array(
)
returnType: null
stmts: array(
0: Stmt_Echo(
exprs: array(
0: Scalar_String(
value: World
)
)
)
)
)
)
)
)
)
)