"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > دليل المبتدئين للترويج لعقارات البناء بلغة PHP

دليل المبتدئين للترويج لعقارات البناء بلغة PHP

تم النشر بتاريخ 2024-11-08
تصفح:549

A Beginner’s Guide to Constructor Property Promotion in PHP

قدم PHP 8 ميزة رائعة تسمى ترويج خاصية المُنشئ. إذا كنت جديدًا في لغة PHP أو البرمجة بشكل عام، فقد يبدو الأمر معقدًا بعض الشيء. لكن لا تقلق! سترشدك هذه المدونة إلى تعريفها وسبب فائدتها وكيف يمكنك استخدامها مع الكثير من أمثلة البرمجة. هيا بنا نبدأ!

ما هو الترويج لعقارات البناء؟

قبل PHP 8، كان إنشاء فئة ذات خصائص وتهيئتها في المُنشئ يتطلب قدرًا كبيرًا من التعليمات البرمجية المتكررة. من خلال ترقية خاصية المُنشئ، يعمل PHP 8 على تبسيط هذه العملية من خلال السماح لك بالإعلان عن خصائص الفئة وتهيئتها مباشرة في معلمات المُنشئ.

لماذا يجب أن تهتم؟

لا يقتصر الترويج لملكية المُنشئ على حفظ بضعة أسطر من التعليمات البرمجية فحسب، بل يتعلق بجعل التعليمات البرمجية الخاصة بك أكثر وضوحًا وأسهل في القراءة والصيانة. يعد هذا مفيدًا بشكل خاص للمبتدئين الذين قد يجدون الطريقة التقليدية لكتابة المنشئات أمرًا شاقًا بعض الشيء.

الطريقة التقليدية مقابل الترويج لملكية المُنشئ

لنبدأ بمقارنة الطريقة التقليدية لكتابة الفئات والمنشئات مع الطريقة الجديدة المقدمة في PHP 8.

قبل PHP 8 (الطريقة التقليدية)

class Car {
    public string $make;
    public string $model;
    public int $year;

    public function __construct(string $make, string $model, int $year) {
        $this->make = $make;
        $this->model = $model;
        $this->year = $year;
    }
}

$car = new Car('Toyota', 'Corolla', 2020);

في هذا المثال، علينا أن نعلن عن الخصائص ($make، $model، $year) ثم نقوم بتعيينها داخل المنشئ. إنه كثير التكرار، خاصة عند التعامل مع الفئات التي تحتوي على العديد من الخصائص.

مع PHP 8 (ترويج ملكية المُنشئ)

class Car {
    public function __construct(
        public string $make,
        public string $model,
        public int $year
    ) {}
}

$car = new Car('Toyota', 'Corolla', 2020);

من خلال الترويج لملكية المُنشئ، يمكنك الإعلان عن الخصائص وتعيينها في معلمات المُنشئ. والنتيجة هي تعريف فئة أكثر إيجازا وقابلة للقراءة.

المزيد من أمثلة الترميز

لفهم قوة الترويج لملكية المُنشئ بشكل كامل، دعنا نستكشف المزيد من الأمثلة في سيناريوهات مختلفة.

مثال 1: تحديد فئة الكتاب

class Book {
    public function __construct(
        public string $title,
        public string $author,
        public int $pages,
        public bool $isAvailable = true
    ) {}
}

$book = new Book('1984', 'George Orwell', 328);
echo $book->title; // Output: 1984
echo $book->isAvailable; // Output: 1 (true)

في فئة الكتاب هذه، تحتوي الخاصية isAvailable على قيمة افتراضية وهي true. إذا لم تحدد هذه المعلمة عند إنشاء مثيل للفئة، فسيتم تعيينها تلقائيًا إلى صحيح.

مثال 2: إنشاء فئة الطلب

class Order {
    public function __construct(
        public int $orderId,
        public string $product,
        public float $price,
        public string $status = 'pending'
    ) {}
}

$order = new Order(123, 'Laptop', 999.99);
echo $order->status; // Output: pending

$order2 = new Order(124, 'Smartphone', 599.99, 'shipped');
echo $order2->status; // Output: shipped

هنا، تتضمن فئة الطلب خاصية الحالة ذات القيمة الافتراضية المعلقة. ومع ذلك، يمكنك تجاوز هذه القيمة من خلال توفير حالة مختلفة عند إنشاء الطلب.

مثال 3: إنشاء فئة ملف تعريف المستخدم

class UserProfile {
    public function __construct(
        public string $username,
        public string $email,
        public int $age,
        private string $password,
        protected string $role = 'user'
    ) {}

    public function getPassword(): string {
        return $this->password;
    }
}

$userProfile = new UserProfile('johndoe', '[email protected]', 25, 'secret');
echo $userProfile->username; // Output: johndoe
echo $userProfile->getPassword(); // Output: secret
echo $userProfile->role; // Error: Cannot access protected property

في فئة UserProfile، تكون خاصية كلمة المرور خاصة، مما يعني أنه لا يمكن الوصول إليها مباشرة خارج الفصل. بدلاً من ذلك، يمكنك استخدام طريقة getPassword() لاستردادها. خاصية الدور محمية، لذلك لا يمكن الوصول إليها إلا داخل الفئة نفسها أو عن طريق الفئات الفرعية.

مثال 4: فئة منتج مع ترويج ملكية المُنشئ

class Product {
    public function __construct(
        public string $name,
        public float $price,
        public int $stock = 0
    ) {}
}

$product = new Product('Laptop', 999.99, 10);
echo $product->name; // Output: Laptop
echo $product->stock; // Output: 10

يوضح هذا المثال كيف يمكنك استخدام ترويج خاصية المُنشئ لإنشاء فئة منتج تتضمن قيمة افتراضية لخاصية المخزون.

فوائد الترويج لملكية البناء

  1. ** رمز مرجعي أقل: ** لا تحتاج إلى كتابة تعليمات برمجية متكررة للإعلان عن الخصائص وتهيئتها.

  2. زيادة إمكانية القراءة: تعريف الفصل أكثر إيجازًا وأسهل للفهم في لمحة.

  3. تقليل الأخطاء: من خلال الجمع بين إعلان الخاصية والتهيئة، هناك مجال أقل للأخطاء.

خاتمة

يعد ترويج خاصية المُنشئ في PHP 8 ميزة قوية يمكنها تحسين طريقة كتابة الفصول الدراسية بشكل كبير. من خلال تقليل التعليمات البرمجية النمطية، وزيادة سهولة القراءة، وجعل التعليمات البرمجية الخاصة بك أكثر قابلية للصيانة، فهي ميزة سيقدرها كل من المطورين الجدد وذوي الخبرة.

سواء كنت تقوم بإنشاء مشروع صغير أو تطبيق كبير، سيساعدك Constructor Property Promotion على كتابة كود PHP أكثر وضوحًا وكفاءة. هيا، جربها في مشروعك القادم، واستمتع بفوائد هذه الميزة الرائعة!

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/asfiaaiman/a-beginners-guide-to-constructor-property-promotion-in-php-5p1?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3