PHP چیست و چه کاربردی دارد؟ آشنایی با زبان برنامه نویسی پی اچ اپی
پی اچ پی php، آیا کنجکاو هستید که بدانید PHP چیست و چه کاربردی دارد؟ امروزه طراحی وب به یکی از پردرآمدترین شغلهای دنیا تبدیل شده است. اگر تصمیم دارید با آموزش php قدم در این دنیای بزرگ بگذارید، ممکن است در روزهای اول ورودتان به این حوزه، مانند بیشتر برنامه نویسان سردرگم شوید.
شاید سوالهای مختلفی در ذهن شما شکل گیرد و به طور مداوم در مورد مسیر پیش روی خود دچار شک و تردید شوید. از جمله این که:
PHP چیست؟ چرا باید PHP را انتخاب کرد؟ کاربردهای PHP چیست؟ یادگیری PHP را از کجا شروع کنیم؟
اگر قصد دارید با اطمینان و آگاهی کامل زبان برنامه نویسی PHP را انتخاب کنید، تا انتهای مقاله PHP چیست با ما همراه باشید. ما به شما این اطمینان را میدهیم که در پایان، پاسخ پرسشهای خود در مورد زبان PHP را دریافت خواهید کرد.
تاریخچه زبان برنامه نویسی PHP و نسخههای آن
همه چیز از زمانی شروع شد که Rasmus Lerdorf دانمارکی در سال ۱۹۹۴ تعدادی اسکریپت به منظور مدیریت یک سری از کارها در سایت شخصی خود با زبان برنامه نویسی Perl نوشت. Lerdorf با استفاده از این اسکریپتها که بر اساس استاندارد اسکریپتنویسی (Common Gateway Interface) نوشته شده بودند، آمار افرادی را که در حال خواندن رزومه اش بودند محاسبه و ذخیره کرد. او با این کار توجه افراد زیادی را به اسکریپت هایش جلب کرد و از او درخواست کردند تا اسکریپتها را برای آنها هم ارسال کند. بنابراین Lerdorf تصمیم گرفت که نام اسکریپتهای خود را PHP گذارد که مخفف عبارت Personal Home Page بود.
نسخههای PHP2 و PHP3
Lerdorf در سال 1997 زبان PHP را به نسخه دوم ارتقا داد و توانست نظر توسعه دهندههای زیادی را به خودش جلب کند. بازنویسی موتور پردازشی PHP در سال 1998 به پایان رسید و به عنوان نسخه سوم PHP عرضه شد. البته در همین سال تصمیم گرفتند که به کلمه PHP مفهومی جدید دهند. آنها تصمیم گرفتند که دیگر دو حرف میانی کلمه PHP برگرفته از عبارت Home Page نباشد و به عنوان مخففی از عبارت Hypertext Preprocessor در نظر گرفته شود.
منظور از این دو حرف به زبان ساده این است که زبان PHP اطلاعات را قبل از اینکه به صورت HTML به کاربر نمایش دهد، پردازش میکند و سپس آن را در قالب HTML به کاربر نمایش میدهد.(منظور از Hypertext ابر متن یا متنهای بزرگ و طولانی است که احتمال دارد در آن تصویر، جدول و… به کار رفته باشد که در حقیقت همان فایل HTML است که کاربر در قالب صفحات وب مشاهده میکند).
نسخه PHP4
به تدریج با گذشت زمان به تعداد توسعه دهندگان اولیه زبان PHP به منظور توسعه بخشهای دیگر این زبان اضافه شد و به این ترتیب بود که زبان برنامه نویسی PHP به یک پروژه متن باز یا Open Source تبدیل شد. در سال 2000 Zeev Suraski به همراه همکارش Andi Gutmans تصمیم به تاسیس شرکتی با نام Zend گرفتند. در آن شرکت هسته اصلی زبان PHP دوباره زیر تیغ جراحی توسعه دهندگان قرار گرفت و بازنویسی شد. در این بازنویسی تغییرات زیادی بر روی PHP اعمال شد که هسته آن را Zend Engine نامیدند و به عنوان نسخه چهارم از این زبان ارائه کردند.
نسخه PHP5
PHP در سال 2004 به نسخه پنج بروزرسانی شد. در این بروزرسانی تغییر و تحولات زیادی را در این زبان شاهد بودیم که مهمترین تغییرات آن میتوان به پشتیبانی از کدنویسی شی گرا و ارتباط بهتر با پایگاه داده اشاره کنیم. بنابراین میتوان نسخه پنجم از زبان PHP را نقطه عطف این زبان در دنیای برنامه نویسی بدانیم، چرا که در این بروزرسانی قابلیتها و امکانات زیادی به این زبان برنامه نویسی اضافه شد که کدنویسی با این زبان را بیش از پیش برای برنامه نویسان لذت بخشتر کرد.
نسخه PHP6
بعد از نسخه 5.6 ، نسخه هفتم PHP عرضه شد. زیرا تیم توسعه زبان PHP تصمیم داشتند در نسخه ششم، قابلیت پشتیبانی از Unicode را به این زبان اضافه کنند تا قادر باشد از کاراکترهای همه زبانهای دنیا پشتیبانی کند. اما آنها نتوانستند این قابلیت را به خوبی پیاده سازی کنند و به همین دلیل تصمیم گرفتند تا توسعه این نسخه از PHP متوقف شود.
نسخه PHP7
سال 2015، با عرضه نسخه هفتم PHP، این زبان دوست داشتنی دوران جوانی خود را پشت سر گذاشت و به دوران بلوغ و پختگی خودش وارد شد. به تعبیری این نسخه از PHP را میتوانیم به عنوان یکی از بزرگترین و بهترین بروزرسانیهای یک زبان برنامه نویسی به حساب آوریم. از جمله تغییرات مهم این نسخه میتوان به بهبود عملکرد، کاهش استفاده از حافظه تا حدود 50% و افزایش چشمگیر سرعت (حدودا دو برابر) اجرای آن اشاره کرد. PHP این افزایش سرعت و بهبود عملکرد را مدیون استفاده از نسخه سوم Zend Engine است.
یکی از اخبار جدید و خوشحال کننده برای php کارها اپدیت جدید این زبان برنامه نویسی است.
نسخه php8
در این نسخه که در آذر ماه سال 1399 معرفی شد تغیرات مهمی از جمله پیدایش jit است.
Jit به معنی این است که برنامههای نوشته شده با این زبان برنامه نویسی در عین پردازش اجرا میشوند و نه تنها این عامل باعث افرایش سرعت این زبان برنامه نویسی بالا رفته مصرف ریسورسها و منابع مورد نیاز برای اجرای برنامه کاهش پیدا کرده است.این تنها یکی از قابلیتهای این ورژن از php است. برای مطالعه ی بیشتر میتوانید به مقاله ی ویژگیهای جدید php 8 مراجعه کنید.
زبان برنامه نویسی PHP چیست؟
حالا که با یکدیگر تاریخچه زبان برنامه نویسی PHP را مرور کردیم و فهمیدیم این زبان چگونه ساخته شده است و تا به امروز دستخوش چه تغییراتی بوده است، نوبت میرسد تا برگردیم به اولین سوال خود تا بدانیم PHP چیست و یک تعریف کامل و جامع از آن داشته باشیم.
PHP یک زبان تفسیرشونده است که اساس و بنیان آن طراحی و ایجاد صفحات پویای وب بوده است. به عبارتی دیگر، کسانی که وظیفه کدنویسی سایت را بر عهده دارند با استفاده از زبان PHP قادر خواهند بود وب اپلیکیشنهایی طراحی کنند که به صورت تعاملی میباشند. منظور از تعاملی بودن وجود قابلیت هایی مانند سطوح دسترسی مختلف برای کاربران، امکان ثبتنام در سایت، پنل کاربری ، ذخیره اطلاعات کاربران و بسیاری از امکانات دیگر است که امروزه در تمامی سایتهای امروزی مشاهده میکنیم.
از نقاط قوت این زبان میتوان به وجود فریمورکهای بسیار قدرتمند و محبوبی هم چون لاراول و سیمفونی، دارا بودن بیش از 80% از سهم بازار وب ، متن باز و رایگان بودن ، جامعه بزرگ و پشتیبانی خوب اشاره کرد. از طرفی PHP توانسته است خودش را به عنوان یکی از محبوبترین زبانهای برنامه نویسی در حوزه طراحی وب معرفی کند.
PHP چیست؟ شروع برنامه نویسی با زبان PHP
می دانیم شما هم مانند هر برنامه نویس دیگری شور و اشتیاق زیادی برای شروع کدنویسی دارید ولی در این بخش از مقاله قصد ورود به آموزش پیشرفته PHP را نداریم ، چون هنوز قصد داریم در مورد PHP با شما صحبت کنیم. ولی خالی از لطف نیست اگر برنامه Hello World نوشته شده با PHP را ببینید تا یک دید کلی در مورد آن در ذهنتان داشته باشید. کد زیر با استفاده از زبان PHP که درون کدهای HTML قرار گرفته، نوشته شده است:
از آنجایی که PHP نیازی ندارد که الزاما در درون کدهای HTML به کار رود، کوتاهترین برنامه Hello World آن به صورت زیر است:
مفسر PHP فقط کدهایی که داخل جداکنندههای PHP قرار گیرند را تفسیر میکند و تمامی دستوراتی که خارج از جداکنندههای آن قرار گیرند، تفسیر نمیشوند. معروفترین جداکننده زبان PHP علامت <? و ?php> است.
نام متغیرها در زبان PHP حتماً باید با نماد دلار یا $ شروع شود و برخلاف بسیاری از زبانهای برنامه نویسی دیگر نیازی به مشخص کردن نوع آنها نمیباشد. نام متغیرها در این زبان به بزرگ و کوچک بودن حروف حساس است. از طرفی دیگر در PHP خطوط جدید و فاصلهها نادیده گرفته میشوند (به جز فاصلههایی که در درون رشتهها قرار داشته باشند) و همه دستورهای آن باید با علامت سمیکولن (;) تمام شوند.
زبان برنامه نویسی مفسری چیست؟
شاید بهتر باشد این موضوع را این چنین مطرح کنیم که تفاوت بین زبانهای برنامه نویسی مفسری با زبانهای کامپایلری چیست؟ در یک جمله باید گفت کار هر دو مدل این زبانها ترجمه و پردازش است! ولی هر کدام با روشی متفاوت این کار را انجام میدهند که مزایا و معایب خاص خود را دارند.
به طور کلی به زبان هایی تفسیرشونده یا Interpreted میگوییم که سورس کد آنها به صورت یکباره کامپایل (پردازش، ترجمه و اجرا) نمیشود بلکه هرخط از کد آن توسط برنامههای مفسر یا تفسیرکننده (Interpreter) به صورت خط به خط بررسی و سپس تفسیر و اجرا میشوند.
روش ترجمه و اجرای مفسر برای سورس کدی که مثلا در چهل خط نوشته شده است به این صورت است که خط اول آن را دریافت میکند و پس از ترجمه به زبان ماشین، در صورتی که آن خط از سورس بدون خطا اجرا شده باشد، به خط بعدی میرود و مقدار متغیر در آن خط را ذخیره میکند. این فرآیند را خط به خط انجام میدهد تا به صورت کامل تمام سورس کد آن را ترجمه و اجرا کند.
بهترین مثال برای درک نحوه کارکرد زبانهای مفسری ، در نظر گرفتن مربی خارجی زبان یک تیم فوتبال است که برای ارتباط با بازیکنان خود نیاز به یک مترجم فارسی زبان دارد. برای مثال مترجم کارلوس کیروش (مربی سابق تیم ملی) را در نظر بگیرید. زمانی که کیروش یک یا چند جمله کوتاه میگوید، مکث میکند تا مترجم آنها را دریافت و سپس ترجمه کند. زمانی که ترجمه آنها تمام شد منتظر میماند تا جملات جدید را از او دریافت و مجددا ترجمه کند. مفسرها هم به همین صورت عمل میکنند.
PHP یک زبان مفسری
همانطور که اشاره شد، زبان PHP به صورت مفسری کدها را ترجمه و اجرا میکند. زبانهای مفسری نسبت به زبانهای کامپایلری کندتر میباشند ولی در عوض عملیات دیباگ کردن یا خطایابی آنها راحتتر صورت میگیرد. از طرفی محصول نهایی زبانهای مفسری برخلاف زبانهای کامپایلری که یک خروجی واحد ارائه میدهند سورس کد نوشته شده است.
زبان برنامه نویسی کامپایلری چیست؟
به زبان هایی کامپایل شده یا Compiled میگوییم که تمام سورس کد آنها به صورت یکباره کامپایل میشود و بعد از این عمل خروجی آنها به صورت یک نرم افزار مستقل در اختیار کاربر قرار میگیرد. در حقیقت کامپایلر کدهای نوشته شده توسط کاربر را بعد از تست، به کدهایی فشرده و قابل فهم برای سیستم تبدیل میکند که به صورت سریع اجرا میشوند.
در روش کامپایلری، برای مثال اگر سورس کدی در چهل خط نوشته شده باشد، تمام کدهای آن به صورت یکجا دریافت و ترجمه میشوند و در نهایت یک فایل خروجی به کاربر تحویل میدهد. برای اجرای خروجی زبانهای کامپایلری دیگر نیازی به اجرای مجدد این عملیات (کامپایل شدن) وجود ندارد. فایلهای با پسوند exe که حتما با آنها سر و کار داشته اید مثالی از خروجی زبانهای کامپایلری میباشند. سرعت زبانهای کامپایلری از زبانهای مفسری بیشتر است ولی از طرفی دیگر دیباگ و خطایابی آنها نسبت به زبانهای مفسری دشوارتر محسوب میشود.
اگر بخواهیم عملکرد زبانهای کامپایلری را در قالب یک مثال ساده بررسی کنیم، با فرض اینکه متنی که به زبان خارجی نوشته میشود کدهای برنامه نویسی باشند Google Translate بهترین مثال برای در نظر گرفتن است. در Google Translate همانطور که دیده اید ابتدا تمام جمله نوشته شده را دریافت میشود و سپس آن را به صورت یکباره ترجمه میکند و به کاربر تحویل میدهد که این فرآیند مشابه نحوه عملکرد زبانهای کامپایلری است.
تفاوت زبانهای سمت سرور و سمت کاربر چیست؟
به زبان هایی سمت کاربر یا Client-side میگوییم که در مرورگر کاربر پردازش و اجرا میشوند. برای مثال جاوا اسکریپت در مرورگر کاربر اجرا میشود بنابراین جزو زبانهای سمت کاربر محسوب میشود. از آنجایی که این نوع زبانهای برنامه نویسی در سیستم کاربر پردازش میشوند، سخت افزار و نوع سیستم کاربر میتواند در سرعت اجرای آنها تاثیرگذار باشد.
اما زبان هایی مانند PHP در سرور (مربوط به سایت) پردازش و اجرا و در نهایت خروجی آن به سوی کاربر ارسال میشود. به همین دلیل به زبان هایی مانند PHP سمت سرور یا Server-Side میگوییم. از آنجایی که پیاچپی در سمت سرور اجرا میشود، برای برقراری ارتباط بین کاربر و سرور نیاز نرم افزاری دارد که به آن وب سرور میگوییم.