شاید سختترین مرحله در تدریس و نیز فراگرفتن شیءگرایی در پیاچپی را بتوان پایه و اساس آن دانست. اما در صورتی که شما اصل این مفاهیم پایه را بیاموزید، یادگیری ادامهی این مبحث بسیار آسان خواهد شد. در هرصورت جای نگرانی وجود ندارد و ما نیز در این آموزش از آسانترین راه موجود استفاده خواهیم کرد تا مفاهیم شیءگرایی (OOP) را به طور کامل و صحیح یاد بگیرید.
به جای یادگیری تئوری که در اکثر آموزشها از آن استفاده شده، ما مستقیما مثل جلسات قبل شما را درگیر کدنویسی میکنیم تا همراه با یادگیری مطالب بتوانید کدهای مورد نیاز را به صورت عملی نیز بنویسید. برای اینکه اشتیاق شما به مبحث شیءگرایی بیشتر شود جالب است بدانید که پس از یادگیری این بخش، برنامهنویسی به زبان پیاچپی برای شما بسیار لذتبخشتر و آسانتر و مسنجمتر خواهد شد. پس مثل همیشه برنامهی نوتپد پلاسپلاس را اجرا کنید و همزمان با توضیحاتی که میخوانید، کدهای مورد نیاز را بنویسید.
با انتشار پنجمین نسخه از PHP در سال ۲۰۰۴، برنامهنویسان این زبان در نهایت امکان بهره بردن از قدرت برنامهنویسی شیءگرا را به دست آورند. این همان قدرتی است که زبانهای دیگری چون جاوا و سی، آن را از قبل در اختیار توسعهدهندگان قرار داده بودند.
در این سری آموزشی قصد داریم تا به صورت گام به گام، شما را با نحوه ساختن اشیاء در پیاچپی و نیز استفاده کردن از آنها آشنا کنیم. تمام این کارها با قابلیتهای درونی OOP پیاچپی امکانپذیر هستند و نیاز به هیچ مورد اضافهی دیگری ندارید. در ادامه، خلاصهای از آنچه فرا خواهید گرفت را مشاهده میکنید.
برخی از افراد هنگام برنامهنویسی بسیار سردرگم میشوند چراکه این برنامهنویسان احتمالا پایه و اساس مفاهیم را به خوبی یاد نگرفتهاند. همیشه به این نکته توجه داشته باشید که پایه و اساس هر کار، بخش مهمی از آن کار به حساب میآید. با در نظر گرفتن این نکات قصد داریم تا آرام آرام به یکی از کلیدیترین سردرگمیهایی که هنگام برنامهنویسی شیءگرا با PHP وجود دارد، بپردازیم. با یادگیری این نکات، میتوانید در آینده به خوبی در دنیای شیءگرایی فعالیت داشته باشید.
دقت داشته باشید که برای یادگیری مبحث OOP باید با مباحث پیشنیاز از جمله، توابع، متغیرها، دستورات شرطی و حلقهها آشنایی داشته باشید. اگر با این مباحث آشنا نیستید، به مطالب جلسات قبل مراجعه کنید. برای اینکه یادگیری OOP آسانتر شود قصد داریم تا این بخش را در ۲۲ مرحله به شما آموزش دهیم.
ایجاد فایلهای مورد نیاز
پیش از هر چیز مثل همیشه نرمافزار Xampp را اجرا کرده و یک پوشه جدید در پوشهی htdocs بسازید. در این پوشه دو فایل جدید به نامهای index.php و class.php را نیز بسازید.
شیءگرایی (OOP) به معنای ساختن یک کد ماژولار است و بنابراین کدهای پیاچپی شیءگرایی که مینویسیم در فایلهای مخصوص به خود قرار داده میشوند و سپس در صفحات پیاچپی اصلی خود در مواقع نیاز از کدهای شیءگرای نوشته شده بهره میبریم. همانطور که در جلسات قبل نیز به شما آموزش دادیم، میتوان یک صفحهی پیاچپی را با دستور include به یک صفحهی دیگر پیاچپی اضافه کرد. حال در اینجا ما فایلهای شیءگرای نوشته شده را به صفحات اصلی پیاچپی خود اضافه خواهیم کرد.
محور اصلی برنامهنویسی شیءگرا بر ساختارهایی به نام کلاس (class) میچرخد. کلاسها قالبهای کلی برای تعریف اشیاء در برنامهنویسی شیءگرا هستند.
ساختن یک کلاس پیاچپی در فایل class.php
به منظور طراحی اسکریپتهای پیاچپی خود به جای اینکه چندین تابع، متغیر و کدهای شناور مختلف داشته باشید، بهتر است کتابخانههای مخصوص به خود را با روش OOP ایجاد کرده و در واقع کلاسهای خودتان را تعریف کنید.
برای تعریف کلاس خود باید از کلمه کلیدی class استفاده کنیم و به دنبال آن نامی را که قصد داریم برای کلاس تعیین شود، مینویسیم. به مثال زیر دقت کنید.
نکته: محتوای هر کلاس همانند ساختار توابع، با علامت آکولاد ( { } ) احاطه میشود.
کلاسها را میتوان نقشههایی برای اشیاء پیاچپی دانست. یکی از بزرگترین تفاوتهایی که بین توابع و کلاسها وجود دارد این است که یک کلاس شامل دادهها (متغیرها) و توابع مختلف است. هر یک از توابع موجود در کلاس را یک شیء (object) مینامند.
هنگامی که شما بخواهید متغیرهای مورد نظر خود را در داخل یک کلاس ایجاد کنید، به این متغیرها خاصیت یا ویژگی میگویند. به مثال زیر توجه کنید:
نکته: دادهها.متغیرهایی که در داخل یک کلاس تعریف شدهاند را خواص آن کلاس میگویند.
افزودن توابع/متدها به کلاس
همانطور که برای افزودن هر متغیر در هر کلاس، باید نام منحصر به فردی را برای آن انتخاب کنیم، برای تعریف کردن توابع نیز باید نامی منحصر به فرد را برای هر تابع انتخاب کنیم. مجددا یادآوری میکنیم که هرجا در کلاسهای پیاچپی صحبت از متدها شد منظور از هر متد همان تابع در کلاس است.
از متدهای یک کلاس به منظور اعمال تغییرات در دادهها و خواص (متغیرهای کلاس) استفاده میکنیم. به مثال زیر توجه کنید:
نکته: فراموش نکنید که در یک کلاس، متغیرها را Property (مشخصهها یا ویژگیها) مینامند و توابع نیز متدهای کلاس خوانده میشوند.
توابع ستکننده و دریافت کننده
ما دو تابع (متد) جالب را تعریف کردهایم. یکی get_name() و دیگری set_name().
این متدها از حالت کلی و رایج برنامهنویسی شیءگرا (OOP) پیروی میکنند و شما میتوانید این ویژگی را در سایر زبانهای برنامهنویسی که از شیءگرایی پشتیبانی میکنند (مثل جاوا و Ruby) نیز مشاهده کنید.
مورد دیگر اینکه توابع ست کننده و دریافت کننده باید با نام مشخصهای (متغیر) که قصد تغییر آن را دارند، نام یکسانی داشته باشند. به مثال زیر توجه کنید:
نکته: توجه داشته باشید که نام توابع ست کننده و دریافت کننده، باید با نام مشخصههای مرتبط با آنها یکسان باشد.
با استفاده از این روش، هنگامی که توسعهدهندگان پیاچپی بخواهند اشیاء شما را مورد استفاده قرار دهند، میدانند که اگر تابعی به نام یک متغیر درون کلاسی باشد، آن تابع یا متد به منظور اعمال تغییرات روی آن متغیر بهکار میرود.
در جلسات بعدی به ادامهی مبحث میپردازیم.
آموزش PHP - جلسه اول معرفی و ابزارهای مورد نیاز | رفتن به مطلب | |
آموزش PHP - جلسه دوم، متغییرها و توضیحات در کدها | رفتن به مطلب | |
آموزش PHP - جلسه سوم: عملگرها | رفتن به مطلب | |
آموزش PHP - جلسه چهارم: آرایه ها | رفتن به مطلب | |
آموزش PHP - جلسه پنجم: عبارات شرطی، دستور if | رفتن به مطلب | |
آموزش PHP - جلسه ششم: حلقه های While و For | رفتن به مطلب | |
آموزش PHP - جلسه هفتم: دستور Switch و آشنایی با Include و Require | رفتن به مطلب | |
آموزش PHP - جلسه هشتم: توابع | رفتن به مطلب | |
آموزش PHP - جلسه نهم: متغیرهای پیش فرض و فرم ها | رفتن به مطلب | |
آموزش PHP - جلسه دهم: پروژه ارسال ایمیل | رفتن به مطلب | |
آموزش PHP - جلسه یازدهم: اتصال به بانک اطلاعاتی MySQL | رفتن به مطلب | |
آموزش PHP - جلسه دوازدهم: درج اطالاعات در بانک اطلاعاتی MySQL | رفتن به مطلب | |
آموزش PHP - جلسه سیزدهم: خواندن دادهها از بانک اطلاعاتی MySQL | رفتن به مطلب | |
آموزش PHP - جلسه چهاردهم: ویرایش داده در بانک اطلاعاتی MySQL | رفتن به مطلب | |
آموزش PHP - جلسه پانزدهم: حذف داده ها از بانک اطلاعاتی MySQL | رفتن به مطلب | |
آموزش PHP - جلسه شانزدهم: Session و Cookie | رفتن به مطلب | |
آموزش PHP - جلسه هفدهم: کار با فایل ها | رفتن به مطلب | |
آموزش PHP - جلسه هجدهم: کار با تاریخ و ساعت و تاریخ هجری شمسی | رفتن به مطلب | |
آموزش PHP - جلسه نوزدهم: فیلترهای پی اچ پی (مقدماتی) | رفتن به مطلب | |
آموزش PHP - جلسه بیستم: کار با رشته ها | رفتن به مطلب | |
آموزش PHP - جلسه بیست و یکم: شیء گرایی | رفتن به مطلب | |
آموزش PHP - جلسه بیست و دوم: شیء گرایی (بخش دوم) | رفتن به مطلب | |
آموزش PHP: جلسه بیست و سوم: شیءگرایی (بخش سوم) | رفتن به مطلب | |
آموزش PHP: جلسه بیست و چهارم: شیءگرایی (بخش پایانی) | رفتن به مطلب |