class Number {
private int|float $number;
public function setNumber(int|float $number): void {
$this->number = $number;
}
public function getNumber(): int|float {
return $this->number;
}
}
Zinc Prodポッドキャストの問題の1つで、PHP8の新機能について簡単に説明しました。レコーディング後、私は、PHPの現代開発における位置づけについての考えをまとめるための記事を書くことにしました。
一般的に、言語が占める/占有するニッチな場所と、それがどこに移動するかを決定しましょう
当初、言語は単純なツールとして位置付けられていましたが、そのままではWebに必要なものがすべて揃っています。
一方、これは真実です。たとえば、追加のライブラリなしで、スーパーグローバル変数$ _POSTからPOSTリクエストパラメーターを抽出し、組み込み関数を使用してそれらをmysqlに挿入できます。これは素晴らしいようです。
「死ぬまでに生まれる」モデル(たとえば、php-fpm)が簡素化され、開発を狂気に単純化することも非常に重要です。ロック、デッドロック、メモリリークなどを知る必要はありません。コードの各行の前などに待つ必要はありません。
スクリプトは、着信HTTPリクエストの処理を開始し、別のプロセスで誰とも会話せずに動作し、その後すべてをクリアして終了しました。プログラムが非常に簡単です。進入しきい値がゼロに近い。
, : — .
, , . .
: , , SPA- .. php 10000 : php-fpm worker . 10000 .
, , ReactPHP, Swoole, Amphp, , PHP. , . , Swoole 5? ? (Go nodejs) php .
: Go , , . nodejs , async/await Promise. .
PHP- - ReactPHP? !
, , . API . GRPC- php 100500 . .
, PHP .
. , PHP, HTTP- — . API, — . .. io-bound PHP , nodejs/golang/etc.
. , , $_POST mysql_query. 99% , Composer, .., , , . .. - . Spring boot (java) : , .
, ?
— - (.. Golang ) . PHP — . , -, , , ..
-, . , . — . , , IDE , .
. , Collection
, Collection<User>
, .. "". .
PHP 8
. PHP8. , — JIT, .
JIT
. .. , , - , .
-? , … -, . , . , PHP . C, C++, Rust . .. PHP7.* PHP5 — . PHP , Ruby Python. PHP , - JIT PHP php-.
, , . - Async/await Promise.
PHP8? .
-, Symfony
public function list()
{
}
- :
<<Route("/blog")>>
public function list()
{
}
, , . - , . . . , , .
Union Types mixed
, |
class Number {
private int|float $number;
public function setNumber(int|float $number): void {
$this->number = $number;
}
public function getNumber(): int|float {
return $this->number;
}
}
. .
, PHP8 mixed .
Big deal? .
Weak maps
Weak maps — . ,
, - , . - .
, , .
-, PHP7.4 .
, — . :
PHP — () . , .
, — . PHP8 . , - nodejs/go .
" ", .