خدمات ما
نمونه کار ها
در دنیای توسعه وب، PHP یکی از زبانهایی است که همواره تحول مییابد. نسخههای جدید این زبان با ویژگیهای تازه، بهینهسازیها و حذف یا منسوخکردن توابع قدیمی همراه هستند. این تغییرات نه تنها برای توسعهدهندگان حرفهای بلکه برای تمام افرادی که با CMSها، فریمورکها یا پروژههای شخصی سر و کار دارند، بسیار حیاتیاند. در این مقاله در پویا وب قصد داریم به آخرین تغییرات نسخه جدید PHP بپردازیم، نکات ریسک و توصیهها را بررسی کنیم و نشان دهیم چگونه پروژههای فعلی را برای مهاجرت آماده کنیم.
نسخه فعلی PHP 8.4 است که در تاریخ ۲۱ نوامبر ۲۰۲۴ منتشر شده است. در این نسخه، علاوه بر افزودن ویژگیهای جدید، چندین تابع یا رفتارهای قدیمی نیز منسوخ شدهاند. همچنین چرخه پشتیبانی نسخههای PHP در مارس ۲۰۲۴ تغییر کرد: از این پس، هر نسخه دو سال پشتیبانی کامل (رفع باگ + امنیت) و دو سال فقط پشتیبانی امنیتی خواهد داشت. به این ترتیب، PHP 8.4 تا ۳۱ دسامبر ۲۰۲۸ پشتیبانی خواهد داشت.
بیشتر بخوانید : نقشه راه یادگیری برنامهنویسی
یکی از جذابترین امکانات جدید در PHP 8.4، Property Hooks است. با Hooks میتوان منطق خواندن (get) و نوشتن (set) یک property را مستقیماً در تعریف آن قرار داد، بدون نیاز به متدهای جداگانه getter/setter.
مثال Property Hooks :
//
class User {
private string $first;
private string $last;
public string $fullName {
get => $this->first . ' ' . $this->last;
set {
[$this->first, $this->last] = explode(' ', $value, 2);
}
}
}
با این امکان، دسترسی و اعتبارسنجی مقادیر propertyها به شکل خواناتر و متمرکزی انجام میشود.
ویژگی دید نامتقارن (Asymmetric Visibility) اجازه میدهد که خواندن و نوشتن یک property تحت مجوزهای متفاوت باشد. مثلا بتوانی آن را public برای خواندن و private برای نوشتن تعریف کنی. این گزینه کنترل بیشتری روی وضعیت داخلی آبجکت به توسعهدهنده میدهد.
PHP 8.4 چند تابع جدید برای کار با آرایهها معرفی کرده است که کارها را مختصرتر و خواناتر میکند:
مثلاً اگر بخوای بررسی کنی آیا در آرایهای شرطی برقرار است:
$found = array_find($items, fn($x) => $x > 10);
$any = array_any($items, fn($x) => $x % 2 === 0);
در نسخه جدید، پشتیبانی از HTML5 توسط parser داخلی تقویت شده است و کلاسهای DOM جدیدی معرفی شدهاند تا متمایز از کلاسهای XML عمل کنند.
تابع round() اکنون اگر از وضعیت نامعتبری استفاده شود، خطا (ValueError) پرتاب میکند و حالتهای جدید گرد کردن اضافه شدهاند.
نسخه 8.4 برخی گزینههای جدید برای cURL افزوده است، مانند CURLOPT_PREREQFUNCTION و CURLOPT_DEBUGFUNCTION، و گزینههایی برای HTTP/3 نیز افزوده شدهاند.
در نسخه 8.4 امکان نوشتن new MyClass->method() بدون پرانتز اضافی فراهم شده — یعنی اجرای متد بلافاصله پس از ساخت آبجکت.
اگر پروژه شما از این توابع یا رفتارها استفاده میکند، قبل از مهاجرت حتماً باید جایگزین مناسب پیدا کنید.
| مرحله | کار قابل انجام |
|---|---|
| ۱ | بررسی نسخه کنونی PHP و سازگاری با 8.4 |
| ۲ | فعال کردن نمایش خطاها و warnings در محیط توسعه |
| ۳ | بروز رسانی کتابخانهها، فریمورکها یا افزونهها |
| ۴ | اصلاح کدهایی که از توابع منسوخ شده استفاده میکنند |
| ۵ | تست کامل وبسایت (فورمها، بارگذاری صفحات، عملکرد) |
| ۶ | بکاپ کامل از دیتابیس و فایلها |
| ۷ | ارتقا به PHP 8.4 در محیط staging |
| ۸ | پس از اطمینان، ارتقا در محیط production |
نسخه جدید PHP 8.4 امکانات قابل توجهی در دسترس توسعهدهندگان میگذارد: از قابلیت Property Hooks و Asymmetric Visibility گرفته تا توابع جدید آرایه و ارتقاء پشتیبانی HTML5. اما همزمان با این امکانات، تغییراتی نیز وجود دارد که اگر بیتوجه باشید ممکن است پروژهتان دچار خطا یا ناسازگاری شود.
اگر در سایت «پویا وب»، قصد دارید پروژهای را ارتقا دهید، پیشنهاد میکنم ابتدا در محیط staging تست کنید، خطاها و deprecatedها را رفع کنید،