تغییرات PHP 8.4

تغییرات PHP 8.4
زمان مطالعه: ۳ دقیقه

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 احتمالاً در اواخر سال ۲۰۲۴ منتشر خواهد شد. اما با توجه به اینکه هیچ چیز رسمی گفته نشده است، زمان انتشار آن را محتمل بدانید چون واقعا قطعی نیست.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

تشخیص ربات نبودن *محدودیت زمانی مجاز به پایان رسید. لطفا کد امنیتی را دوباره تکمیل کنید.