جالب است بدانیم که در حال حاضر -سال ۲۰۱۸- بر اساس آمار سایت رسمی زبان پیاچپی (php.net)، این زبان در بیش از ۲۴۰ میلیون وبسایت مورد استفاده قرار گرفته و در حال حاضر در بیش از 2 میلیون وب سرور مورد استفاده قرار میگیرد (لینک به منبع آمار کاربرد زبان پیاچپی).
سایت W3Techs که به عنوان یکی از مراجع معتبر در زمینهٔ بررسی فناوریهای تحت وب شناخته میشود نیز در گزارشی اعلام نموده که در حال حاضر -سال ۲۰۱۸- زبان پیاچپی موتور محرک 83.1٪ از کل وبسایتهای دنیا است (لینک گزارش). همچنین برای اساس شاخص سایت TIOBE، زبان برنامهنویسی PHP در بیشتر سالها جزو ۱۰ زبان محبوب از دید دولوپرهای سراسر دنیا بوده است.
یکی از دلایل کاربرد فوقالعاده زیاد زبان PHP در طراحی سایتهای دینامیک، مزیتهایی است که این زبان نسبت به سایر زبانهای سمت سرور دارد که در ادامه با مهمترین آنها آشنا خواهید شد:
PHP زبان تخصصی طراحی وب اپلیکیشن است
شاید به جرأت بتوان گفت یکی از دلایل محبوبیت زبان برنامهنویسی پیاچپی به عنوان یک زبان سمت سرور، این است که PHP در ابتدا به عنوان ابزاری برای ساخت صفحات HTML و مدیریت فرمها طراحی شده است. به عبارت دیگر، پیاچپی تنها زبانی است که با رویکرد طراحی سایت ابداع شده و به نوعی میتوان گفت که یک «زبان تخصصی سمت سرور برای طراحی وب اپلیکیشن» است (این ادعا هرگز بدان معنا نیست که با سایر زبانهای برنامهنویسی نمیتوان سایتهای دینامیک طراحی کرد؛ بلکه منظور این است که پیاچپی برای این کار ساخته شده است و به نوعی میتوان گفت که زبانی تخصصی برای طراحی سایت است. به علاوه، این ادعا هرگز بدان معنا نیست که پیاچپی زبان بهتری نسبت به سایر رقبا است بلکه صرفاً در حوزهٔ فوقالذکر، پیاچپی یک سر و گردن نسبت به رقبا بالاتر است).
کاربرد PHP در سیستمهای مدیریت محتوا (CMS)
بسیاری از سیستمهای مدیریت محتوا مثل وردپرس، جوملا و دروپال بر پایهٔ زبان پیاچپی نوشته شدهاند؛ بنابراین فراگیری این زبان کمک چشمگیری به نحوهٔ استفاده از این سیستمهای مدیریت محتوا و همچنین توسعهٔ آنها خواهد کرد.
PHP اپنسورس و رایگان است
رایگان بودن این زبان خود یک مزیت نسبی نسبت به فناوریهایی همچون ASP.NET محسوب میشود. علاوه بر رایگان بودن، این زبان اپنسورس نیز هست؛ وقتی صفت Open Source (متنباز) را به یک زبان برنامهنویسی میچسبانیم، این بدان معنا است که زبان مد نظر Free (رایگان) بوده و توسط تیم گستردهیی از توسعهدهندگان از سراسر دنیا ارتقاء مییابد و کاربران این امکان را دارند تا زبان را به صورت آزاد در اختیار گرفته و در صورت نیاز، تغییراتی در سورسکد آن برای شخصیسازی بیشتر اعمال کنند.
سازگاری با پلتفرمهای مختلف
مزیت دیگر پیاچپی این است که اصطلاحاً Cross Platform است. به عبارت دیگر، میتوان این زبان را در پلتفرمهای مختلفی از گنو/لینوکس گرفته تا ویندوز و مکینتاش اجرا کرد و این در حالی است که مهاجرت از یک پلتفرم به پلتفرم دیگر، در اکثر مواقع نیاز به تغییر چندانی در پیکربندی وجود نخواهد داشت.
علاوه بر این، PHP با اکثر وب سرورهای معروف دنیا همچون آپاچی، آیآیاس مایکروسافت، اِنجیناِکس و غیره سازگاری دارد. یکی از قابلیتهای منحصر به فرد زبان پیاچپی، پشتیبانی از طیف وسیعی از دیتابیسها است که از آن جمله میتوان به سیستمهای مدیریت دیتابیس MySQL ،PostgreSQL ،SQLite ،MongoDB ،Oracle و … اشاره کرد.
یادگیری راحت و استفادهٔ آسان
حتی کسانی که اصلاً تجربهٔ برنامهنویسی نداشته باشند، صرفاً با خواندن چند آموزش اصولی، خواهند توانست نحوهٔ کدنویسی با این زبان را فرا گیرند اما این در حالی است که به کارگیری برخی از دیگر زبانهای برنامهنویسی سمت سرور برای طراحی سایتهای دینامیک، به این راحتی نیست (لازم به ذکر است که زبان برنامهنویسی پایتون هم جزو زبانهای آسان برای یادگیری است.)
مستندات و آموزشهای فراوان PHP
زبان برنامهنویسی PHP به دلیل کاربرد فراوانی که در توسعهٔ وبسایتهای مختلف داشته است، بالتبع از مستندات و آموزشهای رایگان و غیررایگان زیادی نیز در فضای اینترنت برخوردار است.
علاوه بر وبسایت رسمی PHP، آموزشهای بسیاری برای دولوپرها -از مبتدی گرفته تا حرفهای- عرضه شده که از آن جمله میتوان به دورهٔ آموزش PHP در سایت W3Schools که به زبان انگلیسی است.
فرصتهای شغلی خوب برای دولوپرهای PHP
پیش از این اشاره کردیم که سیستمهای مدیریت محتوایی همچون وردپرس، جوملا و دروپال که با زبان PHP توسعه داده شدهاند، به عنوان پلتفرم بخش قابلتوجهی از وبسایتهای بزرگ و کوچک هستند و همین مسئله منجر گردیده تا بازار کار نسبتاً قابلتوجهی برای دولوپرهای این زبان وجود داشته باشد (علاوه بر این، امروزه به دلیل محبوبیت بسیار بالایی که فریمورکهای این زبان پیدا کردهاند، بسیاری از کسبوکارهای مختلف و استارتاپها به دنبال دولوپر حرفهای PHP -بهخصوص کسانی که به فریمورک لاراول تسلط داشته باشند- هستند).
PHP معروفترین فناوری برای طراحی سایتهای دینامیک است
وب و اینترنت به منزلهٔ بخش لاینفک دنیای فناوری درآمده و جالب است بدانیم که زبان برنامهنویسی پیاچپی در این حوزه نقشی کلیدی بازی میکند چرا که سایتهای بزرگی همچون ویکیپدیا، شبکهٔ اجتماعی فیسبوک، سیستمهای مدیریت محتوایی همچون وردپرس، جوملا، دروپال و غیره، صرفاً تعدادی از مثالهایی هستند که زبان پیاچپی در شکلگیری آنها نقش داشته است.
به خاطر داشته باشید |
شبکهٔ اجتماعی فیسبوک در ابتدا با استفاده از این زبان راهاندازی شد اما این در حالی است که در ادامهٔ راه، مهندسین این غول فناوری از روی زبان PHP زبانی تحت عنوان Hack را ابداع نموده و مورد استفاده قرار دادهاند. |
قابلیت استفاده با معماریهای مختلف برنامهنویسی
یکی دیگر از نقاط قوت زبان پیاچپی این است که با این زبان هم میتوان به صورت اصطلاحاً Procedural و هم به صورت اصطلاحاً Object-oriented کدنویسی کرد. واژهٔ Procedure از واژهٔ انگلیسی Process (پراسس به معنی پروسه یا فرایند) گرفته شده است و به طور خلاصه، منظور از پارادایم برنامهنویسی Procedural (پروسیجرال)، برنامهنویسی بر پایهٔ فراخوانی پروسهها است.
پروسهها را میتوان در قالب توابعی در نظر گرفت که میتوانند در هر نقطهیی در طول اجرای برنامه فراخوانی شوند. در واقع، در پارادایم پروسیجرال ما لیستی از دستورات داریم که این دستورات به سیستم میگویند که گام به گام چه کاری را میبایست انجام دهد (لازم به ذکر است که برخی دولوپرها از اصطلاح Imperative Programming برای این نوع معماری کدنویسی استفاده میکنند).
از جمله زبانهای برنامهنویسی پروسیجرال میتوان به زبانهای C ،Cobol و Fortran اشاره کرد. در اینگونه زبانها، برنامه از بالا به پایین شروع به اجرا شده و فرایندها یکی پس از دیگری عملیاتی شده تا در نهایت برنامه به صورت کامل اجرا گردد.
در نقطهٔ مقابل پارادایم پروسیجرال، برنامهنویسی OOP (شییٔگرا) وجود دارد. در پارادایم شییٔگرا، برنامهیی که توسعه میدهیم بر پایهٔ آبجکتها پیادهسازی میشود. یک آبجکت -یا بهتر بگوییم شییٔ- ماهیتی واقعی است که از روی یک کلاس که ماهیتی انتزاعی دارا است ساخته میشود که این وظیفه را دارا است تا کار خاصی را انجام داده و این توانایی را دارد تا با دیگر آبجکتهای برنامه تعامل برقرار سازد (از جمله زبانهای برنامهنویسی شییٔگرا میتوان به Java ،Python ،Perl ،PHP و Ruby اشاره کرد.) جالب است بدانیم که در پارادایم برنامهنویسی شییٔگرا، میتوان با تعداد خطوط کد کمتری برنامههای به مراتب گستردهتر و پیچیدهتری نوشت.
لازم به ذکر است یکی از انتقاداتی که همواره به زبان PHP وارد است این میباشد که این زبان ابتدا به ساکن Object-oriented طراحی نشده و به مرور زمان (از نسخهٔ ۵ به بعد) قابلیتهای شییٔگرایی به آن اضافه شده است و همین مسئله منجر میگردد تا نسبت به زبانی همچون روبی که از ابتدا فیچرهای Object-oriented در طراحی آن لحاظ شدهاند، برتری چندانی نداشته باشد.
نکته |
منظور از Programming Paradigms (پارادایمهای برنامهنویسی) رویکردهای متفاوت در برنامهنویسی به منظور یافتن راهکاری برای انجام کاری خاص است. |
چه کارهایی با زبان برنامهنویسی PHP میتوان انجام داد؟
تا اینجا، با مزیتهای زبان برنامهنویسی PHP نسبت به سایر زبانهای سمت سرور آشنا شدیم. علاوه بر آگاهی از مزیتهای یک زبان، میبایست بدانیم که با زبان انتخابی خود چه کارهایی میتوانیم انجام دهیم. به طور کلی، زبان پیاچپی را میتوان در حوزههای زیر مورد استفاده قرار داد:
1- برنامهنویسی سمت سرور
هدف اصلی از طراحی این زبان، ساخت وبسایتهای دینامیک بوده است و در حال حاضر هم یکی از بهترین زبانهایی است که میتوان برای این کار مورد استفاده قرار داد. به عبارت دیگر، از این زبان برای ساخت محتوای HTML که در نهایت منجر به ساخت صفحات وب میشوند میتوان استفاده نمود. به طور کلی کارهایی که با زبان پیاچپی در سمت سرور میتوان انجام داد عبارتند از:
- ایجاد محتوای دینامیک برای وب سایت خود
- ایجاد، باز کردن، خواندن، نوشتن و بستن فایلها در سمت سرور
- جمعآوری و پردازش اطلاعات فرمهای HTML
- قابلیت اضافه کردن، پاک کردن و ویرایش کردن اطلاعات قرار گرفته روی دیتابیس
- محدود کردن دسترسی به برخی صفحات وبسایت
- قابلیت رمزگذاری دادهها و ...
2- برنامهنویسی کامندلاین
با استفاده از پیاچپی، میتوان از طریق Command Line اسکرپیتهای مد نظر خود را اجرا کرد. در پاسخ به این سؤال که اسکرپیت چیست؟، بایستی گفت که به طور مثال از طریق کامندلاین میتوان کارهایی که یک ادمین شبکه یا وب مستر انجام میدهد را هَندل (مدیریت) کرد که از آن جمله میتوان به بَکاپ گرفتن، لاگ گرفتن و حتی CRON Job نیز اشاره کرد.
به خاطر داشته باشید |
اصطلاح CRON Job به اجرای یکسری اسکریپتهای خاص در سیستمعاملهای مبتنی بر یونیکس در زمانی خاص گفته میشود. به عبارت دیگر، یک برنامهنویس با استفاده از کرانجاب خواهد توانست تا مثلاً به صورت دورهیی، هر جمعه رأس ساعت ۱۰ صبح کد خاصی را به صورت اتوماتیک اجرا کند. |
3- طراحی نرمافزارهای تحت دسکتاپ
با استفاده از لایبرری PHP-GTK، میتوان اقدام به کدنویسی اپلیکیشنهای تحت دسکتاپ با زبان برنامهنویسی PHP کرد. به طور کلی، GTK یک Library (لایبرری یا کتابخانه) برای طراحی GUI (رابط گرافیکی کاربری) است. این لایبرری زمانی شکل گرفت که توسعهدهندگان نرمافزار GIMP که برای ویرایش تصاویر استفاده میشود، آن را با زبان C نوشتند (لذا به آن GIMP Toolkit هم گفته میشود).
از آن زمان به بعد، جیتیکی به عنوان یکی از مشهورترین ابزارهای طراحی رابط کاربری شناخته میشود و در دنیای اپنسورس، بسیاری از رابطهای گرافیکی نرمافزارها با استفاده از آن طراحی میشود. PHP-GTK هم مجموعهیی Binding برای زبان برنامهنویسی پیاچپی است که این امکان را به توسعهدهندگان میدهد تا با استفاده از این زبان، اقدام به طراحی نرمافزارهای دسکتاپ کنند.
به خاطر داشته باشید |
در دنیای برنامهنویسی، منظور از Binding یک زبان برنامهنویسی به یک لایبرری این است که یک API طراحی شده که با استفاده از آن میتوان از کدهای قرار گرفته در لایبرری، در زبان برنامهنویسی مد نظر خود استفاده کرد (API مخفف واژگان Application Programming Interface میباشد. به طور خلاصه، ایپیآی به راحتی این امکان را در اختیار یک برنامهنویس قرار میدهد تا به برخی یا تمامی قابلیتهای یک نرمافزار دیگر دسترسی پیدا کند). |
PHP-GTK توسط توسعهدهندهیی به نام Andrei Zmievski ابداع شد که به عنوان یکی از توسعهدهندگان اصلی زبان PHP و Zend Engine است و اولین نسخه از PHP-GTK در ماه مارس سال 2001 به دنیا عرضه شد.