دوره آموزشی PHP

آموزشگاه تخصصی برنامه نویسی

دوره آموزشی PHP

آموزشگاه تخصصی برنامه نویسی

آموزش برنامه نویسی شیء گرا با PHP

من با توجه به اینکه منبع های آموزش PHP به صورت پیشرفته، البته فارسی کم است، تصمیم گرفتم که یکی پیشرفته ترین مباحث PHP یعنی شیء گرایی را آمورش دهم. از شما و مدیر فاروم هم انتظار همکاری دارم. این جلسه فقط تئوری است و در جلسه ی بعد به کار عملی می پردازیم.

کلاسها (Classes)
یک کلاس تعریف یا نمای یک نوع خاص داده است و کلاسها به عنوان روشی برای حالت دادن به تمام انواع متفاوت اشیاء و سیستم شما عمل می‌کنند . هنگامی که می‌خواهیم یک شیء جدید را تعریف کنیم ، ابتدا از کلمه کلیدی class برای تعریف آن ، پیش از استفاده از آن در اسکریپت‌های PHP خود استفاده می‌کنیم . تفاوت واضح یک کلاس و یک شیء این است که کلاس‌ها اشیایی را تعریف می‌کنند که در برنامه‌هایمان به کار می‌بریم . پیش از آن که درباره روش ساخت یک کلاس صحبت کنیم ، می‌خواهیم شروع به تأمل کنید که یک کلاس نمایشی از یک ایده است . مهم است که هنگامی که کلاس‌های خودتان را طراحی می‌کنید . آنها یک هدف را دنبال کنند و تمامی رفتاری را که از آن ایده انتظار می‌رفت را فراهم کنند .
یک کلاس در PHP حاوی سه کامپوننت اصلی است : members (اعضاء) که به آنها به عنوان داده یا صفت اشاره می‌شود) متدها ، و Consructor یک عضو members تکه‌ای از داده است که شیء در بر دارد . اشیاء می‌توانند هر تعداد عضو داشته باشند . برای مثال ، اگر قرار باشد اتومبیل را با استفاده از یک کلاس طراحی کنیم ، یک چرخ در حال دوران یا گیربکس باید به عنوان یک عضو از ماشین تعریف شوند .
متدها سرویس‌هایی هستند که شیء برای سرویس گیرنده‌هایش فراهم می‌کند که از اعضا داخلی آن استفاده می‌کنند و آنها را دستکاری می‌کنند . برای مثال ، اگر قرار باشد اتومبیل را با استفاده از یک کلاس طراحی کنیم ، یک چرخ در حال دوران یا گیربکس باید به عنوان یک عضو از ماشین تعریف شوند .
متدها سرویس‌هایی هستند که شیء برای سرویس گیرنده‌هایش فراهم می‌کند که از اعضا داخلی آن استفاده می‌کنند و آنها را دستکاری می‌کنند . برای مثال ، یک کلاس car می‌تواند یک متد را برای روشن کردن وسیله نقله و استفاده از چرخ در حال دوران در داخل آن فراهم کند .
یک Constructor متد خاصی است که شیء را درون وضعیت آماده آن معرفی می‌:ند . تنها یک Constructor برای یک شیء در PHP می‌تواند موجود باشد . در یک کلاس car ، افزودن بدنه ، موتور ، لاستیک‌ها ، گیربکس ، صندلی و غیره بر روی car با هم متفاوتند . هنگامی که سرویس گیرنده‌ها می‌خواهند از متدهای روی یک شیء استفاده کنند ، Constructor اطمینان می‌دهد که هر متد عملیات را با موفقیت به انجام خواهد رساند و نتیجه مورد انتظار را برخواهد گرداند . برای مثال ، برای روشن کردن رادیو درون اتومبیل شما ، باید یک رادیو نصب شده‌ باشد . در این نمونه ، Constructor مسئول اطمینان بخشیدن از این موضوع است که رادیو پیش از استفاده نصب شده است.
به غیر از مقدار دهی شیء به یک وضعیت آماده معتبر ، تفاوت اساسی دیگر این است که یک Constructor هیچ مقدار برگشتی صریحی ندارد . تمامی Constructor ها یک متغیر جدیداً اختصاص یافته را برای استفاده در برنامه شما بر می‌گردانند .
در نتیجه ، برگرداندن یک مقدار در Constructor کلاس ، غیرقانونی است . درباره استفاده از اشیاء در برنامه‌های شما ، در بخش بعدی بیشتر صحبت خواهیم کرد . اطمینان یافتن از طراحی مناسب اشیاء و Constructor های آنها ، مسئله‌ای است که توسعه دهندگان زیادی اغلب با آن روبرو می‌شوند . هنگامی که کلاس برنامه‌نویسان را وادار می‌کند که اعضای شیء را پیش از استفاده از متدهای خود تنظیم کنند یا هنگامی که کلاس برنامه‌نویس را وادار می‌کند تا از ترتیب خاصی ، هنگام فراخوانی متدهای شیء پیروی کند ، کد گیج کننده و مبهمی را ایجاد می‌کند . از OPP به این منظور استفاده می‌کنیم که به طور کلی از بروز چنین مسئله‌ای جلوگیری کنیم . اگر کلاس مهندسی شده است تا از Constructor های خود برای معرفی بخشهای کلیدی کلاس استفاده نکند ، اشکال از طراحی ضعیف ناشی می‌گردد . دوباره در همان تله گرفتار نشوید .

کلاسی که خوب طراحی شده باشد برنامه‌نویسی ، اشکال‌زدایی و نگهداری زیادی را حذف می‌کند.

بیایید نگاهی به دستور زبان کلی برای Class در PHP بیندازیم ، که استفاده از این سه نوع کامپوننت را نشان می‌دهد :

PHP Code:
class ClassName [extends  ParentclassName]
{
        var 
$member1
        var 
$member2;
        
        

        
var $memberN;
        
//  Constructor
        
function  Class Name()
        {
        }
        function  
method1()
        {
        }

        
function  method2()
        {
        }
        function  
methodN()
        {
        } 
همان‌گونه که می‌بینید ، یک کلاس چیزی نیست جز یک مجموعه از اعضای تعریف شده (متغیرها) و متدها (توابع) . اعضا می‌توانند یا انواع داده اولیه نظیر integer ها و رشته‌ها یا انواع پیچیده‌تری نظیر آرایه‌ها یا اشیاء دیگر باشند . از آنجایی که PHP از شما انتظار ندارد که انواع را تعریف کنید ، فقط می‌توانید متغیرهایتان را در بالای کلاس ، به صورتی که در بالا نشان داده شد ، نام ببرید .
با PHP می‌توانید متغیرهایی را در تابع خود ایجاد کنید ؛ آنها به همان خوبی که مورد انتظارتان است کا رخواهند کرد . اگرچه ، تمرین خوبی نخواهد بود اگر این کار را انجام دهید . این به آن خاطر است که وقتی برنامه‌نویسان دیگر به کلاس شما نگاه می‌کنند ، فوراً تمامی اعضای آن را پیش از نگاه کردن به پیاده‌سازی توابع بشناسند .
متدها به سادگی تمام سرویس‌هایی هستند که این کلاس تضمین می‌کند تا برای سرویس گیرنده‌هایش فراهم کند . سرویس گیرنده‌ها می‌توانند برنامه‌های دیگر ، پروژه‌های دیگر و غیره باشند‌.
نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد