PHP 8.4 جدیدترین نسخه در دست توسعه از زبان برنامهنویس PHP است. PHP یک زبان برنامهنویسی همه منظوره محبوب است که مخصوصاً برای طرحی صفحات وب توسعه یافتهاست. تا ژانویهٔ سال ۲۰۱۳ میلادی (به شمسی دیماه ۱۳۹۱)، پیاچپی روی ۲۴۴ میلیون وبگاه و ۲٫۱ میلیون سرور وب نصب شدهاست. محبوبیت PHP اینقدر زیاد است که در سال ۲۰۲۳، پی اچ پی پرکاربردترین و محبوب ترین زبان برنامه نویسی سمت سرور است که به طور کلی تقریبا ۷۷ درصد از سهم بازار را به خود اختصاص داده است.
ویژگیهای جدید
phpinfo
از نسخه PHP 8.4 به بعد تابع خروجی تابع phpinfo()
مقدار سایز عددی پشتیبانی شده توسط پی اچ پی را نمایش میدهد.
همچنین این تغییرات در نسخه PHP CLI نیز اضافه شده است.
Zend Extension => 420230901 Zend Extension Build => API420230901,TS,VS16 PHP Extension Build => API20230901,TS,VS16 + PHP Integer Size => 64 bits
پیادهسازی تغییرات بالا را میتوانید در این کامیت مشاهده کنید.
تغییرات توابع/سینتکسها
Password Hashing
در نسخه PHP 8.4 مقدار عدد پارامتر cost در تابع password_hash()
از ۱۰ به ۱۲ تغییر پیدا کرده است.
PHP توابع password_verify()
، password_hash()
و password_needs_rehash()
را برای هش کردم ایمن رمزهای عبور ارائه کرده است. میتوان الگوریتم هش ( PASSWORD_BCRYPT, PASSWORD_ARGON2I, PASSWORD_ARGON2ID و …) و پارامترهای مربوط به آن نظیر cost را تنظیم کرد. همین اطلاعات در خود پسورد تولید شده قابل تشخیص است، پس میتوان به راحتی با پسورد مورد نظر را اعتبارسنجی و تایید کرد.
echo password_hash('unrivaled.ir', PASSWORD_BCRYPT); // $۲y$10$OGxPpQ/9.xNc426XXTywhOlG2ihkSz.fRqZWtj/LUSbATcJPjh0Ou echo password_hash('unrivaled.ir', PASSWORD_BCRYPT, ['cost' => 12]); // $۲y$12$W9hnFRnYKBKRL6gn9AUtFuXgm6a7Xy5hQylX2t9s/M3YAaaK.6u5C
برای PASSWORD_BCRYPT / PASSWORD_DEFAULT، مقدار cost بهصورت پیشفرض ۱۰ بود که حال در نسخه PHP 8.4 به ۱۲ تغییر کرده است. پارامتر cost تعداد تکرار هش شدن پسورد را مشخص میکند. هر چه عدد مربوط بیشتر باشد، امنیت پسورد هش شده بیشتر و مقاومتر نسبت به کرک است. عدد پارامتر cost در توان ۲ محاسبه میشود. به عنوان مثال ورودی ۱۲ به معنای ۲ به توان ۱۲ است. البته باید در نظر داشت بالا بودن عدد پارامتر cost منجر به طولانی شدن زمان محاسبه نیز میشود. در جدول زیر این مساله مشخص شده است:
CPU Model | Frq | Year | ۸ | ۹ | ۱۰ | ۱۱ | ۱۲ | ۱۳ | ۱۴ |
Intel i5-2430M | ۲.۴ GHz | ۲۰۱۱ | ۲۱ | ۴۱ | ۸۰ | ۱۶۱ | ۳۲۷ | ۶۵۷ | ۱۳۱۹ |
Intel Xeon E32145 | ۳.۳ GHz | ۲۰۱۱ | ۱۶ | ۳۲ | ۶۴ | ۱۲۸ | ۲۵۶ | ۵۲۳ | ۱۰۴۷ |
AMD EPYC 7002 | – | ۲۰۱۹ | ۱۴ | ۲۹ | ۵۸ | ۱۱۶ | ۲۴۴ | ۴۸۵ | ۹۹۷ |
Intel Xeon E-2246G | ۳.۶ Ghz | ۲۰۱۹ | ۱۱ | ۲۰ | ۳۹ | ۷۸ | ۱۵۸ | ۳۱۶ | ۶۳۱ |
AMD Ryzen 4800H | ۲.۹ Ghz | ۲۰۲۰ | ۲۱ | ۴۵ | ۶۰ | ۱۰۵ | ۲۱۰ | ۴۱۶ | ۸۵۰ |
Intel Xeon Skylake IBRS | – | ۲۰۲۰ | ۱۳ | ۲۷ | ۵۴ | ۱۰۸ | ۲۱۶ | ۴۳۲ | ۸۷۳ |
Apple M1 Pro | – | ۲۰۲۱ | ۱۵ | ۳۱ | ۶۱ | ۱۲۱ | ۲۴۰ | ۴۸۰ | ۹۶۵ |
آیا PHP مرده است؟
این سوال که شاید PHP به دوران مرگ خود نزدیک شده است ذهن خیلی از توسعهدهندگان وب را درگیر خود کرده است. مخصوصا با ظهور زبانهای جدید مثل Rust، Python، GoLang و … بسیاری از برنامهنویسان وب احساس خطر کردهاند و مشاهده شده که حداقل به مهاجرت به زبانهای دیگر فکر کردهاند. اما خبر خوب این است که PHP قطعا خیلی با مرگ فاصله دارد. مهم نیست که هر توسعه دهنده ناراضی ممکن است به شما بگوید دوران PHP به اتمام رسیده است. به هر حال، ۷۷ درصد از تمام وبسایتهای دنیا نمیتوانند اشتباه کنند، و مهمتر از همه، سهم بازار PHP در طول پنج سال گذشته نسبتاً ثابت باقی مانده است (بین ۷۸ تا ۸۰ درصد در نوسان است). تعداد کمی از زبان های برنامه نویسی به این نوع از قدرت ماندگار فرمان می دهند.
زبان برنامهنویسی | سهم بازار در سال ۲۰۲۳ |
PHP | ۷۶.۹% |
ASP.NET | ۶.۸% |
Ruby | ۵.۵% |
Java | ۴.۷% |
JavaScript | ۳.۰% |
Scala | ۲.۹% |
Static files | ۱.۸% |
Python | ۱.۴% |
ColdFusion | ۰.۳% |
Perl | ۰.۲% |
Erlang | ۰.۱% |
تاریخ انتشار
PHP 8.4 احتمالاً در اواخر سال ۲۰۲۴ منتشر خواهد شد. اما با توجه به اینکه هیچ چیز رسمی گفته نشده است، زمان انتشار آن را محتمل بدانید چون واقعا قطعی نیست.