آموزش شی گرایی در php

نویسنده: رضا حمیدی

آخرین ویرایش : 10 ماه قبل

آموزش شی گرایی در php

شی گرایی یکی از انواع ویژگی های زبان های برنامه نویسی است. OOP یا همان Object Oriented Programming نوعی از برنامه نویسی است که بر اساس شی یا همان object استوار است. از جمله مهمترین مشخصه های زبان های شی گرا می توان به کدهایی منظم و اصطلاحا تمیز، امکان نگهداری بیشتر و همینطور عیب یابی ساده‌تر اشاره کرد.

پی اچ پی یکی از زبان های برنامه نویسی شی گرا بوده و شما می توانید از کاربردها و مزیت های این زبان شی گرا به راحتی بهره‌مند شوید. در این مطلب قصد داریم به آموزش شی گرایی در php بپردازیم و در مورد آن توضیحاتی ارائه کنیم. با ما همراه باشید.

آموزش شی گرایی در php، مزایاآموزش شی گرایی در php، مزایا

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

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

  1. می توانیم کدها را به بخش ها و قطعه های کوچکتر تقسیم کنیم.
  2. مدیریت و سازماندهی کدهای نوشته شده بهتر و راحت تر انجام می شود.
  3. لازم نیست که کدهای تکراری دوباره و دوباره توشته شوند.
  4. می توانید به راحتی از کدهای قبلی تان هم استفاده کنید.
  5. امنیت آن کاملا مناسب است.
  6. امکان عیب یابی و پیدا کردن اشکال ها به ساده‌ترین شکل ممکن وجود دارد.

آموزش شی گرایی در php: مفاهیم اولیه

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

  1. کلاس (class)
  2. شی (Object)
  3. متغیرهای عضو (Member Variable)
  4. تابع های عضو (Member Function)
  5. وراثت (Inheritance)
  6. کلاس والد (Parent Class)
  7. کلاس فرزند (Child Class)
  8. چندریختی (Polymorphism)
  9. سربارگذاری (Overloading)
  10. انتزاع داده یا تجرید دیتا (Data Abstraction)
  11. اینترفیس (Interface)
  12.  کپسوله سازی (Encapsulation)
  13.  توابع سازنده (Constructor)
  14. تابع های مخرب (Destructor)

در ادامه آموزش شی گرایی در php به معرفی و بررسی این مفاهیم می پردازیم.

1. کلاس (class)

 کلاس ها در شی گرایی داده هایی هستند که به وسیله خود برنامه نویس تعریف می شوند. هر کلاس می تواند تابع ها و همینطور داده های لوکال (محلی) داشته باشد. هر کلاس می تواند در نقش یک الگو به منظور ساخت نمونه های مختلف و متعدد از یک شی یا کلاس- مورد استفاده قرار گیرد.

2. شی (Object)

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

3. متغیرهای عضو (Member Variable)

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

4. تابع های عضو (Member Function)4. تابع های عضو (Member Function)

تابع های عضو به توابعی گفته می شود که در داخل یک کلاس تعریف شده اند. از این تابع ها می توانیم برای این که به داده های شی دستری پیدا کنیم بهره ببریم.

5. وراثت (Inheritance)

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

6. کلاس والد (Parent Class)

کلاس والد کلاسی است که سایر کلاس ها می توانند از آن ارث ببرند. نام های دیگری که برای این نوع کلاس مورد استفاده قرار کی گیرند عبارت هستند از: فوق کلاس و همینطور کلاس پایه.

7. کلاس فرزند (Child Class)

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

8. چندریختی (Polymorphism)

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

9. سربارگذاری (Overloading)

سربارگذاری هم به عنوان یک نوع چندریختی شناخته میشود. در سربارگذاری همه یا تعدادی از عملگرها با توجه به نوع ارگومان هایی که دارند می توانند به شکل های مختلفی پیاده‌سازی شوند. حتی تابع های مشابه هم امکان این را دارند که به وسیله اجراهای مختلف از سربارگذاری استفاده کنند.

10. انتزاع داده یا تجرید دیتا (Data Abstraction)

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

11. اینترفیس (Interface)

از نظر تئوری و عملکرد اینترفیس مشابه با انتزاع کار می کند. اما تفاوتی که اینترفیس با انتزاع دارد این است که متدهای آن فاقد بدنه هستند. به علاوه اگر کلاسی یک اینترفیس را ایمپلیمنت کند (تکمیل کند) ملزم است تا کلیه متدهای کلاس والد را بازنویسی نماید. شباهت این دو به هم را هم می توان در این که هیچ یک قادر به ایجاد آبجکت نیستند جستجو کرد.

12. کپسوله سازی (Encapsulation)

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

13. توابع سازنده (Constructor)

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

14. تابع های مخرب (Destructor)

این تابع ها نقطه مقابل توابع سازنده هستند. آنها وقتی که می خواهیم یک شی را از یک کلاس حذف کنیم یا ان را از دامنه کلاس خارج کنیم به شکلی اتوماتیک فرخوانی می شوند.

چطور در php یک کلاس تعریف کنیم؟چطور در php یک کلاس تعریف کنیم؟

در این بخش از آموزش شی گرایی در php قصد داریم باهم بررسی کنیم که چطور می توانیم در php یک کلاس ایجاد کنیم. این کار به کمک یک کلمه کلیدی انجام می گیرد که همان class است. پس از این کلمه کلیدی شما می بایست نام کلاس را تایپ کرده و سایر دستورها را در یک جفت آکولاد ({})  قرار دهید.

در مثال زیر می بینید که ما یک کلاس به وجود آورده و نام آن را Fruit گذاشته ایم. به علاوه این کلاس دارای دو ویزگی $name و $color و ما از متدهای set_name() و get_name() استفاده کرده ایم تا ویژگی $name را set و  get کنیم:

<?php

class Fruit {

  // Properties

  public $name;

  public $color;

  // Methods

  function set_name($name) {

    $this->name = $name;

  }

  function get_name() {

    return $this->name;

  }

}

?>

 

نحوه تعریف شی در PHPنحوه تعریف شی در PHP

و در اخرین بخش از آموزش شی گرایی در php نوبت به چگونگی تعریف یک شی در زبان php می رسد. خوب است بدانید که ما می توانیم شی های مختلفی را از یک کلاس به وجود آوریم. هر یک از این اشیا کلیه مشخصه ها و همینطور متدهایی که برای کلاس مورد نظر تعریف شده است را در ختیار دارد. برای آموزش PHP  میتوانید وارد صفحه مربوطه شوید.

اما این مقدارهای این ویزگی هاست که مختلف است. به کمک کلمه کلیدی newما می توانیم شی هایی را برای یک کلاس تعریف کنیم. در مثال زیر ما دو شی $apple و $banana را برای کلاس Fruit تعریف کرده ایم:

$apple = new Fruit();
$banana = new Fruit();
$apple->set_name('Apple');
$banana->set_name('Banana');
echo $apple->get_name();
echo "<br>";
echo $banana->get_name();
?>

خلاصه

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

فهرست مطالب

مقاله های مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

17 − پانزده =