namespace در PHP یک مفهوم مهم برای سازماندهی و جلوگیری از تداخل نام‌ها در کلاس‌ها، توابع و ثابت‌ها است. در زیر به توضیح مختصر و جامعی از namespace می‌پردازیم:

چیستی namespace

  • namespace به شما امکان می‌دهد تا کلاس‌ها، توابع و ثابت‌هایی با نام یکسان داشته باشید بدون اینکه با یکدیگر تداخل کنند.

  • این ویژگی در PHP 5.3 معرفی شد و به برنامه‌نویسان کمک می‌کند تا کدهای خود را به‌صورت منظم و سازمان‌یافته بنویسند.

نحوه تعریف namespace

  • برای تعریف یک namespace، باید از کلمه کلیدی namespace در ابتدای فایل PHP استفاده کنید. این دستور باید اولین خط کد در فایل باشد (به استثنای دستور declare).

  • مثال:

    php
    namespace MyProject;

مزایای namespace

  • سازماندهی: namespace به شما کمک می‌کند تا کدهای خود را به‌صورت سلسله‌مراتبی سازماندهی کنید.

  • جلوگیری از تداخل: با استفاده از namespace می‌توانید کلاس‌ها یا توابعی با نام یکسان داشته باشید بدون اینکه با یکدیگر تداخل کنند.

استفاده از namespace

  • برای استفاده از یک کلاس یا تابع در namespace دیگر، می‌توانید از نام کامل آن استفاده کنید:

    php
    new \MyProject\MyClass();
  • یا از کلمه کلیدی use برای کوتاه کردن مسیر:

    php
    use MyProject\MyClass;
    $obj = new MyClass();

مثال عملی

فرض کنید دو کلاس با نام User دارید، یکی برای کاربران وب‌سایت و دیگری برای کاربران اپلیکیشن موبایل. با استفاده از namespace می‌توانید این دو کلاس را به‌صورت زیر تعریف کنید:

php
// فایل WebUser.php namespace Web; class User {}
// فایل MobileUser.php namespace Mobile; class User {}

اکنون می‌توانید از هر دو کلاس بدون تداخل استفاده کنید:

php
$webUser = new \Web\User();
$mobileUser = new \Mobile\User();

با این توضیحات، باید بتوانید مفهوم namespace را به‌راحتی درک کنید و از آن در پروژه‌های PHP خود استفاده کنید.