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

مستقبل 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

Jun 10, 2026 • 1 min read
Reading Count: 3
تشغيل Laravel على الـ Edge: السر وراء السرعة الفائقة مع Laravel Cloud و FrankenPHP

تشغيل Laravel على الـ Edge: السر وراء السرعة الفائقة مع Laravel Cloud و FrankenPHP يا أهلاً بيك يا ص...

Jun 10, 2026 • 1 min read
Reading Count: 3
دليلك الشامل عشان تبدأ رحلتك في تطوير الويب (Web Development)

دليلك الشامل عشان تبدأ رحلتك في تطوير الويب (Web Development) أكيد مريت باللحظة اللي كنت قاعد فيها ق...

Jun 10, 2026 • 1 min read
Reading Count: 3
دليلك الشامل لإتقان تطوير الويب (Web Development) ومواجهة تحديات البرمجة

دليلك الشامل لإتقان تطوير الويب (Web Development) ومواجهة تحديات البرمجة أهلاً بيك يا بطل في عالم ال...