PHP - Was ist die Nische der Sprache und wird PHP8 helfen, drängende Probleme zu lösen (Spoiler: IMHO nicht)

class Number {
    private int|float $number;

    public function setNumber(int|float $number): void {
        $this->number = $number;
    }

    public function getNumber(): int|float {
        return $this->number;
    }
}

In einer der Ausgaben des Zinc Prod- Podcasts haben wir kurz besprochen, was in PHP8 neu sein würde. Nach der Aufnahme habe ich beschlossen, einen Artikel zu schreiben, um meine Gedanken zur Position von PHP in der modernen Entwicklung zu formulieren.

Lassen Sie uns allgemein bestimmen, welche Nische die Sprache besetzt / besetzt und wohin sie sich bewegt

Ursprünglich war die Sprache als einfaches Tool positioniert , das sofort alles enthält, was Sie für das Web benötigen .


Dies ist zum einen richtig: Ohne zusätzliche Bibliotheken können Sie beispielsweise die POST-Anforderungsparameter aus der superglobalen Variablen $ _POST extrahieren und mit den integrierten Funktionen in MySQL einfügen. Dies scheint großartig zu sein.


Es ist auch sehr wichtig, dass das Modell „Born to Die“ (zum Beispiel in PHP-Fpm) die Entwicklung zum Wahnsinn vereinfacht und vereinfacht: Sie müssen nicht wissen, welche Sperren, Deadlocks, Speicherlecks usw. Es ist nicht erforderlich, vor jeder Codezeile usw. zu schreiben.


Das Skript begann mit der Arbeit an einer eingehenden HTTP-Anfrage, arbeitete in einem separaten Prozess, ohne mit jemandem zu sprechen, und starb, wobei alles nach sich selbst gelöscht wurde. Sehr einfach zu programmieren. Die Eintrittsschwelle liegt nahe Null.


, : — .


, , . .



: , , 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



    /**
     * @Route("/blog")
     */
    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 .


" ", .


All Articles