شی گرایی در php

شی گرایی در php

می توان گفت که برنامه نویسی شی گرا یا همان Object-Oriented Programming یک سبک یا الگو نوشتن کدهاست که به توسعه دهنده ها اجازه می دهد تا بخش های مشابه به هم را در مفهومی به اسم کلاس، گروه بندی نمایند.

در واقع این گروه بندی به برنامه نویسان کمک خواهد کرد که به مفهوم DRY یا همان Don’t Repeat Yourself بیشتر نزدیک گردند، مضاف بر اینکه کدهای آن ها بسیار برای نگهداری و تغییر راحت تر خواهد بود. (به این مفهوم easy-to-maintain گفته می شود).

یکی از مهم ترین مزیت های این سبک از کدنویسی، این می باشد که اگر قرار باشد تکه ای از داده های برنامه شما تغییر یابد، عموما لازم است فقط یک بخش در کدهای شما بروز رسانی گردد.

مهم ترین مزیت برنامه نویسی شی گرا که باعث شده است اکثر developer ها از آن استفاده کنند، شبیه سازی برنامه نویسی با مفاهیم دنیای واقعی است. در واقع شما مفاهیم بسیار پیچیده برنامه نویسی را می توانید با مفاهیم شی گرایی به مفاهیم جاری و قابل فهم در دنیا واقعی تبدیل کنید.

همین طور که می دانید، اطراف ما از اشیا مختلف تشکیل یافته است. هر کدام از آن ها خواصی دارند که آن را از شی مشابه خود، متفاوت می کنید. ضمن اینکه ارتباط بین اشیا با فرستادن پیام بین همدیگر برقرار می گردد.

هر شی می تواند رفتاری از خود بروز دهد که مختص همان شی می باشد. این مفاهیم باعث شد تا همه این ها در مفاهیم برنامه نویسی شی گرا استفاده شود.

در ادامه به طور مفصل در این مورد صحبت خواهد شد. در واقع برنامه نویسی با پیروی از الگوهای OOP ، یک روش برنامه نویسی است که در آن برنامه نویس، تمامی متغیرها و توابعی که بهم مرتبط می باشند را در قالب یک کلاس منفرد، سازمان دهی می کند.

مثل تمام الگوهای برنامه نویسی، این الگو نیز مزایا و معایب خود را دارد که در نوشتار نمی گنجد. به صورت کوتاه می توان گفت ممکن است که در پروژه های ساده و همین طور در سایز کوچک، استفاده از الگوی Procedural که بر مبنای استفاده از توابع می باشد، به صرفه تر باشد.

اما در پروژه هایی با ابعاد بزرگ و پیچیده، مسلما باید از الگوهای شی گرا در برنامه نویسی استفاده کرد چرا که هم باعث کاهش پیچیدگی کدها در آینده خواهد شد و هم نگهداری و عیب یابی آن به مراتب ساده تر از روش های برنامه نویسی رویه ای می باشد.

کلاس PHP چیست؟

یک کلاس به عنوان قالبی است که موجودیت‌های دنیای واقعی را نمایندگی می‌کند و به تعریف مشخصات و متدهای موجودیت می‌پردازد. در این بخش به بررسی آناتومی مقدماتی یک کلاس معمول PHP می‌پردازیم.

<?php
class Employee
{
  private $first_name;
  private $last_name;
  private $age;
  
  public function __construct($first_name, $last_name, $age)
  {
    $this->first_name = $first_name;
    $this->last_name = $last_name;
    $this->age = $age;
  }
 
  public function getFirstName()
  {
    return $this->first_name;
  }
 
  public function getLastName()
  {
    return $this->last_name;
  }
 
  public function getAge()
  {
    return $this->age;
  }
}
?>

مشخصات کلاس در PHP

مشخصات کلاس را می‌توان به صورت متغیرهایی تصور کرد که اطلاعاتی را در مورد شیء نگهداری می‌کنند. در مثال فوق به تعریف سه مشخصه نام (first_name)، نام خانوادگی (last_name) و سن (age) پرداختیم. در اغلب موارد مشخصات کلاس از طریق شیءهای وهله‌سازی شده مورد دسترسی قرار می‌گیرند.

این مشخصات به صورت خصوصی (private) هستند، یعنی دسترسی به آن‌ها صرفاً از درون کلاس میسر است. این امن‌ترین سطح دسترسی برای مشخصات است. ما در ادامه به بررسی سطوح مختلف دسترسی به مشخصات کلاس و متدها خواهیم پرداخت.

سازنده‌ها در کلاس‌های PHP

یک سازنده (constructor) متد خاصی در کلاس است که به طور خودکار هنگام وهله‌سازی از یک شیء ایجاد می‌شود. شیوه وهله‌سازی از اشیا را در بخش‌های بعدی خواهیم دید؛ اما در حال حاضر کافی است بدانیم که یک متد سازنده برای مقداردهی اولیه مشخصات شیء، هنگام ایجاد شدن آن مورد استفاده قرار می‌گیرد. می‌توان یک سازنده را از طریق تعریف کردن متد construct__ تعریف کرد.

متدهای کلاس‌های PHP

متدهای کلاس را می‌توان به صورت تابع‌هایی تصور کرد که کارهای خاصی را در ارتباط با شیءها انجام می‌دهند. در اغلب موارد از این متدها برای دسترسی و دستکاری مشخصات شیء و اجرای عملیات مرتبط استفاده می‌شود.

در مثال فوق متد getLastName را تعریف کرده‌ایم که نام خانوادگی مرتبط با شیء را باز می‌گرداند. بدین ترتیب تلاش کردیم تا توضیح مختصری در مورد ساختار کلاس در PHP ارائه کنیم. در بخش بعدی خواهیم دید که چگونه می‌توانیم شیءهایی را به صورت وهله‌هایی از کلاس Employee ایجاد کنیم.

افزودن دیدگاه جدید

متن ساده

  • تگ‌های HTML مجاز نیستند.
  • خطوط و پاراگراف‌ها بطور خودکار اعمال می‌شوند.
  • Web page addresses and email addresses turn into links automatically.