آشنایی با نحوهٔ استفاده از کانستنت‌ها در متودولوژی OOP در زبان PHP

آشنایی با نحوهٔ استفاده از کانستنت‌ها در متودولوژی OOP در زبان PHP

از جمله معادل‌هایی که می‌توان برای واژهٔ Constant در نظر گرفت «ثابت» است و در توسعهٔ نرم‌افزار هم دیتایی که در حافظهٔ سیستم ذخیره شده و در عین حال قابل‌تغییر نباشد، Constant نامیده می‌شود. به طور کلی،‌ از جمله کاربردهای کانستنت‌ها می‌توان به ذخیرهٔ نام‌کاربری و رمزعبور دیتابیس و یا برخی تنظیمات پیکربندی سیستم اشاره کرد.

به منظور آشنایی با نحوهٔ تعریف و استفاده از کانستنت‌ها در شیئ‌گرایی، داخل پوشهٔ oop پروژه‌ای تحت عنوان constant ساخته و با مد نظر قرار دادن ساختار پروژه‌ای که در این دوره مورد استفاده قرار داده‌ایم، وارد پوشهٔ classes شده و فایلی به نام User.php ساخته و محتویات زیر را داخل آن می‌نویسیم:

<?php
namespace SokanAcademy;

class User
{
    const BASE_USER_GROUP_ID = 3;

    public function getBaseUserGroupId()
    {
        return self::BASE_USER_GROUP_ID;
    }
}

داخل بدنهٔ این کلاس،‌ به منظور تعریف کردن یک کانستنت از کیورد const استفاده کرده و نامی دلخواه برای آن در نظر گرفته‌ایم و در نهایت هم مقدار پیش‌فرض ۳ را بر آن انتخاب نموده‌ایم.

به خاطر داشته باشید معمولاً توسعه‌دهندگان زبان پی‌اچ‌پی برای آن که کانتسنت‌ها از متغیرها قابل‌تشخیص باشند، آن‌ها را با حروف بزرگ نوشته و به منظور جداسازی بخش‌های نام‌های چندقسمتی نیز از علامت _ استفاده می‌کنند. در عین، استفاده از حروف کوچک برای ساخت کانستنت نیز مجاز است اما بر خلاف متغیرها، مجاز به استفاده از علامت $ در ابتدای نام کانستنت نیستیم.

در ادامه، متدی تعریف کرده‌ایم به نام ()getBaseUserGroupId که این وظیفه را دارا است تا مقدار کانستنت موجود را ریترن کند. همان‌طور که ملاحظه می‌شود، به منظور دستیابی به کانستنتی که داخل بدنهٔ‌ کلاسی که در آن قرار داریم تعریف شده است، می‌باید دستور self را نوشته سپس علائم :: را درج نموده و در نهایت نام کانستنت مد نظر خود را نوشت. حال به منظور تست این کلاس، وارد فایل index.php شده و آن را به صورت زیر تکمیل می‌کنیم:

<?php
ini_set('display_errors', '1');
require_once 'vendor/autoload.php';

$user = new SokanAcademy\User();

echo $user::BASE_USER_GROUP_ID;
echo "\n";
echo $user->getBaseUserGroupId();

پس از ساخت یک آبجکت از روی کلاس User، در خط هفتم با استفاده از دستور echo خودِ کانستنت BASE_USER_GROUP_ID را فراخوانی کرده‌ایم بدین شکل که پس از نام آبجکت user$ از علائم :: استفاده نموده سپس نام کانستنت مد نظر خود را نوشته‌‌ایم. همچنین در خط نهم متد ()getBaseUserGroupId را فراخوانی کرده‌ایم که این متد نیز وظیفهٔ ریترن کردن مقدار کانستنت مذکور را دارا است. چنانچه این فایل را در محیط کامندلاین اجرا کنیم، در خروجی خواهیم داشت:

3
3

حال داخل پوشهٔ classes فایلی به نام Author.php ساخته و آن را به صورت زیر تکمیل می‌کنیم:

<?php
namespace SokanAcademy;

class Author extends User
{
    public function showConstantFromParentClass()
    {
        return parent::BASE_USER_GROUP_ID;
    }
}

با توجه به این که کلاس Author فرزند کلاس User محسوب می‌شود، از همین روی به کلیهٔ ویژگی‌های کلاس والد من جمله کانستنت BASE_USER_GROUP_ID دسترسی داریم. داخل این کلاس متدی تعریف کرده‌ایم تحت عنوان ()showConstantFromParentClass که این وظیفه را دارا است تا مقدار کانستنت مذکور را ریترن کند؛ برای همین منظور، پس از نوشتن دستور return اقدام به درج کیورد parent کرده سپس علائم :: را قرار داده و در نهایت نام کانستنت مذکور را نوشته‌ایم. در عین حال، به جای نوشتن کیورد parent از نام کلاس User هم به صورت زیر می‌توانیم استفاده کنیم:

<?php
namespace SokanAcademy;

class Author extends User
{
    public function showConstantFromParentClass()
    {
        return User::BASE_USER_GROUP_ID;
    }
}

اما این در حالی است که استفاده از کیورد parent به مراتب بهتر است چرا که اگر در آینده به هر دلیلی نام کلاس User دستخوش تغییر گردد، دیگر نیازی به آپدیت کردن کدهای داخل این متد نخواهیم داشت. حال مجدد وارد فایل index.php شده و آن را به صورت زیر آپدیت می‌کنیم:

<?php
ini_set('display_errors', '1');
require_once 'vendor/autoload.php';

$user = new SokanAcademy\User();
$author = new SokanAcademy\Author();

echo $user::BASE_USER_GROUP_ID;
echo "\n";
echo $user->getBaseUserGroupId();
echo "\n";
echo $author->showConstantFromParentClass();

آبجکت جدیدی از روی کلاس Author ساخته سپس در خط دوازدهم تنها متد موجود داخل این کلاس تحت عنوان ()showConstantFromParentClass را فراخوانی کرده‌ایم و در صورتی که فایل فوق را مجدد اجرا کنیم، می‌بینیم که سه بار مقدار کانستنت BASE_USER_GROUP_ID در خروجی چاپ خواهد شد.

2-1
آشنایی با مفاهیم Class و Object در متودولوژی OOP
بهزاد مرادی
1398/03/06
2-2
آشنایی با مفاهیم Constructor و Destructor در OOP
بهزاد مرادی
1398/03/07
2-3
آشنایی با متدهای به اصطلاح Magic در زبان PHP
بهزاد مرادی
1398/03/07
2-4
آشنایی با مفهوم وراثت در زبان PHP
بهزاد مرادی
1398/03/07
2-5
آشنایی با مفهوم Access Modifier در زبان PHP
بهزاد مرادی
1398/03/07
2-6
آشنایی با مفهوم Interface در متودولوژی OOP
بهزاد مرادی
1398/03/08
2-7
آشنایی با کلاس‌های Abstract در زبان PHP
بهزاد مرادی
1398/03/08
2-8
آشنایی با مفاهیم Setter و Getter در متودولوژی OOP
بهزاد مرادی
1398/03/08
2-9
آشنایی با کاربردهای کلیدواژهٔ final در ساخت کلاس و متد در زبان PHP
بهزاد مرادی
1398/03/09
2-10
آشنایی با مفهوم Method Chaining در متودولوژی OOP
بهزاد مرادی
1398/03/09
2-11
آشنایی با مفهوم Dependency Injection در زبان PHP
بهزاد مرادی
1398/03/09
2-12
آشنایی با مفهوم Type Hinting در زبان PHP
بهزاد مرادی
1398/03/09
2-13
آشنایی با کاربردهای پراپرتی‌ها و متدهای Static در زبان PHP
بهزاد مرادی
1398/03/10
2-14
آشنایی با مفهوم Trait در زبان PHP
بهزاد مرادی
1398/03/10
2-15
آشنایی با نحوهٔ استفاده از کانستنت‌ها در متودولوژی OOP در زبان PHP
بهزاد مرادی
1398/03/10
2-16
آشنایی با نحوهٔ Clone کردن یک آبجکت در زبان PHP
بهزاد مرادی
1398/03/11
2-17
آشنایی با مفهوم Return Type Declaration در زبان PHP
بهزاد مرادی
1398/03/11
2-18
آشنایی با PHP Standard Library
بهزاد مرادی
1398/03/11
2-19
آشنایی با نحوهٔ مدیریت اِکسپشن‌ها در زبان PHP
بهزاد مرادی
1398/03/12
2-20
آشنایی با استاندارد کامنت‌گذاری PHPDoc
بهزاد مرادی
1398/03/12
کاربر میهمان

دوست گرامی شما به عنوان کاربر میهمان در سایت سکان آکادمی حضور دارید لطفاً برای ارسال دیدگاه ابتدا وارد حساب خود شوید

اگر login نکردی برامون ایمیلت رو بنویس: