تالار گفتگوی کیش تک/ kishtech forum
php چیست - نسخه‌ی قابل چاپ

+- تالار گفتگوی کیش تک/ kishtech forum (http://forum.kishtech.ir)
+-- انجمن: پردیس فناوری کیش (http://forum.kishtech.ir/forumdisplay.php?fid=1)
+--- انجمن: فناوری اطلاعات و ارتباطات (http://forum.kishtech.ir/forumdisplay.php?fid=6)
+--- موضوع: php چیست (/showthread.php?tid=43809)



php چیست - erfan_dn78 - 12-08-2020

همه چیز از زمانی شروع شد که Rasmus Lerdorf دانمارکی در سال ۱۹۹۴ تعدادی اسکریپت به منظور مدیریت یک سری از کارها در سایت شخصی خود با زبان برنامه نویسی Perl نوشت. Lerdorf با استفاده از این اسکریپت‌ها که بر اساس استاندارد اسکریپت‌نویسی (Common Gateway Interface) نوشته شده بودند، آمار افرادی را که در حال خواندن رزومه اش بودند محاسبه و ذخیره کرد. او با این کار توجه افراد زیادی را به اسکریپت هایش جلب کرد و از او درخواست کردند تا اسکریپت‌ها را برای آن‌ها هم ارسال کند. بنابراین Lerdorf تصمیم گرفت که نام اسکریپت‌های خود را PHP گذارد که مخفف عبارت Personal Home Page بود.
Lerdorf در سال 1997 زبان PHP را به نسخه دوم ارتقا داد و توانست نظر توسعه دهنده‌های زیادی را به خودش جلب کند. بازنویسی موتور پردازشی PHP در سال 1998 به پایان رسید و به عنوان نسخه سوم PHP عرضه شد. البته در همین سال تصمیم گرفتند که به کلمه PHP مفهومی جدید دهند. آن‌ها تصمیم گرفتند که دیگر دو حرف میانی کلمه PHP برگرفته از عبارت Home Page نباشند و به عنوان مخففی از عبارت Hypertext Preprocessor در نظر گرفته شوند.
منظور از این دو حرف به زبان ساده این است که زبان PHP اطلاعات را قبل از اینکه به صورت HTML به کاربر نمایش دهد، پردازش می‌کند و سپس آن را در قالب HTML به کاربر نمایش می‌دهد.(منظور از Hypertext ابر متن یا متن‌های بزرگ و طولانی است که احتمال دارد در آن تصویر، جدول و... به کار رفته باشد که در حقیقت همان فایل HTML است که کاربر در قالب صفحات وب مشاهده می‌کند).
به تدریج با گذشت زمان به تعداد توسعه دهندگان اولیه زبان PHP به منظور توسعه بخش‌های دیگر این زبان اضافه شد و به این ترتیب بود که زبان برنامه نویسی PHP به یک پروژه متن باز یا Open Source تبدیل شد. در سال 2000 Zeev Suraski به همراه همکارش Andi Gutmans تصمیم به تاسیس شرکتی با نام Zend گرفتند. در آن شرکت هسته اصلی زبان PHP دوباره زیر تیغ جراحی توسعه دهندگان قرار گرفت و بازنویسی شد. در این بازنویسی تغییرات زیادی بر روی PHP اعمال شد که هسته آن را Zend Engine نامیدند و به عنوان نسخه چهارم از این زبان ارائه کردند.
PHP در سال 2004 به نسخه پنج بروزرسانی شد. در این بروزرسانی تغییر و تحولات زیادی را در این زبان شاهد بودیم که مهمترین تغییرات آن می‌توان به پشتیبانی از کدنویسی شی گرا و ارتباط بهتر با پایگاه داده اشاره کنیم. بنابراین می‌توان نسخه پنجم از زبان PHP را نقطه عطف این زبان در دنیای برنامه نویسی بدانیم، چرا که در این بروزرسانی قابلیت‌ها و امکانات زیادی به این زبان برنامه نویسی اضافه شد که کدنویسی با این زبان را بیش از پیش برای برنامه نویسان لذت بخش‌تر کرد.
 بعد از نسخه 5.6 ، نسخه هفتم PHP عرضه شد. زیرا تیم توسعه زبان PHP تصمیم داشتند در نسخه ششم، قابلیت پشتیبانی از Unicode را به این زبان اضافه کنند تا قادر باشد از کاراکترهای همه زبان‌های دنیا پشتیبانی کند. اما آن‌ها نتوانستند این قابلیت را به خوبی پیاده سازی کنند و به همین دلیل تصمیم گرفتند تا توسعه این نسخه از PHP متوقف شود.
سال 2015، با عرضه نسخه هفتم PHP، این زبان دوست داشتنی دوران جوانی خود را پشت سر گذاشت و به دوران بلوغ و پختگی خودش وارد شد. به تعبیری این نسخه از PHP را می‌توانیم به عنوان یکی از بزرگترین و بهترین بروزرسانی‌های یک زبان برنامه نویسی به حساب آوریم. از جمله تغییرات مهم این نسخه می‌توان به بهبود عملکرد، کاهش استفاده از حافظه تا حدود 50% و افزایش چشمگیر سرعت (حدودا دو برابر) اجرای آن اشاره کرد. PHP این افزایش سرعت و بهبود عملکرد را مدیون استفاده از نسخه سوم Zend Engine است.

زبان برنامه نویسی PHP چیست؟

[تصویر:  dsadas-1.jpg]
حالا که با یکدیگر تاریخچه زبان برنامه نویسی PHP را مرور کردیم و فهمیدیم این زبان چگونه ساخته شده است و تا به امروز دستخوش چه تغییراتی بوده است، نوبت می‌رسد تا برگردیم به اولین سوال خود تا بدانیم PHP چیست و یک تعریف کامل و جامع از آن داشته باشیم.
PHP یک زبان تفسیرشونده است که اساس و بنیان آن طراحی و ایجاد صفحات پویای وب بوده است. به عبارتی دیگر، کسانی که وظیفه کدنویسی سایت را بر عهده دارند با استفاده از زبان PHP قادر خواهند بود وب اپلیکیشن‌هایی طراحی کنند که به صورت تعاملی می‌باشند. منظور از تعاملی بودن وجود قابلیت هایی مانند سطوح دسترسی مختلف برای کاربران، امکان ثبت‌نام در سایت، پنل کاربری ، ذخیره اطلاعات کاربران و بسیاری از امکانات دیگر است که امروزه در تمامی سایت‌های امروزی مشاهده می‌کنیم.
از نقاط قوت این زبان می‌توان به وجود فریمورک‌های بسیار قدرتمند و محبوبی هم چون لاراول و سیمفونی، دارا بودن بیش از 80% از سهم بازار وب ، متن باز و رایگان بودن ، جامعه بزرگ و پشتیبانی خوب اشاره کرد. از طرفی PHP توانسته است خودش را به عنوان یکی از محبوب‌ترین زبان‌های برنامه نویسی در حوزه طراحی وب معرفی کند.

ساختار کلی مبانی PHP چیست؟

می دانیم شما هم مانند هر برنامه نویس دیگری شور و اشتیاق زیادی برای شروع کدنویسی دارید ولی در این بخش از مقاله قصد ورود به آموزش پیشرفته PHP را نداریم ، چون هنوز قصد داریم در مورد PHP با شما صحبت کنیم. ولی خالی از لطف نیست اگر برنامه Hello World نوشته شده با PHP را ببینید تا یک دید کلی در مورد آن در ذهنتان داشته باشید. کد زیر با استفاده از زبان PHP که درون کدهای HTML  قرار گرفته، نوشته شده است:
<!DOCTYPE html>

<meta charset="utf-8">

<title>PHP Test By 7learn</title>

<?php

 echo 'Hello World';

?>

از آنجایی که PHP نیازی ندارد که الزاما در درون کدهای HTML به کار رود، کوتاه‌ترین برنامه Hello World آن به صورت زیر است:
<?= 'Hello world';
مفسر PHP فقط کدهایی که داخل جداکننده‌های PHP قرار گیرند را تفسیر می‌کند و تمامی دستوراتی که خارج از جداکننده‌‌های آن قرار گیرند، تفسیر نمی‌شوند. معروف‌ترین جداکننده‌ زبان PHP علامت <? و ?php> است.
نام متغیرها در زبان PHP حتماً باید با نماد دلار یا $ شروع شود و برخلاف بسیاری از زبان‌های برنامه نویسی دیگر نیازی به مشخص کردن نوع آن‌ها نمی‌باشد. نام متغیرها در این زبان به بزرگ و کوچک بودن حروف حساس است. از طرفی دیگر در PHP خطوط جدید و فاصله‌ها نادیده گرفته می‌شوند (به جز فاصله‌هایی که در درون رشته‌ها قرار داشته باشند) و همه دستورهای آن باید با علامت سمی‌کولن (Wink تمام شوند.
آشنایی با زبان‌های مفسری
شاید بهتر باشد این موضوع را این چنین مطرح کنیم که تفاوت بین زبان‌های برنامه نویسی مفسری با زبان‌های کامپایلری چیست؟ در یک جمله باید گفت کار هر دو مدل این زبان‌ها ترجمه و پردازش است! ولی هر کدام با روشی متفاوت این کار را انجام می‌دهند که مزایا و معایب خاص خود را دارند.
به طور کلی به زبان هایی تفسیرشونده یا Interpreted می‌گوییم که سورس کد آن‌ها به صورت یکباره کامپایل (پردازش، ترجمه و اجرا) نمی‌شود بلکه هرخط از کد آن توسط برنامه‌های مفسر یا تفسیرکننده (Interpreter) به صورت خط به خط بررسی و سپس تفسیر و اجرا می‌شوند.
روش ترجمه و اجرای مفسر برای سورس کدی که مثلا در چهل خط نوشته شده است به این صورت است که خط اول آن را دریافت می‌کند و پس از ترجمه به زبان ماشین، در صورتی که آن خط از سورس بدون خطا اجرا شده باشد، به خط بعدی می‌رود و مقدار متغیر در آن خط را ذخیره می‌کند. این فرآیند را خط به خط انجام می‌دهد تا به صورت کامل تمام سورس کد آن را ترجمه و اجرا کند.
بهترین مثال برای درک نحوه کارکرد زبان‌های مفسری ، در نظر گرفتن مربی خارجی زبان یک تیم فوتبال است که برای ارتباط با بازیکنان خود نیاز به یک مترجم فارسی زبان دارد. برای مثال مترجم کارلوس کیروش (مربی سابق تیم ملی) را در نظر بگیرید. زمانی که کیروش یک یا چند جمله کوتاه می‌گوید، مکث می‌کند تا مترجم آن‌ها را دریافت و سپس ترجمه کند. زمانی که ترجمه آن‌ها تمام شد منتظر می‌ماند تا جملات جدید را از او دریافت و مجددا ترجمه کند. مفسر‌ها هم به همین صورت عمل می‌کنند.
همانطور که اشاره شد، زبان PHP به صورت مفسری کدها را ترجمه و اجرا می‌کند. زبان‌های مفسری نسبت به زبان‌های کامپایلری کندتر می‌باشند ولی در عوض عملیات دیباگ کردن یا خطایابی آن‌ها راحت‌تر صورت می‌گیرد. از طرفی محصول نهایی زبان‌های مفسری برخلاف زبان‌های کامپایلری که یک خروجی واحد ارائه می‌دهند سورس کد نوشته شده است.
آشنایی با زبان‌های کامپایلری
به زبان هایی کامپایل شده یا Compiled می‌گوییم که تمام سورس کد آن‌ها به صورت یکباره کامپایل می‌شود و بعد از این عمل خروجی آن‌ها به صورت یک نرم افزار مستقل در اختیار کاربر قرار می‌گیرد. در حقیقت کامپایلر کدهای نوشته شده توسط کاربر را بعد از تست، به کدهایی فشرده و قابل فهم برای سیستم تبدیل می‌کند که به صورت سریع اجرا می‌شوند.
در روش کامپایلری، برای مثال اگر سورس کدی در چهل خط نوشته شده باشد، تمام کدهای آن به صورت یکجا دریافت و ترجمه می‌شوند و در نهایت یک فایل خروجی به کاربر تحویل می‌دهد. برای اجرای خروجی زبان‌های کامپایلری دیگر نیازی به اجرای مجدد این عملیات (کامپایل شدن) وجود ندارد. فایل‌های با پسوند exe که حتما با آن‌ها سر و کار داشته اید مثالی از خروجی زبان‌های کامپایلری می‌باشند. سرعت زبان‌های کامپایلری از زبان‌های مفسری بیشتر است ولی از طرفی دیگر دیباگ و خطایابی آن‌ها نسبت به زبان‌های مفسری دشوارتر محسوب می‌شود.
اگر بخواهیم عملکرد زبان‌های کامپایلری را در قالب یک مثال ساده بررسی کنیم، با فرض اینکه متنی که به زبان خارجی نوشته می‌شود کدهای برنامه نویسی باشند Google Translate بهترین مثال برای در نظر گرفتن است. در Google Translate همانطور که دیده اید ابتدا تمام جمله نوشته شده را دریافت می‌شود و سپس آن را به صورت یکباره ترجمه می‌کند و به کاربر تحویل می‌دهد که این فرآیند مشابه نحوه عملکرد زبان‌های کامپایلری است.
آشنایی با تفاوت زبان‌های سمت سرور و سمت کاربر
به زبان هایی سمت کاربر یا Client-side می‌گوییم که در مرورگر کاربر پردازش و اجرا می‌شوند. برای مثال جاوا اسکریپت در مرورگر کاربر اجرا می‌شود بنابراین جزو زبان‌های سمت کاربر محسوب می‌شود. از آنجایی که این نوع زبان‌های برنامه نویسی در سیستم کاربر پردازش می‌شوند، سخت افزار و نوع سیستم کاربر می‌تواند در سرعت اجرای آن‌ها تاثیرگذار باشد.
اما زبان هایی مانند PHP در سرور (مربوط به سایت) پردازش و اجرا و در نهایت خروجی آن به سوی کاربر ارسال می‌شود. به همین دلیل به زبان هایی مانند PHP سمت سرور یا Server-Side می‌گوییم. از آنجایی که پی‌اچ‌پی در سمت سرور اجرا می‌شود، برای برقراری ارتباط بین کاربر و سرور نیاز نرم افزاری دارد که به آن وب سرور می‌گوییم.
نکته :


سرور یک سیستم سخت افزاری است که یک وب سایت روی آن اجرا می‌شود ولی وب سرور نرم افزاری است که وظیفه مدیریت درخواست‌ها و اطلاعات را در این سیستم سخت افزاری بر عهده دارد. همچنین اصطلاح اپ سرور به معنای نرم افزار یا وب سایتی است که توسط ما نوشته شده است.


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