PHP - ما هي مكانة اللغة وستساعد PHP8 على حل المشكلات الملحة (المفسد: IMHO لا)

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 ، ناقشنا باختصار ما سيكون جديدًا في PHP8. بعد التسجيل ، قررت كتابة مقال لصياغة أفكاري حول موقف PHP في التنمية الحديثة.

لنحدد بشكل عام ما هي اللغة التي تشغلها / تشغلها ، وأين تتحرك

في البداية ، تم وضع اللغة كأداة بسيطة ، والتي تحتوي على كل ما تحتاجه للويب .


من ناحية ، هذا صحيح: بدون مكتبات إضافية ، على سبيل المثال ، يمكنك استخراج معلمات طلب POST من المتغير superglobal $ _POST وإدراجها في الخلية باستخدام الوظائف المضمنة ، وهذا يبدو رائعًا.


من المهم جدًا أيضًا أن يبسط نموذج "مولود للموت" (على سبيل المثال ، في 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



    /**
     * @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