PHP 8.0: معرفی نسخه جدید PHP
ما بسیار هیجان زده هستیم که اعلام کنیم PHP 8.0 اکنون در سرورهای هاستینگر در دسترس است. این نسخه PHP با ویژگی ها و تغییرات جدید ارائه می شود تا بهترین عملکرد ممکن را برای پروژه های وب شما ارائه دهد.
از آنجایی که این یک بهروزرسانی بزرگ است، ما همه کاربرانی را که به آخرین نسخه مهاجرت میکنند تشویق میکنیم تا با تغییرات جدیدی که در این مقاله به آنها خواهیم پرداخت آشنا شوند.
چرا به PHP 8.0 نیاز دارید؟
آخرین تست های بنچمارک توسط فورونیکس نشان می دهد که PHP 8.0 10 درصد بهتر از نسخه های قبلی خود عمل می کند. این داده ها آینده امیدوار کننده ای را برای وب سایت ها و برنامه های کاربردی مبتنی بر PHP نشان می دهد.
بهتر از آن، این آزمایش حتی با استفاده از کامپایلر JIT، یک ویژگی بهینهسازی جدید که با PHP 8.0 معرفی شد، انجام نشد. اگر فعال باشد، توسعهدهندگان میتوانند انتظار عملکرد بسیار سریعتری داشته باشند.
علاوه بر این، نسخه 8.0 ویژگیهای جدیدی را برای کدنویسی سریعتر و تمیزتر پیادهسازی میکند و تعداد زیادی از boilerplate و کد اضافی را کاهش میدهد.
از آنجایی که این یک نسخه بهروزرسانی است، وبسایت شما احتمالاً تغییراتی را تجربه میکند که ممکن است در صورت انتقال به PHP 8.0 بدون انجام هیچ گونه تغییر قبلی، آن را خراب کند. برای کمک به آماده شدن برای مهاجرت، شما را با تمام جدیدترین ویژگی ها آشنا می کنیم.
تغییر نسخه پی اچ پی
مشتریان Hostinger می توانند این مراحل را برای به روز رسانی نسخه PHP خود دنبال کنند:
- وارد hPanel شوید و داشبورد حساب میزبانی خود را باز کنید .
- در قسمت Advanced ، روی PHP Configuration کلیک کنید .
- تب PHP Version نشان می دهد که از کدام PHP استفاده می کنید. برای به روز رسانی آن به آخرین نسخه، PHP 8.0 را انتخاب کنید و ذخیره را فشار دهید .
توجه داشته باشید که تکمیل به روز رسانی ممکن است چند دقیقه طول بکشد و باعث شود وب سایت شما به طور موقت در دسترس نباشد.
موارد جدید در PHP 8.0
تغییرات زیادی در کیفیت زندگی با بهروزرسانی جدید در کنار بسیاری از ویژگیهای کاملاً جدید وجود دارد. بیایید بررسی کنیم که چه چیزهای جدید و چه چیزی در PHP 8.0 در حال تغییر است.
کامپایلر JIT (Just-in-Time).
کامپایلر JIT یکی از هیجان انگیزترین به روز رسانی های PHP 8.0 است. هدف این ویژگی کار با opcache برای بهبود عملکرد در اجرای اسکریپت است.
JIT چیست؟
JIT مخفف عبارت just-in-time ، اپکد را قبل از اینکه برای خروجی اجرا شود در کد ماشین کامپایل می کند. برای درک اینکه این به چه معناست و چگونه کار می کند، باید مراحل اجرای اسکریپت PHP را درک کنیم:
- تحلیل واژگانی. Zend Engine، مفسر PHP، کد را به توکن های قابل خواندن توسط ماشین ترجمه می کند.
- تجزیه کننده. مفسر نشانهها را تجزیه میکند تا یک درخت نحو انتزاعی (AST) ایجاد کند – یک نمایش درخت مانند که نحوه عملکرد کد را نشان میدهد.
- تلفیقی. مفسر گره های AST را به کد عملیاتی تبدیل می کند که یک دستورالعمل قابل خواندن توسط ماشین است که به ماشین مجازی Zend (VM) می گوید که چه عملیاتی را انجام دهد.
- اجرا. مفسر کد عملیاتی را به Zend VM تحویل میدهد، که اوپکد را برای اجرا در کد ماشین کامپایل میکند.
این فرآیند از مقدار قابل توجهی از منابع سرور استفاده می کند، به خصوص اگر یک اسکریپت PHP درخواست های تکراری دریافت کند.
به همین دلیل PHP 5.5 پسوند opcache را معرفی کرد که کدهای opcache را از مرحله کامپایل ذخیره می کند.
هنگامی که سرور یک درخواست جدید برای همان اسکریپت دریافت می کند، مفسر می تواند بلافاصله کد عملیاتی را از opcache اجرا کند. به این ترتیب، نیازی به راه اندازی مجدد فرآیند اجرا از ابتدا نیست.
PHP 7.4 چندین سال بعد یک ویژگی پیش بارگذاری را اضافه کرد تا اسکریپت های پیش کامپایل opcache را در هنگام راه اندازی به کد عملیاتی تبدیل کند. در نتیجه، مفسر می تواند بلافاصله زمانی که سرور برای اولین بار درخواستی برای اسکریپت دریافت می کند، کد عملیات را برای اجرا تحویل دهد.
با وجود این مزایا، چندین جنبه منفی نیز وجود دارد. یکی این است که در پایان فرآیند، Zend VM هنوز باید قبل از اجرای آن کد opcode را به کد ماشین تبدیل کند، که می تواند زمان و منابع قابل توجهی را بگیرد.
اینجاست که کامپایلر JIT وارد می شود. او کد عملیاتی را در اولین اجرا به کد ماشین کامپایل می کند تا برای اجرای بعدی آماده شود.
هنگامی که درخواستی برای یک اسکریپت کامپایل شده توسط JIT وجود دارد، PHP آن را مستقیماً توسط CPU به جای Zend VM اجرا میکند و در نتیجه عملکرد سریعتری دارد. مراحل اجرای اسکریپت در PHP 8.0 در مقایسه با نسخه قبلی چگونه خواهد بود:
دو موتور کامپایل JIT وجود دارد:
- عملکرد. این رویکرد یک تابع کامل را شناسایی و کامپایل می کند بدون اینکه بفهمد کدام قسمت ها اغلب فراخوانی می شوند.
- ردیابی. این حالت فقط قسمت هایی را که اغلب در عملکرد استفاده می شوند تجزیه و تحلیل و کامپایل می کند تا در زمان و حافظه صرفه جویی شود. این موتور پیش فرض PHP 8.0 است.
JIT برای من چه معنایی دارد؟
با توجه به RFC ، فعال کردن JIT مهمترین راه برای بهبود عملکرد PHP است. نادیده گرفتن این ویژگی ممکن است منجر به از دست دادن یک مزیت بزرگ شود.
خوشبختانه، آزمایشهای اخیر نشان میدهد که کامپایلر JIT توانسته است فرآیند اجرای اسکریپت را بهبود بخشد – عمدتاً اگر از موتور Tracing استفاده میکنید.
بنچمارک های مصنوعی PHP پس از فعال کردن حالت Tracing، سه برابر افزایش سرعت را نشان دادند. در برنامه های طولانی مدت، می توانید انتظار داشته باشید که تا دو برابر بهبود عملکرد داشته باشید.
برای کاربران و توسعهدهندگان وردپرس، کامپایلر JIT میتواند تقویت جزئی را نیز اضافه کند، اگرچه ممکن است چندان قابل توجه نباشد.
شما باید TTFB را کاهش دهید، پایگاه داده را بهینه کنید و تعداد درخواست های HTTP را کاهش دهید تا بهترین عملکرد ممکن را داشته باشید. با این حال، توسعهدهندگان PHP با استفاده از پروفایلسازی و بهینهسازیهای احتمالی به تلاشهای بهبود خود ادامه خواهند داد.
اگر می خواهید JIT را فعال کنید، مطمئن شوید که پسوند opcache فعال است.
مشتریان برنامه میزبانی مشترک می توانند این کار را با باز کردن داشبورد حساب میزبانی -> پیکربندی PHP انجام دهند. در تب PHP Extensions ، حتماً کادر opcache را علامت بزنید .
ویژگی های جدید در PHP 8.0
علاوه بر JIT چندین ویژگی هیجان انگیز وجود دارد. در این بخش مروری بر اضافات و تغییرات عمده به PHP 8.0 ارائه خواهد شد.
Union Types 2.0
در بسیاری از موارد، یک تابع میتواند از بیش از یک نوع استفاده کند، اما تعیین این مورد در نسخههای قبلی PHP ممکن نبود، مگر اینکه انواع را با استفاده از DocComments اعلام کنید.
در اینجا نمونه ای از آنچه به نظر می رسد آورده شده است:
نسخههای قبلی PHP دو نوع اتحادیه خاص را معرفی کردند – Nullable (با استفاده از نحو ?Type ) و Iterable (برای آرایه و قابل عبور ).
با این حال، چیزی که وجود نداشت، پشتیبانی بومی از انواع اتحادیه دلخواه بود، که یک ویژگی است که با PHP 8.0 ارائه می شود.
اکنون میتوانید انواعی را که تابع میتواند استفاده کند بنویسید و با استفاده از نحو T1|T2|… آنها را جدا کنید ، مانند:
توجه داشته باشید که این مثال دیگر شامل @var ، @param ، یا @return نمیشود، و کد را بسیار تمیزتر میکند.
میتوانید از انواع اتحادیه برای ویژگیها، آرگومانها و انواع برگشتی استفاده کنید – هرچند محدودیتهایی وجود دارد که باید به آنها توجه کنید. برای اطلاعات بیشتر RFC را بررسی کنید .
آرگومان های نامگذاری شده
در نسخههای قبلی PHP، ارسال آرگومانهای متعدد به یک تابع با استفاده از موقعیتهای ترتیبی که در آن پارامترها اعلام شدهاند، لازم بود، مانند:
یکی از چالش های این است که ممکن است ترتیب پارامترها را به خاطر نداشته باشید. بعلاوه، درک اینکه هر کدام به چه چیزی در هنگام بازدید مجدد از کد اشاره می کنند، می تواند دشوار باشد.
با PHP 8.0، میتوانید نامی را در کنار پارامتر اضافه کنید تا بتوانید آن را به یک تابع ارسال کنید. این چیزی است که معمولاً به نظر می رسد:
یکی از مزایای این ویژگی این است که یادگیری عملکرد هر پارامتر، روند کلی را بسیار سریعتر می کند.
علاوه بر این، آرگومانهای نامگذاریشده مستقل از ترتیب هستند، بنابراین لازم نیست موقعیتهای ترتیب هر پارامتر را در اعلانهای آنها به خاطر بسپارید. بنابراین، مثال زیر همان معنای بالا را خواهد داشت:
اختلاط آرگومان های نامی و موضعی نیز امکان پذیر است، تا زمانی که موارد نام برده در رتبه دوم قرار گیرند. به عبارت دیگر کد زیر قابل قبول است:
از طرف دیگر، این منجر به یک خطا می شود:
در نهایت، با آرگومان های نامگذاری شده، فقط باید پارامترهایی را بنویسید که می خواهید مقادیر پیش فرض آنها را بازنویسی کنید. به راحتی از آنهایی که مقادیر پیش فرضی دارند که می خواهید حفظ کنید صرف نظر کنید. در اینجا یک مثال ارائه شده در RFC آورده شده است :
نحو استاندارد برای آرگومان های نامگذاری شده paramName: $value است. نام را به صورت پویا همانطور که در زیر نشان داده شده است ننویسید زیرا منجر به خطا می شود.
مطابقت عبارات
یک عبارت تطبیق شبیه یک عبارت switch است زیرا هدف آن مقایسه چندین مقدار است. با این حال، معناشناسی بسیار کارآمدتر و کمتر مستعد خطا است.
مثال دستور سوئیچ زیر را از RFC در نظر بگیرید :
با عبارت مطابقت، همان عبارت بسیار کوتاهتر به نظر می رسد:
بلوک کد بالا نشان می دهد که عبارت مطابقت می تواند مقداری را برگرداند. این برخلاف دستور سوئیچ است که در آن شما باید $result را به انتهای آن اختصاص دهید.
علاوه بر این، نیازی به اضافه کردن یک استراحت بعد از هر بازو نیست زیرا به طور ضمنی اجرا شده است.
علاوه بر این، این ویژگی یک مقایسه دقیق “===” را به جای “==” آزاد انجام می دهد.
یک مقایسه ضعیف، همانطور که توسط دستورات سوئیچ انجام می شود، اغلب می تواند منجر به نتایج غیرقابل پیش بینی شود و اشکالاتی در کد شما ایجاد کند. بیایید به کد زیر نگاه کنیم:
یک عبارت تطبیق نتیجه مناسب تری ارائه می دهد:
نکته مهمی که هنگام استفاده از این ویژگی باید به خاطر داشته باشید این است که یکی از بازوها باید دارای مقداری باشد که با شرایط مطابقت داشته باشد. متناوبا، باید یک پیش فرض اعلام شده باشد. در غیر این صورت یک UnhandledMatchError ایجاد می کند.
ویژگی های
یک ویژگی یک تابع فراداده است که می تواند معنای بخشی از کد را مستند کند. توسعه دهندگان می توانند آن را در توابع، کلاس ها، ثابت های کلاس، خصوصیات کلاس، متدهای کلاس و پارامترهای تابع یا متد قرار دهند.
این ویژگی مشابه DocComments است، اگرچه تفاوت هایی نیز وجود دارد.
در مرحله اول، این واقعیت که این سیستم بومی سیستم PHP است، آن را با ابزارهایی مانند تحلیلگرهای استاتیک و برجسته کننده های نحوی قابل خواندن می کند. به همین دلیل است که RFC ویژگی ها را به عنوان شکل ساختارمندتر و نحوی فراداده پیشنهاد می کند.
برای نشان دادن صفات، متن را بین دو علامت کوچکتر و بزرگتر از جمله <<مثال>> قرار دهید .
می توانید آنها را قبل از اعلان هایی که مشخص می کنند اضافه کنید، مانند:
علاوه بر این، کاربران میتوانند یک یا چند مقدار مرتبط را در ویژگی اضافه کنند، همانطور که در زیر نشان داده شده است:
همچنین امکان پیوست کردن ویژگیها قبل یا بعد از DocComment وجود دارد.
ارتقای املاک سازنده
این ویژگی یک سینتکس کوتاه نویسی جدید است که هدف آن کاهش مقدار دیگ بخار هنگام استفاده از تابع سازنده است.
در نسخههای قبلی پیاچپی، میتوان اشیاء با ارزش ساده را با تکرار ویژگیها تعریف کرد – یک بار در اعلان ویژگی، یک بار در پارامترهای سازنده و دو بار در تخصیص خصوصیات. به مثال زیر توجه کنید:
با PHP 8.0، میتوانید ویژگی را یک بار اعلام کنید و آن را با امضای سازنده ترکیب کنید و تجربه کدنویسی مؤثرتری را ارائه دهید.
اسکریپت مانند نمونه قبلی اجرا خواهد شد. اگر پیشوند پارامترها با یک نشانگر قابل مشاهده باشد، PHP نحو را به نسخه سنتی ترجمه کرده و پس از آن اجرا می کند.
RFC توضیح می دهد که چندین محدودیت وجود دارد که باید در مورد تبلیغات دارایی سازنده در نظر گرفته شود. یکی این است که از استفاده از کلمات کلیدی var خودداری کنید، زیرا این ویژگی از قبل نیاز به ارتقای ویژگی ها با استفاده از نشانگر دید دارد.
ثانیاً، وقتی نوع null است، باید به صراحت با استفاده از نحو nullable ?Type اعلام شود.
پارامترهای ارتقا یافته فقط می توانند در سازنده های غیرانتزاعی رخ دهند. بنابراین، مثال زیر منجر به یک خطا می شود:
یک کلاس میتواند هم ویژگیهای ارتقا یافته توسط سازنده و هم اعلانهای ویژگی صریح داشته باشد. با این حال، امکان استفاده از یک ویژگی در هر دو وجود ندارد، مانند:
همچنین هیچ پارامتر متغیر ارتقا دهنده ای در سازنده ها وجود ندارد.
در نهایت، هیچ پشتیبانی برای استفاده از نوع قابل فراخوانی در اعلان مالکیت سازنده وجود ندارد.
اپراتور Nullsafe
بررسی تهی با استفاده از یک دستور شرطی معمولاً منجر به کدهایی می شود که عمیقاً تو در تو قرار دارند و خواندن آن دشوار است. به مثال زیر توجه کنید:
برای مبارزه با این مشکل، PHP 8.0 عملگر nullsafe را ارائه میکند .
با استفاده از این ویژگی می توانید کدهای مثال بالا را با استفاده از نحو ?-> بازنویسی کنید.
طبق RFC ، PHP بررسی میکند که آیا اولین عملگر $session صفر است یا خیر. اگر نشد، اجرا تا آخرین اپراتور ادامه خواهد داشت. PHP زمانی که یکی از اپراتورها null را ارزیابی کند، فرآیند اجرا را متوقف می کند.
یکی از محدودیتهای استفاده از عملگر nullsafe این است که نمیتواند در زمینه نوشتن وجود داشته باشد. در نتیجه موارد زیر یک خطا ایجاد می کند:
علاوه بر این، گرفتن مرجع از یک زنجیره تهی مجاز نیست.
نقشه های ضعیف
با PHP 7.4، توسعهدهندگان میتوانند ارجاعات ضعیفی به یک شی کلیدی داشته باشند تا برخلاف روابط قوی، شمارنده مرجع شی را افزایش ندهند و از حذف شی در زمانی که دیگر استفاده نمیشود، جلوگیری کنند.
یک نقشه ضعیف بهبود این ویژگی است. مقادیر دلخواه مورد استفاده به عنوان ارجاعات ضعیف به یک شی را ذخیره می کند. به این ترتیب، هنگامی که شی از محدوده خارج می شود یا تنظیم نمی شود، PHP می تواند هر مقدار مرتبط را در نقشه ضعیف پاک کند.
مثال زیر که از RFC تهیه شده است ، نشان می دهد که نقشه های ضعیف چگونه به نظر می رسند:
این ویژگی برای برنامه های طولانی مدت مفیدتر خواهد بود، به خصوص اگر می خواهید از نشت حافظه جلوگیری کنید و کش را پیاده سازی کنید.
ویژگی های جزئی جدید
در اینجا چند ویژگی اضافی جزئی وجود دارد که می توانید در PHP 8.0 انتظار داشته باشید:
- کاماهای دنباله دار در لیست پارامترها. شما می توانید پارامترها را در قالب عمودی به جای فرمت افقی استاندارد فهرست کنید.
- str_contains(). این تابع بررسی می کند که آیا یک رشته به عنوان عنصری از رشته دیگر گنجانده شده است یا خیر. بسته به درست یا نادرست بودن شرط، مقدار بولی را برمی گرداند. شما ممکن است آن را به عنوان یک جایگزین قابل خواندن تر برای str_pos() در نظر بگیرید.
- str_starts_with(). بررسی می کند که آیا یک رشته با یک زیررشته مشخص شروع می شود یا خیر.
- str_ends_with(). تعیین می کند که آیا یک رشته با یک زیررشته مشخص به پایان می رسد یا خیر.
- رابط رشته ای کلاس هایی که از متد __toString () استفاده می کنند، اکنون رابط Stringable را به طور خودکار پیاده سازی می کنند. هدف اجازه دادن به string|Stringable union نوع است، به این معنی که PHP می تواند یک رشته یا یک شی را با استفاده از متد __toString() بپذیرد .
- fdiv(). PHP 8.0 تقسیم بر صفر را می پذیرد و به جای خطا، INF، -INF یا NAN را برمی گرداند.
- get_debug_type(). این تابع مشابه gettype() عمل میکند ، اگرچه نامهای نوع بومی و نام کلاسها را برمیگرداند. جدول مرجع زیر تفاوت این دو را نشان می دهد.
- get_resource_id(). این تابع یک جایگزین امن برای (int) $ است. شناسه یک منبع خارجی مانند اتصال پایگاه داده را دریافت می کند.
- PhpToken::tokenize(). این متد جایگزین تابع ()token_get_all خواهد شد . به جای برگرداندن رشته ها یا آرایه های مقادیر، آرایه ای از اشیا را برمی گرداند. کد به دست آمده قابل خواندن و حافظه کارآمدتر خواهد بود.
- استاندارد زندگی DOM جدید در ext/dom. رابطهای جدید و ویژگیهای عمومی برای انطباق با APIهای DOM فعلی، که هنگام برخورد با اسناد XML و HTML ضروری شدهاند.
ویژگی های منسوخ شده در PHP 8.0
PHP 8.0 ویژگی های زیر را از بین می برد:
- گنجاندن یک مقدار پیش فرض در یک پارامتر و به دنبال آن یک پارامتر مورد نیاز، زیرا مقدار پیش فرض تاثیری ندارد
- استفاده از get_defined_functions() با exclude_disabled که به صراحت روی false تنظیم شده است
- تابع enchant_broker_set_dict_path().
- تابع enchant_broker_get_dict_path().
- تابع () enchant_dict_add_to_personal
- تابع enchant_dict_is_in_session().
- تابع () enchant_broker_free
- تابع () enchant_broker_free_dict
- ثابت ENCHANT_MYSPELL
- ثابت ENCHANT_ISPELL
- تابع libxml_disable_entity_loader().
- ثابت PGSQL_LIBPQ_VERSION_STR به همراه برخی از توابع مستعار در پسوند pgsql
- استفاده از توابع مقایسه مرتبسازی که درست یا نادرست را برمیگردانند
- استفاده از یک فایل خالی به عنوان ZipArchive
- API رویه ای Zip
- تابع ReflectionFunction::isDisabled().
- تابع ReflectionParameter::getClass().
- تابع ReflectionParameter::isArray().
- تابع ReflectionParameter::isCallable().
برای اطلاعات بیشتر در مورد ویژگی های منسوخ شده ، این منبع را بررسی کنید.
تغییرات ناسازگار به عقب برای PHP 8.0
مهاجرت به PHP 8.0 تغییرات زیادی را به همراه دارد که با نسخه های قدیمی PHP ناسازگار است. برخی از آنها عبارتند از:
- مقایسه رشته به عدد مقایسه اعداد با رشته های غیر عددی اکنون به عنوان false برمی گردد. جدول مرجع زیر را ببینید:
- بدون فضای خالی در نام های فضای نام. به عنوان مثال، نام هایی مانند “Foo \ bar” قابل قبول نیستند. به جای آن از “Foo\bar” استفاده کنید.
- منبع برای مهاجرت شی اکنون برخی از توابع به جای منبع، یک شی را برمی گردانند.
- حذف پرچمهای FILTER_FLAG_SCHEME_REQUIRED و FILTER_FLAG_HOST_REQUIRED . این به این دلیل است که FILTER_VALIDATE_URL در حال حاضر از این پرچمها به طور پیشفرض زمانی که با تابع filter_var() ترکیب میشود، استفاده میکند.
- E_ALL اکنون سطح پیشفرض error_reporting است. PHP 8.0 شامل اعلامیه ها و تغییرات منسوخ شده در پیام های خطا می شود.
حتماً اسناد رسمی را بخوانید تا سایر تغییرات ناسازگار را ببینید.
سایر تغییرات PHP 8.0
تغییرات زیر منجر به ناسازگاری با عقب نخواهند شد، اما توجه به آنها همچنان ضروری است. برخی از آنها عبارتند از:
- می توانید نتایج ReflectionClass::getConstants() و ReflectionClass::getReflectionConstants() را با استفاده از پارامتر فیلتر جدید فیلتر کنید.
- متدهای ZipArchive:: addGlob () و ZipArchive::addPattern() اکنون flags ، comp_method ، comp_flags ، env_method و enc_password را در آرایه گزینه ها می پذیرند.
- یک آرگومان پرچم جدید برای متدهای ZipArchive::addEmptyDir ، ZipArchive::addFile() و ZipArchive::addFromString() وجود دارد.
- به دلیل نقش اساسی آن در PHP، پسوند JSON اکنون به طور پیش فرض فعال است.
- اگر آرایه شکاف نداشته باشد، تابع ()array_slice نیازی به پیدا کردن موقعیت شروع نخواهد داشت.
این منبع حاوی اطلاعات بیشتری در مورد تغییرات است.
وردپرس و PHP 8.0
وردپرس 5.6 و بالاتر با PHP 8.0 سازگار است. تیم توسعه بسیاری از ویژگی های منسوخ شده را برای رسیدن به این هدف حذف کرده است.
با این حال، آنها نمی توانند ادعای سازگاری کامل داشته باشند زیرا بسیاری از افزونه ها و تم ها ممکن است هنوز از PHP 8.0 پشتیبانی نکنند. اگر می خواهید به PHP 8.0 تغییر دهید، مطمئن شوید که می توانید بدون هیچ مشکلی این انتقال را انجام دهید. در غیر این صورت، اگر با یک توسعهدهنده وب حرفهای کار میکنید، از آنها بخواهید که در انتقال به شما کمک کنند.
اگر یک توسعه دهنده پلاگین یا تم هستید
، وردپرس تشویق می کند که کد محصول خود را با نسخه جدید PHP تطبیق دهید. به این ترتیب، کاربران پلاگین یا تم در صورت به روز رسانی نرم افزار، در وب سایت خود با مشکل مواجه نخواهند شد.
این مقاله تغییرات عمده ای را که ممکن است برای توسعه دهندگان وردپرس اعمال شود، تشریح کرده است. با این حال، توصیه می کنیم این اطلاعیه وردپرس را بخوانید تا ببینید به کدام یک باید توجه ویژه ای داشته باشید.
به یاد داشته باشید که اگر مشکلات زیادی برای حل کردن وجود دارد، همیشه می توانید نسخه خود را به PHP 7.4 تنزل دهید.
نتیجه
PHP 8.0 تغییرات و بهبودهای هیجان انگیزی برای توسعه دهندگان PHP دارد، مانند کامپایلر JIT، ارتقاء ویژگی سازنده و نقشه های ضعیف. انتظار افزایش عملکرد وب سایت و تجربه کدنویسی را داشته باشید.
حتماً RFC ها و مستندات را بررسی کنید تا پروژه های شما کاملاً با آخرین نسخه PHP سازگار باشد. موفق باشید!
دیدگاهتان را بنویسید