انتظار می ره طبق Preparation Tasks زبان برنامه نویسی PHP، نسخه بعدی آن یعنی PHP 8.4 در نوامبر 2024 منتشر بشه. این نسخه قراره با ویژگی ها و بروزرسانی های جدیدی همراه باشه که علاوه بر بهبود امنیت به بهبود عملکرد و ارایه ابزارهای جدید به برنامه نویسان و توسعه دهندگان کمک می کنه.
توی این مطلب قصد دارم بصورت جامع شما رو با مهمترین ویژگی هایی که قراره توی نسخه 8.4 ببینیم آشنا کنم.
تا زمان انتشار این مطلب مهمترین تعییرات جدید php8.4 شامل موارد زیر هست که سعی میکنم بصورت خوبی هر کدوم رو معرفی و توضیح بدم. پس با من همراه باشید:)
افزایش مقدار پیشفرض پارامتر Cost در bcrypt
پارامتر cost که کنترل کننده هزینه محاسباتی برای رمزنگاری رمزهای عبور است در نسخه جدید به ۱۲ افزایش می یابد. این تغییر ممکنه عملیات لازم برای انجام رمزنگاری رو افزایش بده اما امنیت رمزنگاری رو نسبت به حملات brute force بالاتر می بره که خوب این نشان از تداوم و نگاه PHP در بحث امنیت می باشد.
افزودن گزینه های جدید به تابع round()
در نسخه جدید برای پارامتر mode در تابع round() که برای رند کردن اعداد استفاده میشه گزینه های جدید اضاف شده. این گزینه ها شامل PHP_ROUND_CEILING، PHP_ROUND_FLOOR، PHP_ROUND_AWAY_FROM_ZERO، و PHP_ROUND_TOWARD_ZERO هستن که به توسعه دهندگان امکان کنترل دقیقتری روی عملیات های عددی ارائه میده.
رفع مشکلات مربوط به پارس کردن اسناد XML
تو این نسخه یک گزینه جدید بنام XML_OPTION_PARSE_HUGE اضاف شده که مشکلات پارس کردن اسناد بزرگ XML رو حل می کنه و اطمینان میده که عملیات پارس کردن این فایل ها با دقت انجام میشه و البته که خطاهای مربوط به نسخه های قبل رخ نمیده!
Independent IR Framework for JIT
PHP 8.4 یک قابلیت جدید به نام (Independent IR Framework for JIT) "چارچوب مستقل IR برای JIT" داره که به کاربر این امکان رو میده که کد PHP رو در زمان اجرا به طور خودکار کامپایل کنه.
این چارچوب جدید باعث میشه که کد PHP بتونه بهتر و سریعتر اجرا بشه، و این یعنی اینکه برنامهها بهتر و سریعتر اجرا میشن، بدون اینکه بخوایم کد رو خیلی تغییر بدیم. این قابلیت همچنین راه رو برای بهبودهای آینده این زبان و همچنین همکاری با کسانی که تخصص در فناوری کامپایلر دارن، باز میزاره.
بهبود های HTTP Handling
در نسخه 8.4 برای مدیریت هدرهای HTTP نیز دو تابع جدید به این زبان اضاف شده است.
http_get_last_response_headers() این تابع برای دریافت هدرهای آخرین پاسخ HTTP دریافتی توسط اسکریپت فعلی استفاده میشه. و جایگزین متغییر $http_response_header هست که قبلا برای همینکار استفاده میشد.
http_clear_last_response_headers() این تابع نیز در نسخه جدید برای پاک کردن هدرهای دریافت شده توسط تابع قبلی اضاف شده، که این امکان رو فراهم میکند که اطلاعات هدرها رو در طول عمر برنامه بهتر مدیریت کنیم.
این دو تابع مفید استفاده از متغییر http_response_header رو حذف می کنن و خوب میشه گفت کد رو هم بهینه تر و هم قابل فهم تر هم برای خودمون و هم برای IDE ها می کنن.
مدیریت بهتره تاریخ و زمان
توی نسخه 8.4 دو متد جدید getMicrosecond و setMicrosecond به کلاس های DateTime و DateTimeImmutable افزوده شده. این متدها برای برنامههایی که نیاز به اندازهگیری زمان با دقت بالا دارن، مثل برنامه های ثبت رویداد، شبیهسازی یا برنامههای مالی، کاربرد دارن و در کل برای برنامه هایی که نیاز به نشانهگذاری زمان دقیق تری دارند خیلی مفید هستن.
این دو متد جدید نهتنها دقت کلاسهای DateTime رو افزایش میدن، بلکه با اجازه دسترسی مستقیم به میکروثانیهها، مدیریت دادههای زمانی رو سادهتر میکنن. این موارد به ویژه در زمینههایی مفید هستن که محاسبات زمانی نیاز به فواصل زمانی بسیار کوچیک دارن، یا زمان از منابعی به دست میآید که دقت بالایی دارن.
Multibyte String Functions
سه تابع جدید برای مدیریت رشته های چندبایتی در افزونه mbstring نیز در این نسخه معرفی شده که عبارتند از:
1. `mb_trim()`: این تابع فاصلههای سفید و دیگر کاراکترهای تعریف شده رو از هر دو طرف رشته حذف میکنه.
2. `mb_ltrim()`: این تابع کاراکترها رو از ابتدای یک رشته حذف میکنه.
3. `mb_rtrim()`: این تابع کاراکترها رو از انتهای یک رشته حذف میکنه.
پشتیبانی از تجزیه اسناد HTML5
در این نسخه کلاس DOM\HTMLDocument معرفی شده که امکان تجزیه و سریال سازی اسناد HTML5 را فراهم می کند.
منسوخ شدن افزونه های oci8 و IMAP
افزونههای oci8 و pdo_oci که قابلیت اتصال به پایگاه دادههای Oracle را در PHP فراهم میکنن، از هسته اصلی PHP حذف شده و به PECL منتقل شده ان. همچنین، افزونه IMAP که عملیات مربوط به صندوقهای ایمیل با استفاده از پروتکل IMAP را تسهیل میکند، نیز از هسته اصلی PHP حذف شده و به PECL منتقل شده است.
دلایل اصلی این تغییرات بخاطر این هست که افزونههای oci8 و pdo_oci برای عملکرد خود به کتابخانههای مخصوص اوراکل وابسته بودن که نیازمند تلاشهای خاصی برای ادغام و نگهداری بودن. همچنین، این افزونهها به مرور زمان با مشکلاتی مواجه شدن و توجه به اهمیت و بهروزبودن کتابخانه پایه آنها مورد تردید قرار گرفت. به همین دلیل تصمیم گرفته شده که این افزونهها از هسته اصلی PHP حذف شده و به PECL منتقل بشن. و خوب توصیه شده که ما برنامه نویس ها دنبال افزونه های جایگزین باشیم.
نکته: PECL مخفف "PHP Extension Community Library" است. یه مخزن آنلاین که توسعهدهندگان PHP می تونن افزونههای PHP رو توی اون منتشر کنن و دیگران نیز می تونن این افزونهها را برای استفاده در پروژههای خودشون نصب کنن.
خوب این برخی از مهمترین تغییرات پیش روی ما در نسخه جدید php هست که تا این لحظه منتشر شده. امیدوارم این مطلب برای شما مفید بوده باشه و با نظرات خودتون من رو دلگرم تر کنید :)
برای اطلاع از پاسخ به نظر شما می توانید ایمیل یا شماره موبایل خود را وارد نمایید. *
ایمیل و شماره موبایل شما کاملا مخفی خواهد ماند و در سایت نمایش داده نخواهد شد. *
هنوز برای این مطلب نظری ارسال نشده است!