قدم PHP 8 ميزة رائعة تسمى ترويج خاصية المُنشئ. إذا كنت جديدًا في لغة PHP أو البرمجة بشكل عام، فقد يبدو الأمر معقدًا بعض الشيء. لكن لا تقلق! سترشدك هذه المدونة إلى تعريفها وسبب فائدتها وكيف يمكنك استخدامها مع الكثير من أمثلة البرمجة. هيا بنا نبدأ!
قبل 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
يوضح هذا المثال كيف يمكنك استخدام ترويج خاصية المُنشئ لإنشاء فئة منتج تتضمن قيمة افتراضية لخاصية المخزون.
** رمز مرجعي أقل: ** لا تحتاج إلى كتابة تعليمات برمجية متكررة للإعلان عن الخصائص وتهيئتها.
زيادة إمكانية القراءة: تعريف الفصل أكثر إيجازًا وأسهل للفهم في لمحة.
تقليل الأخطاء: من خلال الجمع بين إعلان الخاصية والتهيئة، هناك مجال أقل للأخطاء.
يعد ترويج خاصية المُنشئ في PHP 8 ميزة قوية يمكنها تحسين طريقة كتابة الفصول الدراسية بشكل كبير. من خلال تقليل التعليمات البرمجية النمطية، وزيادة سهولة القراءة، وجعل التعليمات البرمجية الخاصة بك أكثر قابلية للصيانة، فهي ميزة سيقدرها كل من المطورين الجدد وذوي الخبرة.
سواء كنت تقوم بإنشاء مشروع صغير أو تطبيق كبير، سيساعدك Constructor Property Promotion على كتابة كود PHP أكثر وضوحًا وكفاءة. هيا، جربها في مشروعك القادم، واستمتع بفوائد هذه الميزة الرائعة!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3