پیاچپی (PHP) یک زبان برنامهنویسیِ شیءگرا و برای سرور است که برای طراحی وب توسعه یافتهاست، اما میتوان از آن به عنوان یک زبان عمومی نیز استفادهکرد. تا ژانویهٔ سال ۲۰۱۳ میلادی، پیاچپی روی ۲۴۴ میلیون وبگاه و ۲٫۱ میلیون سرور وب نصب شدهاست. این زبان در سال ۱۹۹۵ میلادی توسط راسموس لِردورف (به انگلیسی: Rasmus Lerdorf) ساختهشد و در حال حاضر توسعهٔ آن بر عهدهٔ گروه پیاچپی است. در ابتدا، پیاچپی از عبارت صفحهٔ خانگی شخصی (به انگلیسی: Personal Home Page) گرفته شدهبود. اما اکنون این کلمه مخففِ بازگشتی PHP: Hypertext Preprocessor به معنی پیاچپی: پیشپردازندهی ابرمتن است.
کدهای پیاچپی توسط یک سرور وب که نرمافزار پیاچپی روی آن نصب باشد، تفسیر میشود. دستورهای این زبان میتوانند به صورت مستقیم در درون کدهای اچتیامال قرار بگیرند. زبان پیاچپی از نسخهٔ ۴٫۳ به بعد قابلیت پشتیبانی از واسط خط فرمان را نیز به امکانات خود اضافه کرد. این قابلیت میتواند برای ایجاد نرمافزارهای غیر وبی یا نرمافزارهایی با واسط گرافیکی کاربر مورد استفاده قرار بگیرد.
پیاچپی یک نرمافزار آزاد است که تحت مجوز پیاچپی انتشار یافتهاست. این مجوز به دلیل قرار دادن محدودیت روی استفاده از عنوان پیاچپی، با مجوز همگانی گنو (GPL) سازگار نیست. پیاچپی را میتوان روی اکثر سرورهای وب نصب کرد. همچنین قابلیت نصب آن به صورت یک شل جداگانه روی تقریباً تمامی سیستمهای عامل و پلتفرمها (یا سکوها) وجود دارد. تمامی این استفادهها رایگان است.
تاریخچه
توسعهٔ پیاچپی از سال ۱۹۹۴ و زمانی آغاز شد که راسموس لردورف تعدادی اسکریپت به زبان سی نوشت تا صفحهٔ خانگی خود را مدیریت کند. این اسکریپتها که به صورت رابط دروازهٔ مشترک (به انگلیسی: Common Gateway Inteface) نوشته شدهبودند، مسئول انجام عملیاتهای سادهای مانند نشان دادن رزومهٔ راسموس و بررسی آمارهای بازدید از وبگاه او بودند.
با گسترش اسکریپتها و افزودن توانایی تعامل با فرمهای وب و ارتباط با پایگاههای داده، نام صفحهٔ خانگی شخصی/مفسر فرم (به انگلیسی: Personal Home Page/Form Interpreter) یا PHP/FI برای آنها انتخاب شد. PHP/FI میتوانست برای ایجاد نرمافزارهای سادهٔ وب استفاده شود.
در ابتدا، لردورف برای یافتن خطاهای این اسکریپتها و بهبود آنها، در ۸ جون سال ۱۹۹۵ میلادی اسکریپتها را با نام ابزارهای صفحهٔ خانگی شخصی نسخهٔ ۱٫۰ (به انگلیسی: Personal Home Page Tools version 1.0) تحت مجوز عمومی گنو روی گروه خبری یوزنت منتشر کرد. این نسخهٔ اولیه بسیاری از ویژگیهای نسخهٔ کنونی این زبان را داشت. متغیرها به سبک زبان پرل بودند، مدیریت فرمها وجود داشت و میشد کدها را در درون کدهای اچتیامال قرار داد. قواعد پیاچپی نیز از زبان پرل پیروی میکردند، اما سادهتر، محدودتر و ناپایدارتر بودند. با شکلگیری یک گروه برنامهنویسی و بعد از انجام ارزیابی های فراوان روی نسخهٔ بتا و بازنویسی موتور تجزیهکننده، سرانجام PHP/FI نسخهٔ ۲٫۰ در نوامبر سال ۱۹۹۷ میلادی منتشر گردید.
تغییر نام
اندی گاتسمن و زیو سوراسکی با بازنویسی موتور تجزیهکننده در سال ۱۹۹۷ میلادی پایه و اساس نسخهٔ ۳ پیاچپی را بنیان نهادند. این دو نفر با همراهی لردورف با تغییر نام پیاچپی به پیاچپی: پیشپردازندهٔ ابرمتن (به انگلیسی: PHP: Hypertext Preprocessor) که یک مخفف بازگشتی است، در ماه جون ۱۹۹۸ میلادی رسماً پیاچپی نسخهٔ ۳٫۰ را منتشر کردند. بعد از این اتفاق گاتسمن و سوراسکی شروع به نوشتن هستهٔ جدیدی برای زبان پیاچپی کردند که منجر به به وجود آمدن موتور زِند در سال ۱۹۹۹ میلادی شد. آنها همچنین شرکت زِند تکنولوژی را در کشور اسرائیل تأسیس کردند.
در تاریخ ۲۲ مه سال ۲۰۰۰ میلادی، پیاچپی نسخهٔ ۴ که از موتور زند نسخهٔ ۱٫۰ استفاده میکرد، منتشر شد. این نسخه تا ماه اوت سال ۲۰۰۸ میلادی توسعه یافت و به زیرنسخهٔ ۴٫۴٫۹ رسید. هماکنون پشتیبانی این نسخه به پایان رسیدهاست و هیچ بهروزرسانی برای آن منتشر نمیشود.
نسخه 6
در ۱۳ ژوئیه سال ۲۰۰۴ میلادی، نسخهٔ ۵ پیاچپی که از موتور زند نسخهٔ ۲ بهره میبرد، منتشر شد. نسخهٔ ۵ ویژگیهای زیادی را به پیاچپی اضافه کرد. پشتیبانی کامل از شیء گرایی، افزونهٔ PDO (PHP Data Object Extension) (که دسترسی به بانکهای اطلاعاتی را ممکن میساخت) و بهبود بازدهی از جملهٔ این ویژگیها محسوب میشد. از سال ۲۰۰۸ به بعد، با پایان یافتن پشتیبانی از تمامی نسخههای قدیمیتر پیاچپی، نسخهٔ ۵ تنها نسخهٔ در حال گسترش است.
در کنار نسخهٔ ۵ پیاچپی یک نسخهٔ اصلی دیگر در حال توسعه است. با توجه به تغییرات عمدهٔ موجود در این نسخه از جمله پشتیبانی کامل از یونیکد، قرار بود این نسخه به عنوان نسخهٔ ۶ پیاچپی منتشر گردد. اما پیادهسازی پشتیبانی از یونیکد بیش از آنچه انتظار میرفت، به طول انجامید. این امر باعث شد تا در مارس سال ۲۰۱۰ میلادی، این نسخه به بخش در حال توسعه (به انگلیسی: Trunk) منتقل شد و دیگر به آن نسخهٔ ۶ گفته نمیشود.
مهم ترین تغییرات
مهمترین تغییرات این بخش جدید: حذف register_globals
، magic quotes
و safe mode
. دلیل حذف magic quotes
تأثیرات غیرقابل پیشبینی و دلیل حذف register_globals
خطرهای امنیتی بود که در نرمافزارها ایجاد میکرد. به جای استفاده از magic qoutes
برنامهنویس میتواند از تابع addslashes()
یا توابع دقیقتری استفاده کنند که برای هر پایگاه داده ایجاد شدهاند، مانند mysql_real_escape_string()
که برای پایگاه داده مایاسکیوال طراحی شدهاست. توابعی که قرار است در نسخهٔ ۶ حذف شوند، از نسخهٔ ۵٫۳ به صورت توصیهنشده (به انگلیسی: Deprecated) درآمدهاند و استفاده از آنها باعث بروز هشدار در نرمافزار خواهد شد.
تعداد بسیار زیادی از پروژههای بزرگ و متنباز که از زبان پیاچپی استفاده میکنند، از سال ۲۰۰۸ با به وجود آمدن جنبش ابتکاری GoPHP5 به معنای برو به پیاچپی ۵ دیگر از پیاچپی نسخهٔ ۴ استفاده نمیکنند. این جنبش توسط بسیاری از توسعهدهندگان پیاچپی پشتیبانی شد تا بتوانند به گسترش استفاده از نسخهٔ ۵ پیاچپی کمک کنند.
مفسرهای زبان پیاچپی برای هر دو معماری ۳۲بیتی و ۶۴بیتی موجود است. تنها استثنا سیستمعامل ویندوز است که فقط نسخههای ۳۲بیتی برای آن منتشر میشود. اما مدتی است که نسخههای ۶۴بیتی ویندوزی نیز به صورت امتحانی روی وبگاه پیاچپی منتشر میشوند و استفاده از نسخههای امتحانی ۶۴بیتی ویندوز برای سرورهای بزرگ توصیه نمیشود.
نماد
elePHPant نام نماد پروژه پیاچپی است، یک فیل آبی با آرم پیاچپی در کنارش، که توسط وینسنت پانتیر (به انگلیسی: Vincent Pontier) در سال ۱۹۹۸ طراحی شد.
«اگر در یک زاویه به طرفین نگاه کنید، حروف (PHP) شکل یک فیل را تشکیل میدادند.»
تغییرات زیادی از این نماد در طول سالها ساخته شدهاست. فقط elePHPantهای بر اساس طرح اصلی وینسنت پانتیر توسط جامعه، رسمی در نظر گرفته میشوند.