مسیر یادگیری PHP و Laravel

آخرین پرسش‌های کاربران در PHP (پی اچ پی)

PHP (پی اچ پی)

اگر می‌خواهید به صورت کامل با زبان PHP آشنا شوید، این مقاله را تا انتها بخوانید. به شما تضمین می‌دهیم که پس از خواندن این مطلب مسیر یادگیری درستی را برای آموزش زبان PHP انتخاب کنید.

زبان برنامه‌نویسی PHP (مخفف عبارت Hypertext Preprocessor)، یک زبان اسکریپتی رایگان (Open Source) سمت سرور است که برای تولید وب‌سایت‌های داینامیک مورد استفاده قرار می‌گیرد و با زبان HTML به صورت تلفیقی پیاده‌سازی می‌شود.

نقل قول فوق از وب‌سایت php.net بوده که به صورت کاملاً کلیشه‌ای به تعریف این زبان پرداخته‌است. این تعریف چند خطی را بارها در وب‌سایت‌های مختلف خوانده‌اید ولی چون برای اولین‌بار می‌خواهید این زبان را یاد بگیرید، کمی گیج‌کننده به‌نظر می‌رسد. پس اجازه دهید توضیحات بیشتری ارائه دهیم.

PHP چیست؟

زبان PHP در سال 1994 توسط آقای Rasmus Lerdorf برای ایجاد صفحه شخصی خودش، اختراع شد. (منبع)

زبان PHP یک زبان متن‌باز یا Open Source است اما منظور از Open Source چیست؟ وقتی یک محصول یا نرم‌افزاری متن‌باز باشد، بدین معنی است که دسترسی به تمام امکانات آن رایگان بوده و پشتیبانی هفتگی، ماهانه و سالانه را به صورت رایگان در اختیار مخاطبان قرار می‌دهد. این مزیت به شما کمک می‌کند تا بدون پرداخت هیچ هزینه‌ای از امکانات یک نرم‌افزار بهره ببرید.

پی اچ پی یک زبان برنامه‌نویسی سمت وب می‌باشد که برای پیاده‌سازی قسمت منطقی یک سایت مورد استفاده قرار می‌گیرد. هر وب‌سایت در عمل از دو بخش ظاهری (سمت فرانتد یا Frontend) و منطقی (سمت سرور یا Backend) تشکیل شده است. به تصویر زیر دقت کنید:

سمت سرور یا قسمت منطقی
اهمیت سمت سرور یا قسمت منطقی در وب‌سایت‌ها

در این عکس متوجه شده‌اید که بخش عمده‌ای از عملکرد یک وب‌سایت یا وب اپلیکیشن، به سمت سرور یا قسمت منطقی مربوط می‌شود.

در ساختار یک وب‌سایت، معمولاً قسمت ظاهری توسط زبان HTML و قسمت منطقی با استفاده از PHP ایجاد می‌شود. در واقع با ادغام این دو زبان می‌توان یک ساختار ثابت (استاتیک) و پویا (داینامیک) را ایجاد کرد.

سؤال: آیا نمی‌توان یک وب‌سایت را فقط و فقط با HTML تولید کرد؟

وب‌سایت‌هایی که تنها با HTML می‌شوند، با محدودیت‌های زیر مواجه هستند:

  • محدودیت در تعداد صفحات
  • عدم ویرایش مطالب
  • عدم ذخیره‌سازی اطلاعات کاربران
  • کاهش تعامل کاربر با سایت
  • کاهش آمار بازدید سایت
  • فاقد امنیت
  • غیرقابل ارائه به مشتریان

موارد فوق تنها بخش کوچکی از محدودیت‌های این کار است.

منظور از داینامیک و استاتیک چیست؟

بخش داینامیک یا پویا، شامل قسمت‌هایی از سایت بوده که با پایگاه‌داده (منبع ذخیره‌سازی اطلاعات) ارتباط دارد و تمام داده‌ها را در اختیار مخاطب قرار می‌دهد. این در حالیست که بخش استاتیک یا ثابت تنها شامل المان‌های ظاهری (مانند دکمه‌ها، رنگ‌بندی‌ها و ...) است. به عبارت دیگر تمام صفحات ابتدا توسط زبان PHP (سمت سرور) پردازش شده و سپس خروجی به صورت کدهای اچ‌تی‌ام‌ال در اختیار مرورگر قرار می‌گیرد تا به کاربر نمایش داده شود.

تفاوت وب‌سایت داینامیک با استاتیک
تفاوت وب‌سایت داینامیک با استاتیک

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

کاربردهای زبان PHP

هر کاری که تمام زبان‌های سمت سرور می‌توانند انجام دهند، PHP از عهده آن برمی‌آید؛ کارهایی مانند دریافت اطلاعات از فرم‌ها، تولید صفحات پویا یا داینامیک، ارسال اطلاعات به پایگاه‌داده و ذخیره‌سازی آن‌ها و ... در ادامه برخی از کاربردهای اصلی PHP اشاره می‌کنیم:

برنامه‌نویسی سمت سرور

مهم‌ترین یا بهتر بگوییم اصلی‌ترین کاربرد زبان PHP، تولید و پردازش قسمت منطقی (سمت سرور) یک سایت یا وب اپلیکیشن می‌باشد. برای اینکار باید به یک وب سرور و یک مرورگر دسترسی داشت.

برنامه‌نویسی Command Line یا خط فرمان

یکی دیگر از کاربردهای این زبان پیاده‌سازی بخش‌هایی از یک نرم‌افزار تحت ویندوز، لینوکس یا مک می‌باشد. مثلاً نرم‌افزار Task Scheduler که برای تنظیم زمان‌بندی در ویندوز می‌باشد، با استفاده از زبان PHP پیاده‌سازی شده است. در این حالت نیازی به وب سرور یا مرورگر نیست.

برنامه‌نویسی نرم‌افزارهای تحت دسکتاپ

امروزه نرم‌افزارهای بسیار زیادی تحت دسکتاپ نوشته شده‌اند که در سیستم عامل‌های مختلف (لینوکس، ویندوز، مک و ...) قابل استفاده هستند. ما با استفاده از زبان PHP می‌توانیم نرم‌افزارهای مختلفی را تحت دسکتاپ پیاده‌سازی کنیم. ولی باید توجه داشته باشیم که زبان PHP انتخاب اول ما برای تولید اینگونه نرم‌افزارها نیست!

در یک جمع بندی کلی، زبان PHP آزادی عمل بسیار مناسبی را برای شما فراهم می‌کند تا در هر سیستم عامل و مرورگری بتوانید برنامه‌های خود را اجرا کنید.

پایگاه‌داده چیست؟

در طی مباحث فوق، بارها کلمه پایگاه‌داده را ذکر کردیم اما به جزئیات آن نپرداختیم. پایگاه‌داده یا همان Database، به عنوان فضایی برای ذخیره‌سازی اطلاعات وب‌سایت یا وب اپلیکیشن معرفی می‌شود. یعنی یک وب‌سایت که به دیتابیس (پایگاه‌داده) متصل می‌شود، در هر لحظه توانایی بازگردانی یا فراخوانی اطلاعات را دارد. دقت داشته باشید که هر وب‌سایت داینامیک، باید به یک پایگاه‌داده متصل باشد.

یکی از نرم‌افزارهای مدیریت پایگاه‌داده (database management system یا به اختصار DBMS)، مای اس کیو آل (MySQL) می‌باشد. معمولاً در کنار زبان برنامه‌نویسی PHP، از این نرم‌افزار مدیریت پایگاه‌داده برای طبقه‌بندی، ذخیره‌سازی و فراخوانی اطلاعات استفاده می‌شود.

آشنایی با پایگاه داده

پیش‌نیاز آموزش PHP

برای یادگیری و آموزش PHP به موارد زیر نیاز دارید:

  • کار با محیط یک سیستم عامل مانند ویندوز، لینوکس یا مک
  • داشتن درک مناسب از ریاضی و منطق (این مورد را خیلی جدی نگیرید)
  • کار با یک ویرایشگر متن مانند Notepad++، PHPStorm، Visual Studio Code و ...
  • یادگیری زبان‌های HTML و CSS

اگر هریک از موارد فوق را در عمل بررسی کنیم، ما فقط به زبان HTML و CSS نیاز داریم. دلیل این امر، نمایش خروجی‌ها و اطلاعات در مرورگر است.

جذاب‌ترین بخش انتخاب یک زبان برنامه‌نویسی، بررسی مزیت‌ها و معایب آن زبان می‌باشد. در ادامه به توضیح این موارد می‌پردازیم.

مزایای آموزش PHP

PHP یک زبان رایگان و Open Source است

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

آموزش PHP آسان و سریع است

از آنجا که منابع بسیار زیادی به زبان فارسی و انگلیسی در اختیار است، یادگیری این زبان بسیار سریع صورت می‌گیرد. از طرفی، زبان PHP ساختار بسیار ساده و قابل درکی دارد و به لطف وجود توابع (Functions) و کتابخانه‌های (Libraries) فراوان، یادگیری آن بسیار آسان است.

انطباق‌پذیری عالی

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

بسیار منعطف و توسعه‌پذیر

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

سرعت بالا

در زبان برنامه‌نویسی PHP به دلیل عدم استفاده از منابع خارجی، سرعت بارگذاری و پردازش اطلاعات بسیار بالاست. یعنی وب‌سایت‌هایی که با استفاده از این زبان ساخته می‌شوند به نسبت سایر رقبا، سریع‌تر هستند.

پشتیبانی عالی

از آنجا که زبان PHP به عنوان یک زبان Open Source معرفی می‌شود، بروزرسانی آن به سرعت و توسط تعداد زیادی از توسعه‌دهنده‌ها انجام می‌شود. یعنی به دلیل دسترسی به سورس کدها، عملیات آپدیت و رفع باگ (خطا) بسیار سریع است.

معایب آموزش PHP

شاید این جملات کمی اغراق آمیز باشد اما باید بپذیریم که در عمل PHP معایب زیادی ندارد و مواردی که اشاره می‌شود تنها به دلیل عدم رعایت استاندارهای کدنویسی است:

عدم دسترسی به ساختار خطایابی مناسب

وقتی با زبان PHP‌ کدنویسی می‌کنید همواره به دنبال یک راه برای پیدا کردن خطاها و رفع آن‌ها هستید. در PHP دستیابی به این ساختار کمی پیچیده است. (راه حل:‌ استفاده از کتابخانه‌ها و فریم‌ورک‌های مناسب)

تعیین نکردن نوع داده

در PHP هنگامیکه یک متغییر تعریف می‌شود، نوع آن تعیین نمی‌گردد. این حالت باعث می‌شود که اعتبارسنجی متغییرها کمی سخت‌تر صورت بگیرد. اما دقت داشته باشید که همین مورد باعث می‌شود که روند یادگیری شما بسیار سریع‌تر شود، زیرا در حین کدنویسی درگیر نوع داده نمی‌شوید.

بازار کار و درآمد برنامه‌نویسان PHP

یکی از سوالاتی که پیش از انتخاب یک زبان برنامه‌نویسی در ذهن هر کسی ایجاد می‌شود، این است: «بازار کار این زبان در ایران چطور است؟ آیا اگر بخواهم بعدها دورکاری در خارج از کشور انجام دهم، درآمد خوبی خواهم داشت یا خیر؟»

در این بخش به صورت کامل به شرح درآمدزایی زبان PHP در ایران و خارج از کشور می‌پردازیم.

داخل ایران

زبان PHP در ایران به عنوان یکی از پرطرفدارترین زبان‌های سمت سرور شناخته می‌شود. یعنی به هر استارت‌آپ بزرگ و کوچکی که مراجعه کنید، حداقل با یک آگهی مبتنی بر «استخدام برنامه نویس مسلط به PHP» برخورد می‌کنید. دلیل این امر از یک طرف گستردگی این زبان در دنیای وب و از طرف دیگر CMSهایی (سیستم‌های مدیریت محتوا) چون وردپرس (Wordpress)، جوملا (Joomla)، مجنتو (Magento)، دروپال (Drupal) و ... است. یعنی به شما تضمین می‌دهیم که اگر زبان PHP را به صورت حرفه‌ای یاد بگیرید، محال است که بیکار باشید!

بر اساس تحقیقی که تیم روکسو از سایت‌های کاریابی ایران انجام داده است، حقوق یک برنامه نویس مسلط به PHP، به طور میانگین، ماهیانه ۱۷ الی ۵۰ میلیون تومان می‌باشد. دقت کنید که رقم فوق بنا به تجربه و تخصص فرد می‌تواند متغییر باشد.

خارج از ایران

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

میانگین حقوق برنامه نویسان PHP در خارج از کشور بر اساس آمار ارائه شده توسط وب‌سایت Glassdoor، سالیانه ۸۲۰۰۰ دلار است. به عبارت دیگر هر متخصص PHP در خارج از کشور به صورت ماهیانه مبلغ ۶۸۰۰ دلار درآمد خالص دارد.

میزان محبوبیت زبان PHP

آمارهای متنوع و زیادی درباره محبوبیت زبان PHP در دسترس است که معتبرترین آن توسط وب‌سایت PHP.net (مرجع رسمی زبان PHP) ارائه می‌شود. بر اساس آمار این سایت تا کنون بیش از ۲۴۴ میلیون سایت توسط زبان PHP تولید شده‌اند.
به عبارت دیگر حدود ۸۳ درصد سایت‌های موجود در اینترنت از زبان PHP استفاده می‌کنند.

83 درصد سایتها از php استفاده می کنند

این اعداد بدین معنیست که زبان PHP به عنوان یکی از محبوب‌ترین زبان‌های سمت سرور در طراحی وب شناخته می‌شود. این آمار مشخص می‌کند که آموزش PHP برای حضور موثر در دنیای PHP چقدر مهم است.