مساحات أسماء PHP
مساحات أسماء PHP
مساحات الأسماء عبارة عن محددات تحل مشكلتين مختلفتين:
- إنها تسمح بتنظيم أفضل من خلال تجميع الفئات التي تعمل معًا لأداء مهمة ما
- أنها تسمح باستخدام نفس الاسم لأكثر من فئة واحدة
على سبيل المثال ، قد يكون لديك مجموعة من الفئات التي تصف جدول HTML ، مثل الجدول والصف والخلية بينما يكون لديك أيضًا مجموعة أخرى من الفئات لوصف الأثاث ، مثل الطاولة والكرسي والسرير. يمكن استخدام مساحات الأسماء لتنظيم الفصول إلى مجموعتين مختلفتين مع منع اختلاط الفئتين الجدول والجدول.
التصريح عن معرف الهيكلة
يتم التصريح عن مساحات الأسماء في بداية الملف باستخدام namespace
الكلمة الأساسية:
بناء الجملة
قم بتعريف مساحة اسم تسمى Html:
namespace Html;
ملاحظة: يجب أن يكون namespace
التصريح هو أول شيء في ملف PHP. الكود التالي سيكون غير صالح:
<?php
echo "Hello World!";
namespace Html;
...
?>
ستنتمي الثوابت والفئات والوظائف المعلنة في هذا الملف إلى مساحة اسم Html :
مثال
أنشئ فئة جدول في مساحة اسم Html:
<?php
namespace Html;
class Table {
public $title = "";
public
$numRows = 0;
public function message() {
echo "<p>Table
'{$this->title}' has {$this->numRows} rows.</p>";
}
}
$table = new
Table();
$table->title = "My table";
$table->numRows = 5;
?>
<!DOCTYPE html>
<html>
<body>
<?php
$table->message();
?>
</body>
</html>
لمزيد من التنظيم ، من الممكن أن يكون لديك مساحات أسماء متداخلة:
بناء الجملة
قم بتعريف مساحة اسم تسمى Html داخل مساحة اسم تسمى Code:
namespace Code\Html;
استخدام مساحات الأسماء
أي كود يتبع namespace
التصريح يعمل داخل مساحة الاسم ، لذلك يمكن إنشاء مثيل للفئات التي تنتمي إلى مساحة الاسم دون أي مؤهلات. للوصول إلى الفئات من خارج مساحة الاسم ، يحتاج الفصل إلى إرفاق مساحة الاسم به.
مثال
استخدم الفئات من مساحة اسم Html:
$table = new Html\Table()
$row = new Html\Row();
عندما يتم استخدام العديد من الفئات من نفس مساحة الاسم في نفس الوقت ، فمن الأسهل استخدام namespace
الكلمة الأساسية:
مثال
استخدم الفئات من مساحة اسم Html دون الحاجة إلى مؤهل Html:
namespace Html;
$table = new Table();
$row = new Row();
Namespace الاسم المستعار
قد يكون من المفيد إعطاء مساحة اسم أو فئة اسمًا مستعارًا لتسهيل الكتابة. يتم ذلك باستخدام use
الكلمة الأساسية:
مثال
امنح مساحة اسم اسمًا مستعارًا:
use Html as H;
$table = new H\Table();
مثال
امنح الفصل اسمًا مستعارًا:
use Html\Table as
T;
$table = new T();