شی گرایی در php

برنامه نویسی شی گرا در php

تصور کنید دنیایِ ما از اشیا و چیزهای متفاوتی همچون خورشید، زمین، ماه و غیره تشکیل شده. به طور مشابه، می توانید تصور کنید که ماشین شما از چیزهای مختلفی از جمله فرمان، چرخ، دنده و غیره تشکیل شده. همین طور، هم مفاهیم برنامه نویسی شی گرا {object oriented} وجود دارند که همه چیز را شی می پندارند و یک برنامه را با کمک همین اشیا اجرا می کنند.

Object Oriented Programming به معنای برنامه نویسی شی گرا است که در بسیاری از مواقع از مخفف آن OOP استفاده میشود. این روش برنامه نویسی  در PHP4 ایجاد شد و در php5  کمی توسعه یافت. در این درس میخواهیم  برنامه نویسی شی گرا و اجزای آن را معرفی کنیم.

شی گرایی در php شی گرایی در php شی گرایی در php Object oriented programming php

شی گرایی در php

اساس برنامه نویسی شی گرایی در php و شی ها در PHP

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

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

مفاهیم شی گرا(شی گرایی در php)

پیش از پرداختن به جزئیات، اجازه دهید واژه ها و مفاهیم مهم مربوط به برنامه نویسی شی گرا را توضیح دهیم.

class{کلاس} : نوع داده ای است که توسط برنامه ساز تعیین می شود، که علاوه بر تابع های محلی، اطلاعات محلی را نیز شامل می شود. کلاس مانند الگویی است که موارد مشابهی از همان نوع شی را می توانید بر اساس آن بسازید.

object{شی} : شی تک نمونه ای است از ساختار اطلاعات که کلاس تعیین می کند. ابتدا یک کلاس تعریف می کنید، سپس شی های متعلق به آن را می سازید. به شی {object} نمونه {instance} نیز می گویند.

member variable {متغیر عضو} : این ها متغیرهایی هستند که داخل یک کلاس تعریف می شوند. به این اطلاعات فقط می توان از طریق تابع های عضو {member function} دسترسی پیدا کرد و برای هر چیز دیگری خارج از کلاس غیر قابل مشاهده است. پس از این که شی ساخته می شود، متغیرهای ذکر شده به عنوان خصیصه یا ویژگی {attribute} آن شی شناخته می شوند.

member function {تابع عضو} : این توابع در کلاس معرفی می شوند و از آن ها به منظور دستیابی به اطلاعات شی {object information} استفاده می شود.

Inheritance {وراثت} : به فرآیندی گفته می شود که طی آن یک کلاس با به ارث بردن تابع از کلاس والد {parent class} به وجود می آید . کلاس فرزند {child class} تعدادی یا همه ی توابع و متغیرهای کلاس والد را به ارث می برد.

parent class {کلاس والد} : کلاسی که کلاس دیگری چیزی را از آن به ارث می برد، به آن کلاس اصلی، پایه {base، super class} نیز گفته می شود.

child class {کلاس فرزند} : کلاسی که از کلاس دیگر چیزی را به ارث می برد. به آن زیر کلاس یا کلاس مشتق {sub، derived class} نیز می گویند.

Polymorphism {چند شکلی} : مفهوم شی گرایست که در آن از یک تابع می توان برای اهداف گوناگون بهره برد. برای مثال، اسم تابع {function name} ثابت می ماند، ولی به تعداد مختلفی آرگومان {argument} نیاز دارد و کارهای متفاوتی را می تواند انجام دهد.

overloading {اضافه بار زدن} : نوعی polymorphism که در آن همه یا برخی از عملگرها {operator} بسته به نوع آرگومان هایشان، پیاده سازی متفاوتی دارند. توابع هم به طور مشابه ممکن است با پیاده سازی های {implementations} متفاوت overload شوند.

data abstraction {حذف داده} : هر گونه نمایش داده که در آن جزئیات پیاده سازی پنهان {حذف شده} باشد.

Encapsulation {خلاصه، ادغام } : اشاره به مفهوم ادغام تمام اطلاعات و توابع عضو با هم برای تشکیل یک شی واحد دارد.

Constructer{تابع سازنده} : به گونه ی خاصی تابع که خودکار به هنگام شکل گیری یک شی در کلاس فراخوانده می شود اشاره دارد.

Destructor {مخرب ها} : به گونه ی خاصی تابع که خودکار به هنگام پاک شدن یا از دامنه خارج شدن یک شی فراخوانده می شود اشاره دارد.

کلاس ها در برنامه نویسی شی گرا

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

تعریف کلاس های PHP

فرم کلی تعریف یک کلاس جدید در PHP به شرح زیر می باشد.

مجموعه آکولادی {} که شمار زیادی تعریف متغیر و تابع تعریف شده را در خود دارد.

تعریف متغیر ها که به شکل خاص var آغاز می شود، که به دنبال آن با قرارداد $ و اسم متغیر {variable name} می آید، حتی ممکن است به مقدار ثابت {constant value} یک مقدار اولیه داده شود.

تعاریف تابع {function definition} شباهت زیادی به توابع مستقل PHP دارند ولی بومی کلاس هستند و از آن ها برای دستیابی و تعیین object data استفاده می شود.

مثال زیر یک کلاس {دسته} از نوع کتاب ها را به شکل زیر تعریف می کند.

تعریف یک تابع (function) برای کلاس در PHP :

هر کلاس می تواند شامل تعدادی تابع (function) باشد. شکل کلی تعریف تابع برای یک کلاس، به صورت زیر می باشد :

در شکل کلی نمایش داده شده در بالا، تابع تعریف شده برای کلاس ClassName دارای نام function_name می باشد.

یک کلاس به نام Welcome می سازیم که دارای یک تابع با نام say_hello باشد :

تمامی کدهای نوشته شده، تنها برای تعریف کلاس Welcome می باشد. آنچه اهمیت دارد این است که با اجرای کدهای بالا، کلمه hello در خروجی نمایش داده نخواهد شد. علت آن هم این است که وقتی ما در ابتدای کدهای PHP خود، یک کلاس تعریف می کنیم، تا زمانی که از آن کلاس نخواهیم که برای ما یک شیء بسازد، آن کلاس هیچ عملکردی نخواهد داشت (خروجی برای نمایش به کاربر و یا موارد دیگر، نخواهیم داشت).

توابع سازنده

گونه ی خاصی تابع که خودکار به هنگام شکل گیری یک شی فراخوانده می شود. با مقدار دهی اولیه {initializing} توسط تابع سازنده می توانیم از این رفتار نهایت استفاده را ببریم.

PHP برای تعریف یک سازنده ، تابع مخصوصی به نام __construct() را ارائه می دهد. شما می توانید هر تعداد آرگومان که دوست دارید به تابع سازنده بفرستید.

تابع مخرب

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

 

 

 

آموزش PHP آموزش طراحی وب

دیدگاه خود را بیان کنید