به عنوان توسعه دهنده ی وب، شاید بد نباشه مسیر توسعه و پیشرفت زبان PHP رو بدونیم.
در ادامه نقات قوت و خصیصه های ذاتی و تفاوت نسخه های PHP رو شرح میدیم.

ریشه ی PHP برمیگرده به سال 1995، زمانیکه توسعه دهنده ی نرم افزار به نام Rasmus Lerdorf با توسعه دادن یک اسکریپت PERL/CGI متوجه شد که چه تعداد بیننده، رزومه ی آنلاین او را خوانده اند.

اسکریپت او دو وظیفه را انجام میداد:
1. ورود به سیستم
2. نمایش تعداد بازدیدکنندگان صفحه ی وب

از آنجایی که وب در آن زمان هنوز تکنولوژی نوپایی بود، ابزاری مثل اسکریپت Lerdorf وجود نداشت. بنابراین اسکریپت لردورف، علاقه مندان زیادی را به خود جلب کرد.
نسخه ی اول این اسکریپت Pesonal Home Page Tools یا PHP Tools نامیده شد. تقاضای بالا باعث شد، لردورف توسعه ی این زبان را ادامه دهد.

شاید قابل توجه ترین ویژگی در اوایل کار، تبدیل داده های (وارد شده توسط کاربر) داخل یک فرم HTML به متغیر های مشخص بود. برای انجام این کار، او تصمیم گرفت برای ادامه ی کار از زبان C استفاده کند.(بجای استفاده از PERL)پیشرفت مجموعه ابزار های PHP در نوامبر سال 1997 با انتشار PHP 2.0 یا (Personal Home Page/Form Interpreter (PHP/FI به اوج خود رسید.

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

آنها ذات اولیه یعنی ترکیب PHP با HTML (استفاده ی این دو در کنار هم) را نگه داشتند و فقط هسته ی PHP را بازنویسی کردند، که منجر به روی کار آمدن PHP 3.0شد. از این نسخه، PHP به PHP: Hypertext Preprocessor تغییر نام داد.
با انتشار PHP 3.0 در سال 1998، کاربران این حوزه به بیش از 50 هزار نفر رسیدند. توسعه با سرعت بیشتری بیش از دو سال ادامه پیدا کرد.(با صدها تابع جدید در حال اضافه شدن و کاربران در حال رشد.)

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

دو تیم توسعه دهنده Zeev Suraski و Andi Gutmans (بنیان گذاران Zend) ابتکار عمل را بدست گرفتند و بفکر تجدید نظر در عملکرد PHP افتادند که در نهایت، منجر به بازنویسی Parser شد و به نام Zend Script لقب گرفت. نتیجه ی آن PHP 4 بود.
Zend Engine با زبان C نوشته شده و وظیفه ی آن، تفسیر کدهای PHP بوده و Open Source می باشد. اولین نسخه ی این موتور در سال 1999 در نسخه ی چهارم PHP رونمایی شد.
نسخه ی دوم آن یعنی Zend Engine II در PHP 5 به کار برده شده و نسخه ی سوم(Zend Engine III موسوم به PHP Next Generation یا به اختصار PHPNG) در هسته ی PHP 7 به کار رفته است.
PHP 4:

در ماه May سال 2000، حدود 18 ماه پس از تلاش های تیم توسعه، PHP 4.0 منتشر شد. خیلی ها اعتقاد داشتند، انتشار نسخه 4 اولین حضور رسمی این زبان در صحنه ی توسعه است.
تنها چند ماه پس از این انتشار، NetCraft تخمین زده است که PHP در بیش از 3.6 میلیون دامنه نصب شده است.PHP 4 بهبودهایی را اضافه کرده بود، از جمله ی این موارد، در زیر شرح داده شده:
1. بهبود بخشیدن به کنترل منابع:
یکی از مشکلات اولیه نسخه های 3.x مقیاس پذیری بود، چرا که پروژه ها در مقیاس بزرگ با مشکل مواجه میشدند. بهمین منظور توسعه دهندگان تجدید نظر بیشتری روی مکانیسم زبان در این زمینه داشتن.
2. پشتیبانی Object Oriented:
در نسخه 4 این قابلیت اضافه شد، اگر چه عمدتا اعتقاد داشتند ضعیفتر از آنچه تصور میشد، پیاده سازی شده. با این حال، ویژگی های جدید نقش مهمی را در جذب کاربران برای استفاده از برنامه نویسی شی گرا ایفا کرد.
البته Object Oriented Programming یا به اختصار OOP در نسخه ی 5 بصورت جامعتر در دسترس قرار گرفت.

3. مدیریت کنترل Session:
در PHP 3.x کاربران تنها از طریق برنامه های Third Party (مانند PHPLib) میتوانستند کنترلی بر سشن ها داشته باشند، اما در نسخه ی 4 بصورت توکار در داخل هسته ی PHP گنجانده شد. ارائه ی این ویژگی توسط توسعه دهندگان، وسیله ای برای ردیابی فعالیت کاربران بهمراه تنظیمات آسان آن بود.

4. Encryption: کتابخانه Mcrypt بطور پیش فرض گنجانده شد.
5. پشتیبانی از ISAPI: برای کاربران این امکان را فراهم میکرد تا از PHP در وب سرور IIS هم بهره ببرند. بعدها یک همکاری مشترک بین Zend و Microsoft شکل گرفت که IIS با استفاده از FastCGi از PHP پشتیبانی کند.

6. پشتیبانی از COM/DCOM: یکی دیگر از ویژگی های فوق العاده برای کاربران ویندوز که می توانستند دسترسی و نمونه سازی از اشیاء COM داشته باشند. این یکی از قابلیتهای همکاری با برنامه های ویندوز بود.

7. پشتیبانی از Java: یکی دیگر از قابلیت های نسخه ی 4 PHP، پشتیبانی از اتصال اشیاء جاوا به یک برنامه ی PHP فراهم شد.

8. کتابخانه ی PCRE: زبان PERL مدت زمان زیادیست که حاکمیت تجزیه ی رشته ها را دارد. توسعه دهندگان میدانستند که قابلیت قدرتمند REGEX نقش مهمی در PHP میتواند ایفا کند و بهمین منظور تصمیم گرفتند، بسادگی قابلیت PERL را با PHP تلفیق کنند.(بجای اینکه دوباره از نو ایجاد کنند)
کتابخانه PCRE بطور پیش فرض در PHP 4.2.0 آمده است.علاوه بر این ویژگی ها صدها تابع به نسخه ی 4 اضافه شد که تا حد زیادی موجب افزایش قابلیت های این زبان بود.
PHP 4 یک جهش عظیم و رو به جلو بهمراه ارائه ی ویژگیهای جدید، قدرت و Scalability همراه بود. با این حال تیم توسعه بازهم به کار توسعه ادامه داد که در نهایت ثمره ی این تلاش، انتشار PHP 5 بعنوان یکی از محبوبترین ها در جهان بود.

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

در این نسخه، ویژگیهای جدیدی افزوده شد که در زیر، به این قابلیت ها، نگاهی اجمالی خواهیم داشت:
1. بهبود قابلیت های شیء گرایی(بطور وسیع):
OO در این نسخه با اضافات متعددی همراه بود، مانند: Constructor، Destructor، Object Cloning، Class Abstraction، Interface و ...

2. کنترل خطاهای برنامه Try/Catch:
این ویژگی در نسخه ی 5 اضافه شده و برای جلوگیری از خطاهای احتمالی در بلاک کد، استفاده میشود.

3. بهبود Xml و پشتیبانی از وب سرویس ها:
در نسخه ی 5، پشتیبانی از Xml بر پایه ی کتابخانه ی LibXml2 صورت میگیرد و برای تجزیه و دستکاری Xml، افزونه ی SimpleXml معرفی شده است.

4. پشتیبانی از Sqlite:
راه حل مناسبی است برای توسعه دهندگانی که دنبال بسیاری از ویژگیهای برخی از پایگاه داده های سنگین وزن، بدون سربار اضافی هستند.
با انتشار نسخه ی 5، این زبان محبوبیت بیشتری پیدا کرد که در آن زمان، رکوردی تاریخی بود.
براساس تخمین NetCraft، تقریبا 19 میلیون دامنه از PHP استفاده میکرد. PHP تا حد زیادی در کنار وب سرور آپاچی(Apache) می آمد.(تقریبا 54 درصد)


PHP 6:
در سال 2005، پروژه ای برای ایجاد پشتیبانی کامل از Unicode در هسته ی PHP، به رهبری Andrei Zmievski آغاز شد اما بدلیل سنگینی عملیات و پیچیدگی در پیاده سازی آن، میلی به توسعه ی این پروژه نشان داده نشد و پروژه بصورت معلق و در شاخه ی در حال توسعه (Trunk) قرار گرفت. کمبود توسعه دهنده، پروژه را با تأخیر مواجه کرده بود.
در سال 2009، نسخه ی PHP 5.3 بهمراه یک سری قابلیت هایی که قرار بود در PHP 6 افزوده شود، منتشر شد.
در سال 2010، رسماً PHP 6 رها شد و در عوض مابقی قابلیت های PHP 6 که هنوز به هسته ی رسمی PHP افزوده نشده بود، سال 2012 در PHP 5.4 منتشر شد.
PHP در خروجی گرفتن از Unicode مشکلی ندارد و مشکل زمانی ایجاد میشود که شما بخواهید از توابع کار با رشته مانند: substr یا strlen و ... استفاده کنید. بخاطر اینکه این توابع برای کار با کاراکتر های یک بایتی در نظر گرفته شده، در حالیکه یک کاراکتر Unicode ممکن است بیشتر از یک بایت باشد. پروژه ی PHP 6 برای رفع این مشکل کلید خورد که به سرانجام نرسید.
البته برای کار با رشته های Multi-Byte میتوانید از افزونه ی MbString و توابعش، mb_ ها استفاده کنید.
افزونه ی MbString بصورت پیش فرض، فعال نمی باشد.


PHP 5.3:
در واقع زبان PHP در این نسخه رشد چشمگیری داشت. ویژگی هایی چون:
1. namespace ها
2. Late Static Binding
3. توابع Lambda
4. Closure ها
5. پشتیبانی از SQLite نسخه ی 3
6. استفاده از کتابخانه ی Mysqlnd بجای LibMysql برای برقراری ارتباط با Mysql
7. افزونه ی Fileinfo جایگزین Mime_Magic شد.(کارایی بهتری نسبت به MIME ها دارد)همونطور که در صحبت های قبل هم گفته شد، 3 سال پس از PHP 5.3، نوبت به انتشار PHP 5.4 رسید و یک سال بعد، یعنی در سال 2013، نسخه ی PHP 5.5 و در سال 2014 نسخه ی PHP 5.6 منتشر شد.
انتشار این نسخه ها با حذف برخی امکانات ناکارامد و افزوده شدن قابلیت هایی چون Trait، OpCache، Generators و ... همراه بود. همچنین قابلیت های نسخه های پیشین هم، بروزرسانی شدند.

اسلاید مقاله: لینک اسلاید
نویسنده:
محسن موحد