農林漁牧網

您現在的位置是:首頁 > 農業

PHP+Go 開發仿簡書,實戰高併發高可用微服務架構 雲盤無mi

2023-01-05由 上山的人鄧燎 發表于 農業

簡書怎麼發帖子

PHP+Go 開發仿簡書,實戰高併發高可用微服務架構 雲盤無mi

下栽地止:www。ukoou。com/resource/1308/mk-php-go-wfw

PHP+Go 開發仿簡書,實戰高併發高可用微服務架構 雲盤無mi

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