I'm always excited to take on new projects and collaborate with innovative minds.

Phone

+20 115 052 9992

Website

https://ibrahimahmed.online/

Social Links

مستقبل PHP 8.4: إزاي الـ Property Hooks هتغير طريقة كتابتنا للكود

مستقبل PHP 8.4: إزاي الـ Property Hooks هتغير طريقة كتابتنا للكود لو كنت مبرمج PHP بقالك فترة، أكيد زهقت من كتابة الـ Getters والـ Setters التقليدية. كل ما تعمل

مستقبل PHP 8.4: إزاي الـ Property Hooks هتغير طريقة كتابتنا للكود
Reading Count: 45

مستقبل PHP 8.4: إزاي الـ Property Hooks هتغير طريقة كتابتنا للكود

لو كنت مبرمج PHP بقالك فترة، أكيد زهقت من كتابة الـ Getters والـ Setters التقليدية. كل ما تعمل Class جديد، تلاقي نفسك بتكتب 20 أو 30 سطر كود عشان مجرد "تغليف" (Encapsulation) بسيط للبيانات. الموضوع ده مش بس ممل، ده كمان بيخلي الكود "منفوخ" (Boilerplate Code) ومحتاج مجهود عشان تقراه وتفهمه. الخبر الحلو إن PHP 8.4 جاية عشان تحل المشكلة دي جذرياً بميزة عبقرية اسمها Property Hooks.

إيه هي الـ Property Hooks في PHP 8.4؟

ببساطة، الـ Property Hooks بتسمحلك تعمل "تحكم" في القيمة اللي بتدخل أو بتخرج من الـ Property مباشرة، من غير ما تضطر تكتب الدوال التقليدية زي getSomething() أو setSomething(). الفكرة إنك بتقدر تعرف get و set كـ Hooks جوه الـ Property نفسها. ده معناه كود أنظف، أسرع، وأسهل في الصيانة.

المشكلة اللي بنواجهها حالياً (قبل PHP 8.4)

دلوقتي، عشان تعمل منطق بسيط زي إنك تخلي اسم المستخدم دايماً بحروف كبيرة (Uppercase)، كنت بتضطر تعمل حاجة شبه دي:


class User {
    private string $name;

    public function getName(): string {
        return strtoupper($this->name);
    }

    public function setName(string $name): void {
        $this->name = trim($name);
    }
}

تخيل لو عندك 10 خواص (Properties)، الكود بتاعك هيتضاعف حجمه. ده غير إن استخدام الدوال بيخليك تنادي $user->getName() بدل ما تستخدم $user->name بشكل مباشر، وده بيقلل من جمالية الكود.

الحل السحري مع الـ Property Hooks

مع PHP 8.4، الكود اللي فوق ده هيتحول لحاجة عبقرية وأنيقة جداً. شوف الفرق:


class User {
    public string $name {
        get => strtoupper($this->name);
        set(string $value) {
            $this->name = trim($value);
        }
    }
}

هنا إحنا استخدمنا الـ Hooks عشان نتحكم في العملية. كلمة get بتحدد إزاي القيمة هتتجهز قبل ما تترجع، و set بتحدد إيه اللي يحصل قبل ما القيمة تتخزن. والأجمل إنك بتتعامل مع $user->name كأنها خاصية عادية جداً.

مميزات استخدام Property Hooks في تطوير الويب

  • تقليل الكود (Boilerplate Reduction): هتودع مئات السطور اللي مالهاش لازمة.
  • تحسين القراءة (Readability): الكود بقى واضح ومباشر، المنطق مربوط بالخاصية نفسها.
  • التحكم في النوع (Type Safety): بتقدر تتأكد من سلامة البيانات قبل ما توصل للخاصية.
  • التوافق (Backward Compatibility): الميزة دي بتخلي الـ PHP أقرب للغات حديثة زي C# و Kotlin في التعامل مع الخصائص.

نصيحة من أخ لمبرمجين PHP

التطوير في لغة PHP مش مجرد "تحديثات"، ده تغيير في فلسفة البرمجة. نصيحتي ليك، ما تكتفيش بس إنك تعرف الميزة، جربها بنفسك! نزل نسخة التجربة (Beta) من PHP 8.4، افتح مشروع صغير، وحاول تحول الـ Getters والـ Setters الموجودة فيه للـ Property Hooks. الممارسة هي اللي هتخليك مبرمج محترف مش مجرد حد بيعرف يكتب syntax.

خليك دايماً متابع التحديثات، لأن PHP بقت لغة قوية جداً ومنافسة، والمهارات اللي بتكتسبها دلوقتي هي اللي هتحطك في مكانة تانية في سوق العمل.


Share

Related posts

Jul 25, 2026 • 1 min read
Reading Count: 4
التشفير المتقدم في PHP: إزاي تحمي بيانات مستخدميك باستخدام Sodium وتنسى الطرق القديمة؟

التصنيف: تطوير الـ ويب (Web Development) وشروحات برمجية (Tutorials) التشفير المتقدم في PHP: إزاي تحم...

Jul 25, 2026 • 1 min read
Reading Count: 1
عنوان تلقائي

يا هلا بيك يا بشمهندس! لو بتكتب سكربتات PHP طويلة الأمد (Long-running scripts)، زي الـ Daemon proces...

Jul 24, 2026 • 1 min read
Reading Count: 9
أخطاء شائعة في كتابة الـ Regular Expressions (Regex) في PHP وكيف تتجنبها

معرفات الأقسام: 1, 3, 7 أخطاء شائعة في كتابة الـ Regular Expressions (Regex) في PHP وكيف تتجنبها يا...