مفهوم interface در PHP چیست؟
مفهوم interface در PHP را در این مقاله بررسی کرده و چگونگی پیاده سازی آن در PHP را توضیح خواهیم داد.
بازار کار برنامه نویسان در ایران مانند دیگر کشور های دنیا روز به روز در حال پیشرفت است و ما در این مقاله قصد بررسی یکی از کد های برنامه نویسی یعنی مفهوم interface در PHP را داریم. PHP که مخفف عبارت Hypertext Preprocessor می باشد معنی پیش پردازنده فرا متن را می دهد و جهت طراحی وب توسعه پیدا کرده است که در سال 1995 میلادی توسط راسموس لردورف ساخته شد.بیش از 240 میلیون وب سایت به زبان پی اچ پی طراحی شده است و به عبارت دیگر محرک هشتاد و سه درصد از کل وبسایت های جهان می باشد.
اینترفیس ها(interface) از این نظر که دارای متد های انتزاعی هستند شبیه به کلاس های انتزاعی می باشند.به عبارت دیگر اینترفیس ها کمک بسیار بزرگی به نظم کد نویسی می کنند و اغلب نیز کاربران و برنامه نویسان جهت نظم در پروژه های شخصی نیز از اینترفیس ها استفاده می نمایند.قبل از اینکه به مفهوم اینترفیس بپردازیم بهتر است چند مورد از مزایای پی اچ پی را برای شما بازگو کنیم تا بیشتر با آن آشنا شویم.
مزایای PHP
- PHP با تمام سرور هایی که امروزه برنامه نویسان از آن استفاده می کنند همچون Apache یا IIS سازگار باشد و در آن ها اجرا شود و کار کاربر را بسیار راحت کند.
- میتوان PHP را در اغلب پلتفرم ها اجرا نمود و این ویژگی یکی از مهم ترین قابلیت های آن است که باعث دو برابر شدن طرفداران آن شده است.این پلتفرم ها شامل ویندوز،مکینتاش،لینوکس و.. می باشد که اکنون بیشترین کاربر را به خود جذب کرده است.
- عرضه و دسترسی به آن به صورت رایگان است و میتوان از وبسایت های مختلف آن را دانلود نمود و سپس به استفاده از آن پرداخت.
- پی اچ پی این امکان را دارد که انواع مختلف داده ها را ساپورت کند و با آن ها کار کند.
- طراحی و ساخت پی اچ پی از ساختار ساده ای برخوردار است و برای برنامه نویسی با آن نیاز به تنظیمات ابتدایی خاصی نمی باشد.برای کار با پی اچ پی تنها کافیست یک سرور یا شبیه ساز سرور در اختیار داشته باشید و سپس کد های خود در آن پیاده نمایید و از دیدن نتیجه ی حاصل شده لذت ببرید.اما همانطور که به ان اشاره داشتیم یکی از روش های کد نویسی در پی اچ پی استفاده از اینترفیس می باشد که در ادامه مفهوم آن را مورد بررسی قرار خواهیم داد.
مفهوم interface در PHP
Interface در تکنیک برنامه نویسی PHP یک الگوی پیاده سازی برای توابع است و میزبان تعدادی متد abstract می باشد و برنامه نویس به عنوان توسعه دهنده باید آن ها را در بدنه ی کلاس ارث برنده از interface پیاده سازی کند.از آنجایی که کلاس های ارث برنده از طریق Interface ها مجاب به پیاده سازی میشوند در سامان دهی و خوانایی هر چه بیشتر کد نویسی کمک کننده است و دارای اهمیت می باشد.
به عبارت دیگر استفاده از اینترفیس زمانی به نهایت کاربری خود میرسد که یک تیم روی یک پروژه ی بزرگ کار می کنند و مدیر این پروژه نیز میخواهد مدیریت کند که برنامه نویسان مطابق متد های تعیین شده در interface کار می کنند و این متد ها را در کد نویسی خود رعایت میکنند.
همچنین هنگامی که یک برنامه نویس قصد پیاده سازی چند متد معین در کلاس های فرزند بکند نیز میتواند از اینترفیس نهایت استفاده را ببرد و به بهترین نتیجه ی ممکن دست یابد.هنگامی که شما کلید یک لامپ را میزنید و آن روشن میشود مراحل طی شده در کار را مشاهده نمیکنید که این مراحل شامل جاری شدن جریان الکتریسیته در سیم و سپس رسیدن آن به لامپ می باشد در برنامه نویسی PHP نیز اینترفیس توضیحی برای تمامی توابع هایی است که هنگام کد نویسی وارد میکنیم.
چگونگی پیاده سازی interface در PHP
PHP یک زبان برنامه نویسی می باشد که میتوان از طریق آن اقدام به ساخت صفحات وب داینامیک نمود و یک اینترفیس در برنامه نویسی PHP یک سینتکس یا ساختار برنامه نویسی می باشد که به وادار کردن کامپیوتر به اجرای یک ساختار خواهد پرداخت.جهت پیاده سازی یک اینترفیس حتما باید کلید واژه ی interface هنگام کد نویسی وارد شود اما اگر قصد ارث بری یک کلاس از اینترفیس باید کلید واژه ی implement را وارد نمود.میتوان چندین اینترفیس را در یک کلاس پیاده سازی نمود بدین وسیله برنامه نویس این امکان را دارد قابلیت عدم امکان ارث بری را دور بزند و جهت پیاده سازی این قابلیت باید Vehicle به معنی وسیله نقلیه را تعریف نماییم.
تفاوت بین Abstract و interface
- تمام متد های موجود در interface باید در سطح public باشند و در غیر این صورت امکان اجرای آن نخواهد بود اما در abstract این امکان وجود ندارد.
- اینترفیس امکان این را دارد که در بدنه ی خود توابع انتزاعی و ثابت داشته باشد اما امکان پیاده سازی متد های concrete که متغیر هستند در آن وجود ندارد برعکس abstract که این امکان در آن وجود دارد.
- با استفاده از قابلیت اینترفیس میتوان در یک کلاس همزمان چندین اینترفیس را راه اندازی نمود اما این امکان در abstract وجود ندارد.
- درون یک اینترفیس نمیتوان یک پراپرتی گذاشت.
اما باید بدانیم چه زمانی از interface و چه زمانی از abstract استفاده نماییم که در ادامه به آن خواهیم پرداخت.
جمع بندی
همانطور که در توضیحات نیز به آن اشاره نمودیم زمانی که ما نیاز به وراثت چندگانه داریم بهتر است از اینترفیس استفاده نماییم زیرا امکان این قابلیت در abstract وجود نخواهد داشت و البته زمانی نیز که قصد داریم تمام متد های معین شده در کلاس پایه را به طور کامل در کلاس مشتق نیز پیاده کنیم بهتر است از interface استفاده نماییم.
هنگامی که یک پروژه ی بزرگ با تغییرات احتمالی را در دست داریم بهتر است از متد abstract استفاده نماییم زیرا این متد این امکان را به برنامه نویسان میدهد که هر تغییری که در کلاس پایه انجام داده اند را در کلاس مشتق نیز اعمال کنند بدون اینکه خودشان به صورت دستی این عملیات را انجام دهند.اما اگر بخواهیم کلیت این دو متد را مورد بررسی قرار دهیم باید بگوییم میتوان در اینترفیس یک چهارچوب و قابلیت را در یک کلاس مشخص کنیم اما در متد abstract میتوان نوع کلاس را تعیین نمود.