Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الكلمة المفتاحية use

جزء من قسم Object Oriented Programming في رحلة PHP على Coddy — الدرس 11 من 91.

كتابة مسار مساحة الاسم (namespace) الكامل في كل مرة تستخدم فيها فئة (class) قد يكون أمراً مملاً. تتيح لك الكلمة المفتاحية use استيراد فئة في الجزء العلوي من ملفك، بحيث يمكنك الإشارة إليها باسمها القصير.

بدلاً من كتابة \Blog\User بشكل متكرر، يمكنك استيراده مرة واحدة:

<?php
use Blog\User;

$user = new User("Alice");
echo $user->name;

عندما تحتاج إلى فئات من مساحات أسماء مختلفة بنفس الاسم، يمكنك إنشاء اسم مستعار باستخدام الكلمة المفتاحية as:

<?php
use Blog\User as BlogUser;
use Shop\User as ShopUser;

$blogger = new BlogUser("Alice");
$customer = new ShopUser("alice@example.com");

echo $blogger->name . "\n";
echo $customer->email . "\n";

الناتج:

Alice
alice@example.com

يمكنك أيضاً استيراد فئات متعددة من نفس مساحة الاسم (namespace) باستخدام عمليات الاستيراد المجمعة:

<?php
use Blog\{User, Post, Comment};

$user = new User("Alice");
$post = new Post("Hello World");

نقطة رئيسية: يجب أن يظهر بيان use بعد تصريح namespace (إن وجد) وقبل أي كود آخر. فهو يجعل الكود الخاص بك أكثر نظافة وأسهل في القراءة من خلال التخلص من مسارات مساحة الاسم المتكررة.

challenge icon

التحدي

سهل

لنقم بتنظيم تطبيق مراسلة باستخدام الكلمة المفتاحية use لاستيراد الفئات بشكل نظيف وتجنب كتابة مسارات مساحة الأسماء الكاملة في كل مكان.

ستقوم بإنشاء ثلاثة ملفات تعمل معًا:

  • Messaging/Email.php — قم بتعريف فئة Email داخل مساحة الأسماء Messaging. يجب أن تحتوي على خاصية public $address، ومنشئ (constructor) يقبل العنوان ويقوم بتعيينه، وتابع send() يعيد "Sending email to [address]".
  • Messaging/SMS.php — قم بتعريف فئة SMS داخل مساحة الأسماء Messaging. يجب أن تحتوي على خاصية public $phone، ومنشئ يقبل رقم الهاتف ويقوم بتعيينه، وتابع send() يعيد "Sending SMS to [phone]".
  • main.php — قم بتضمين كلا ملفي الفئات، ثم استخدم الكلمة المفتاحية use لاستيراد كلتا الفئتين. أنشئ كائن Email بالعنوان "alice@example.com" وكائن SMS بالهاتف "555-1234". اطبع نتيجة استدعاء send() لكل كائن (كل منهما في سطر منفصل).

في main.php، بدلاً من كتابة new \Messaging\Email(...)، ستقوم باستيراد الفئات في الأعلى باستخدام عبارات use بحيث يمكنك ببساطة كتابة new Email(...) و new SMS(...).

جرّب بنفسك

<?php
// تضمين ملفات الفئات (class files)
require_once 'Messaging/Email.php';
require_once 'Messaging/SMS.php';

// TODO: استخدم الكلمة المفتاحية 'use' لاستيراد كلا الفئتين من مساحة الأسماء Messaging
// يتيح لك هذا كتابة 'new Email(...)' بدلاً من 'new \Messaging\Email(...)'


// TODO: قم بإنشاء كائن Email بالعنوان "alice@example.com"


// TODO: قم بإنشاء كائن SMS بالرقم "555-1234"


// TODO: اطبع نتيجة استدعاء الدالة send() لكل كائن (كل واحدة في سطر منفصل)

?>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Object Oriented Programming