PHP – مفهوم Namespaces
Namespaceها در PHP چیستند؟ (What are PHP Namespaces?)
Namespaceها مشکلات مختلفی را حل میکنند:
- آنها به سازماندهی بهتر کمک میکنند با گروهبندی کلاسهایی که با هم برای انجام یک وظیفه همکاری میکنند.
- آنها اجازه میدهند تا از یک نام برای بیش از یک کلاس استفاده شود.
به عنوان مثال، شما ممکن است یک مجموعه کلاس داشته باشید که یک جدول HTML را توصیف کند، مانند Table
، Row
و Cell
و همچنین یک مجموعه کلاس دیگر که مبلمان را توصیف کند، مانند Table
، Chair
و Bed
. Namespaceها میتوانند برای سازماندهی این کلاسها به دو گروه مختلف و همچنین جلوگیری از تداخل دو کلاس Table
و Table
استفاده شوند.
اعلان یک Namespace (Declaring a Namespace)
Namespaceها در ابتدای یک فایل با استفاده از کلمه کلیدی namespace
اعلام میشوند:
نحو (Syntax)
اعلان یک namespace به نام Html
:
توجه: یک اعلان namespace باید اولین چیز در فایل PHP باشد. کد زیر نامعتبر خواهد بود:
ثوابت (constants)، کلاسها و توابعی که در این فایل اعلام میشوند به namespace Html
تعلق خواهند داشت:
مثال (Example)
ایجاد یک کلاس Table
در namespace 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>
Namespaceهای تو در تو (Nested Namespaces)
برای سازماندهی بیشتر، میتوان از namespaceهای تو در تو استفاده کرد:
نحو (Syntax)
اعلان یک namespace به نام Html
داخل یک namespace به نام Code
:
<?php
namespace CodeHtml;
?>
استفاده از Namespaceها (Using Namespaces)
هر کدی که پس از یک اعلان namespace میآید، داخل namespace عمل میکند، بنابراین کلاسهایی که به namespace تعلق دارند میتوانند بدون هیچ پسوندی نمونهسازی شوند. برای دسترسی به کلاسها از خارج از یک namespace، کلاس باید دارای namespace پیوست شده به آن باشد.
مثال (Example)
استفاده از کلاسها از namespace Html
:
<?php
$table = new HtmlTable();
$row = new HtmlRow();
?>
وقتی تعداد زیادی کلاس از یک namespace استفاده میشود، استفاده از کلمه کلیدی namespace
آسانتر است:
مثال (Example)
نام مستعار Namespace (Namespace Alias)
مفید است که به یک namespace یا کلاس یک نام مستعار بدهید تا نوشتن آن آسانتر شود. این کار با استفاده از کلمه کلیدی use
انجام میشود:
مثال (Example)
دادن یک نام مستعار به یک namespace:
مثال (Example)
دادن یک نام مستعار به یک کلاس:
<?php
use HtmlTable as T;
$table = new T();
?>
خلاصه
Namespaceها به سازماندهی کد کمک میکنند و از تداخل نام کلاسها جلوگیری میکنند. با استفاده از کلمات کلیدی namespace
و use
میتوان از namespaceها بهرهبرداری کرد و نام مستعار برای آنها تعریف کرد تا کدنویسی راحتتر شود.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام