اردشیر بهبود 

دی 26, 1401

تغییرات و بروزرسانی‌های PHP 8.2 – جدیدترین نسخه‌ی پی‌اچ‌پی

اصلی‌ترین هدف انتشار جدیدترین نسخه php 8.2 آسان‌تر نمودن کار توسعه‌دهندگان وب می‌باشد. PHP 8.2 بر اساس ورژن‌های PHP 8.0 و PHP 8.1 ساخته شده است. در واقع بسیاری از تغییرات ایجاد شده در php 8.2، نه تنها فرآیند برنامه نویسی را ساده‌تر بلکه برخی از توابع قدیمی را نیز منسوخ نموده است. معمولا توصیه می‌کنیم برای به حداکثر رساندن و افزایش امنیت سایت و سازگاری و عادت به نحو جدید، به ورژن پی‌اچ‌پی ۸.۲ ارتقا دهید. 

در این مقاله تمام ویژگی‌های جدید php 8.2، موارد منسوخ شده پی‌اچ‌پی ۸.۲ و نحوه بروزرسانی به php 8.2 را بررسی می‌کنیم تا در انتها علت بروزرسانی از php 8 به php 8.2 را به خوبی درک نماییم. در نظر داشته باشید، خرید سرور مجازی php 8.2 یا هاست لینوکس PHP 8.2 از مهمترین مواردی‌ست که ما را در بروز نگه داشتن نسخه‌ی پی‌اچ‌پی سایت خود یاری می‌کند.

 

فهرست مطالب

تاریخ انتشار نسخه جدید php 8.2 چه روزی است؟

سرانجام ورژن جدید php 8.2 در ۸ ام ماه دسامبر ۲۰۲۲ (December 8, 2022) منتشر شد. این ورژن دارای ویژگی‌های جدید بسیاری، مانند قابلیت readonly classes (کلاس‌های فقط خواندنی)، تعیین حالات false ،true و تابع null به عنوان انواع مستقل، ویژگی‌های داینامیک منسوخ، بهبود عملکرد و … می‌باشد.

 

چرا باید نسخه‌ی پی‌اچ‌پی خود را به نسخه جدید php 8.2 بروزرسانی کرد؟

نسخه‌ی php فعلی و مورد استفاده بر روی وبسایت از اهمیت بسیاری برخوردار است. در واقع، قدیمی یا بروز بودن نسخه‌ی پی‌اچ‌پی بصورت مستقیم بر روی عملکرد وبسایت موثر است که معمولا اغلب دولوپرها از عملکردهای بد و نقاط ضعف ورژن‌های بسیاری قدیمی و منسوخ شده اطلاع دارند و به دنبال رفع آن هستند. در ادامه به بررسی دلایل اصلی بروزرسانی از php 8 به php 8.2 می‌پردازیم.

 

تغییرات و ویژگیهای جدید پی اچ پی ۸.۲

 

  • افزایش سرعت سایت

از آنجایی که زبان برنامه‌نویسی php زبان سمت سرور است، تاثیر بسزا و مستقیمی بر روی سرعت و عملکرد سایت دارد.  نسخه‌های قدیمی پی‌اچ‌پی مانند php 7 تا php 7.4 و همچنین نسخه‌های قدیمی‌تر پی‌اچ‌پی باعث کاهش سرعت سایت می‌شوند. جالب است بدانید، طبق بررسی‌های انجام‌شده، نصب نسخه‌های قدیمی پی‌اچ‌پی بر روی سایت وردپرسی، سرعت سایت را بین ۱۰ تا ۴۰۰ درصد (بسته به میزان قدیمی و منسوخ بودن آن) کاهش می‌دهد. در نظر داشته باشید، سرورهای افیکس‌هاست از جدیدترین نسخه پی‌اچ‌پی ۸.۲ علاوه نسخه‌های قبلی که همچنان برای وبسایت‌ها کاربردی هستند، پشتیبانی می‌کنند. از این رو، هم‌اکنون می‌توانید وبسایت خود را بر روی هاست لینوکس php 8.2 میزبانی کرده و شاهد افزایش سرعت سایت خود باشید.

خرید هاست لینوکس با php 8.2

 

  • بهینه‌سازی سئو سایت

در راستای مورد قبل یعنی تاثیر مستقیم بروزرسانی پی‌اچ‌پی بر روی افزایش سرعت سایت، لازم است تاثیر استفاده از نسخه‌ی بروز پی‌اچ‌پی ۸.۲ بر روی بهبود و بهینه سازی سئو سایت را در نظر داشته باشید. هر چه در بروز کردن و بهینه‌سازی سرور و زبان برنامه‌نویسی سمت سرور منظم باشیم، سایت خود را از دریافت رتبه‌ی پایین در گوگل و سایر موتورهای جستجوگر نجات داده‌اید.  عدم نصب جدیدترین نسخه php بر روی سایت، اختلالاتی را در سایت به وجود آورده که در نتیجه سئو‌ی سایت ما را نیز به خطر می‌اندازد. پس با انتشار php 8.2  بهتر است هر چه سریع‌تر نسبت به بروزرسانی نسخه‌ی پی‌اچ‌پی سایت خود اقدام نمایید.

 

  • برطرف کردن باگ‌های نسخه‌ی قبلی پی‌اچ‌پی

به این نکته توجه داشته باشید، با انتشار هر نسخه‌ی جدید PHP، یک سری بروزرسانی‌ها و تغییرات جزئی یا اساسی بر روی آن نسخه انجام می‌شود تا در این صورت، مشکلات و باگ‌های نسخه‌ی قبلی برطرف شود. در واقع، توسعه‌دهندگان زبان برنامه نویسی پی‌اچ‌پی، با بررسی نسخه‌ی اخیرا منتشر شده، عملکرد آن را بر روی وبسایت‌ها مورد بررسی و ارزیابی قرار داده و سعی بر برطرف کردن نقاط ضعف آن می‌کنند. در صورتی که از نسخه‌های قبلی php بر روی سایت خود استفاده کنید باید با نقاط ضعف آن آشنا باشید. برای جلوگیری از بروز مشکل توسط باگ‌های نسخه‌های قبلی پی‌اچ‌پی پیشنهاد می‌شود همیشه بروزترین نسخه PHP 8.2 را بر روی سایت خود نصب کنید.

 

  • افزایش امنیت سایت

حفظ و افزایش امنیت سایت بستگی زیادی به نسخه‌ی پی‌اچ‌پی مورد استفاده دارد. هر چه جدیدترین نسخه‌ی PHP را بر روی سایت خود نصب کنید، شاهد افزایش امنیت سایت خود خواهید بود. طبق روندی که طی سال‌های اخیر، در انتشار نسخه‌‌های پی‌اچ‌پی شاهد بودیم، پس از انتشار هر نسخه، پشتیبانی امنیتی بابت حفظ امنیت نسخه‌ی منتشر شده از طرف توسعه دهندگان زبان پی‌اچ‌پی ارائه می‌شود. همچنین یک سری فایل‌های پچ (Patch) امنیتی در طی دوره‌ی آن نسخه از PHP به صورت مجزا منتشر می‌شود که لازم است نسبت به نصب آن‌ها اقدام کرد. 

به صورت میانگین از زمان انتشار نسخه‌ی PHP 5.6 در سال ۲۰۱۷ میلادی، پشتیبانی امنیتی PHP طی ۲ الی ۳ سال پس از انتشار، همچنان فعالیت خود را ادامه داده و پچ‌های امنیتی خود را به کاربران ارائه می‌کنند. از این رو، با بروزرسانی نسخه‌ی پی‌اچ‌پی خود طی ۱ الی ۳ سال، نیازی به بروزرسانی منظم آن نخواهید داشت.

 

  • جلوگیری از هک شدن سایت

یکی از مهم‌ترین نکات در رعایت بروزرسانی منظم نسخه‌ی پی‌اچ‌پی، جلوگیری از هر گونه اقدامات خرابکارانه افراد بر روی سایت ما و حفظ و نگهداری آن از هک شدن توسط هکرهاست. همانطور که گفتیم، نسخه‌های قدیمی PHP دارای مشکلات و باگ‌هایی هستند که امنیت سایت ما را به خطر می‌اندازند. هکرها طی بررسی‌های خود با این حفره‌های امنیتی آشنا بوده و از طریق همین حفره‌ها اقدام به هک کردن وبسایت و سرقت اطلاعات افراد می‌کنند. توسعه‌دهندگان زبان برنامه نویسی پی‌اچ‌پی با بررسی نسخه‌های قدیمی، این باگ‌ها را برطرف کردن و دسترسی هکرها را از طریق این حفره‌ها به وبسایت‌ها و اطلاعات کاربران می‌بندند. از این رو، بروزرسانی پی‌اچ‌پی سایت به بروزترین و جدیدترین نسخه‌ی php 8.2 بسیار ضروری است.

توجه داشته باشید که امنیت یک پروسه مداوم و همیشگی دارد. پس اگر قصد حفظ امنیت و جلوگیری از نفوذ هکرها به سایتتان را دارید؛ بهتر است که php 8 را به php 8.2 ارتقا دهید. علاوه بر این با خرید سرور مجازی با php 8.2 می‌توانید امنیت سایت خود را افزایش دهید.

 

  • عدم نیاز به بروزرسانی نسخه ‌php تا ۱ الی ۲ سال

تاریخ انقضای هر نسخه PHP طبق روند چند ساله‌ی این برند، هر ۲ الی ۳ سال است. در واقع، پس از انتشار هر نسخه، در صورت نصب آن بر روی سایت، تا ۲ الی ۳ سال (تا زمان اعلام انقضای آن از طرف تیم PHP) نیاز به بروزرسانی به نسخه‌ی منتشر شده در این دوره نیست. کدها و کامندهای PHP بروز شده در هر نسخه تا زمان انقضای آن کاربرد داشته و حتی پس از انقضا نیز در صورت تایید تیم PHP می‌تواند مورد استفاده قرار گیرد.

 

  • پشتیبانی از اسکریپت‌ها و پلاگین‌های بروز

اکثر وبسایت‌ها برای عملکرد بهتر و چندمنظوره نیاز به اجرای اسکریپت یا نصب پلاگین‌های متعددی دارند. در صورتی که از سایت وردپرسی برای کسب و کار آنلاین خود استفاده می‌کنید، حتما تاکنون پلاگین‌هایی رو بر روی وردپرس خود نصب کرده‌اید. برای اجرای بهتر اسکریپت‌های مورد نظر و پلاگین‌های نصب شده بخصوص پلاگین‌های بروز بر روی سیستم مدیریت محتوا (CMS) خود، لازم است از نسخه‌ی اخیر PHP 8.2 استفاده کرده تا این پلاگین‌ها و اسکریپت‌ها بهترین عملکرد را بر روی سایت داشته باشند.

 

نکات تخصصی درمورد نسخه‌ی بروز PHP 8.2 برای توسعه‌دهندگان وب

 

بروزرسانی‌ها و تغییرات نسخه جدید php 8.2

همانطور که از پیش در مقاله معرفی PHP 8 گفتیم، نسخه ۸ پی اچ پی با بروزرسانی‌های خیلی جالب و «خفن» ارائه شد که می‌شود گفت انقلابی در صنعت طراحی سایت و میزبانی وب برای این زبان برنامه‌نویسی محسوب می‌شود. مثلا با معرفی JIT که مخفف Just-in-Time است، سرعت به قدری بالا رفت که خیلی‌ها بر این باورند که بسیاری به زودی از C به PHP شیفت می‌کنند. جهت توضیح بیشتر، JIT روشی سریع برای کامپایل زبان برنامه‌نویسی (مثل PHP و C# و JAVA) است که در این روش آن زبان برنامه‌نویسی به صورت مستقیم به صورت کد ماشین کامپایل می‌شود. یعنی به کدهایی تبدیل و ترجمه می‌شود که CPU آن را متوجه می‌شود و دیگر نیازی به انجام ترجمه و کامپایل کد در لایه دیگر و توسط ابزار دیگر نیست. برای وظایفی که مصرف CPU بسیار بالایی دارند، کامپایلر جیت در PHP می‌تواند به راحتی و با سرعت بالا آن‌ها را مدیریت کند.

در زمان نگارش این مقاله، وضعیت نسخه PHP 8 به صورت Security Fixes Only یعنی عدم دریافت بروزرسانی عمومی فعال و دریافت تنها بروزرسانی‌های امنیتی درآمده است. همچنین عمر این نسخه و نسخه ۸.۱ پی‌اچ‌پی بر خلاف نسخه‌های قبل بسیار کوتاه است. به همین دلیل پیشنهاد می‌شود مستقیما از نسخه PHP 7.4 به نسخه PHP 8.2 ارتقاء نسخه دهید.

حال مستقیما به سراغ نکات مفید و همچنین تغییرات انجام شده در PHP 8.2 می‌رویم.

 

کلاس‌های فقط قابل خواندن – Readonly classes

کلاس Read-only که در نسخه ۸.۱ معرفی شد، در نسخه ۸.۲ بروز و استفاده آن ساده‌تر شد.

 

شکل استفاده از کلاس readonly در نسخه پی‌اچ‌پی قبل از ۸.۲

class BlogData
{
public readonly string $title;
public readonly Status $status;
public function __construct(string $title, Status $status)
{
$this->title = $title;
$this->status = $status;
}
}

 

نحوه استفاده از کلاس readonly در نسخه پی‌اچ‌پی ۸.۲

readonly class BlogData
{
public string $title;
public Status $status;
public function __construct(string $title, Status $status)
{
$this->title = $title;
$this->status = $status;
}
}

 

همانطور که در بالا مشخص است کل کلاس را می‌توانید به سادگی readonly کنید اما در نظر داشته باشید که موارد زیر قابل readonly شدن نیستند:

Enums – چون این فیچر PHP اصلا قابلیت دریافت پراپرتی را ندارد.

Traits

Interfaces

 

افزودن امکان استفاده از Allow true, null, and false به عنوان Standalone Types

در PHP 8 امکان استفاده از Union Types ارائه شد. در نسخه ۸.۲ می‌توانید آن را به صورت‌های مختلف یعنی Null یا False استفاده کنید. با افزودن این قابلیت، زبان پی‌اچ‌پی به زبانی با قابلیت تفسیری جامع‌تر تبدیل شده و می‌توانید به صورت دقیق از تایپ‌های return و parameter و property استفاده کنید. در ادامه نحوه استفاده به عنوان نمونه آورده شده است:

 

قبل از تایپ‌ها در نسخه قبل از PHP 8.2

class Falsy
{
public function almostFalse(): bool { /* … */ *}
public function almostTrue(): bool { /* … */ *}
public function almostNull(): string|null { /* … */ *}
}

 

نحوه استفاده از تایپ‌های Null و False و True به صورت مجزا و تنهایی در PHP 8.2

class Falsy
{
public function alwaysFalse(): false { /* … */ *}
public function alwaysTrue(): true { /* … */ *}
public function alwaysNull(): null { /* … */ *}
}
 
 

اضافه شدن قابلیت SensitiveParameter Value

در نسخه PHP 8.2 اتریبیوت جدیدی به نام SensitiveParameter معرفی شد. این قابلیت بسیار ارزشمند و مهم آنجایی به کار می‌آید که سایت یا اپلیکیشن با مشکل مواجه شده است و ناخواسته لاگ فعال است یا لاگ را فعال می‌کنید و اطلاعات حساس و محرمانه نمایش و یا در ارور لاگ ذخیره می‌شوند. با این قابلیت دیگر اطلاعات حساس کدهای PHP نمایش داده نمی‌شوند. نحوه استفاده از آن به این صورت است:

function passwords(
$publicpassword,
#[\SensitiveParameter] $secretpassword
) {
throw new \Exception(‘Error’);
}
passwords(‘publicpassword’, ‘secretpassword’);

 

معرفی تابع mysqli_execute_query و روش کوئری mysqli::execute_query برای دیتابیس بسیار معروف MySQL

در ورژن PHP 8.2 روش بسیار ساده‌ای برای مدیریت کوئری‌های دارای پارامتر mysqli معرفی شد. با استفاده از تابع mysqli_execute_query($sql, $params) و روش mysqli::execute_query به راحتی می‌‌توانید کوئری‌ها را توسط همین یک تابع به صورت prepare, bound, and execute اجرا کنید. زمانی که کوئری را با موفقیت اجرا کردید، آبجکت mysqli_result را دریافت کنید. برای مثال:

execute_query(‘SELECT * FROM user WHERE name LIKE ? AND type_id IN (?, ?)’, [$name, $type1, $type2]) as $row) {
print_r($row);
}

 

امکان استفاده از ثابت‌ها در صفات مختلف – Constants in Traits

تا قبل از نسخه ۸.۲ پی‌اچ‌پی امکان استفاده مجدد از کدها با تعریف methods و properties وجود داشت. حال امکان استفاده از constants in traits نیز فراهم شده است. مثال:

trait Foo {
public const FLAG_1 = 1;
protected const FLAG_2 = 2;
private const FLAG_3 = 2;
public function doFoo(int $flags): void {
if ($flags & self::FLAG_1) {
echo ‘Got flag 1’;
}
if ($flags & self::FLAG_2) {
echo ‘Got flag 2’;
}
if ($flags & self::FLAG_3) {
echo ‘Got flag 3’;
}
}
}

 

معرفی تایپ‌های دی‌ان‌اف جدید – New Disjunctive Normal Form (DNF) Types

dnf type در php 8.2

 

در نسخه PHP 8.2 انواع DNF جدید معرفی شده است. DNSهای جدید روش‌های استاندارد و بهینه جدیدی برای استفاده از boolean expressions معرفی می‌کنند. خیلی دقیق و ساده بخواهیم بگوییم تفکیک حروف‌های ربط معرفی شده است – OR و AND های تفکیک شده! یک مثال استاندارد برای استفاده:

// Accepts an object that implements both A and B,
// OR an object that implements D.
(A&B)|D
// Accepts an object that implements C,
// OR a child of X that also implements D,
// OR null.
C|(X&D)|null
// Accepts an object that implements all three of A, B, and D,
// OR an int,
// OR null.
(A&B&D)|int|null

 

یک مثال استفاده در PHP نسخه‌ی قدیمی‌تر از ۸.۲

trait Foo {
public const FLAG_1 = 1;
protected const FLAG_2 = 2;
private const FLAG_3 = 2;
public function doFoo(int $flags): void {
if ($flags & self::FLAG_1) {
echo ‘Got flag 1’;
}
if ($flags & self::FLAG_2) {
echo ‘Got flag 2’;
}
if ($flags & self::FLAG_3) {
echo ‘Got flag 3’;
}
}
}

 

یک مثال استفاده در ورژن PHP 8.2

class Foo {
public function bar((A&B)|null $entity) {
return $entity;
}
}

 

در نسخه پی‌اچ‌پی ۸.۲ استفاده از dynamic variables در کلاس‌ها منقضی شده است. به جای آن یک AllowDynamicProperties معرفی شده است. مثال:

class Foo {}
$foo = new Foo;
// Deprecated: Creation of dynamic property Foo::$bar is deprecated
$foo->bar = 1;
// No deprecation warning: Dynamic property already exists.
$foo->bar = 2;

 

معرفی اکستنشن‌های رندوم جدید – Random Extension

اکستنشن‌های random در واقع یک API جدید به صورت object-oriented برای ایجاد اعداد تصادفی معرفی می‌کند. مثال استفاده:

use Random\Engine\Xoshiro256StarStar;
use Random\Randomizer;
$blueprintRng = new Xoshiro256StarStar(
hash(‘sha256’, “Example seed that is converted to a 256 Bit string via SHA-256”, true)
);
$fibers = [ ];
for ($i = 0; $i < 8; $i++) {
$fiberRng = clone $blueprintRng;
// Xoshiro256**’s ‘jump()’ method moves the blueprint ahead 2**128 steps, as if calling
// ‘generate()’ 2**128 times, giving the Fiber 2**128 unique values without needing to reseed.
$blueprintRng->jump();
$fibers[ ] = new Fiber(function () use ($fiberRng, $i): void {
$randomizer = new Randomizer($fiberRng);
echo “{$i}: ” . $randomizer->getInt(0, 100), PHP_EOL;
});
}
// The randomizer will use a CSPRNG by default.
$randomizer = new Randomizer();
// Even though the fibers execute in a random order, they will print the same value
// each time, because each has its own unique instance of the RNG.
$fibers = $randomizer->shuffleArray($fibers);
foreach ($fibers as $fiber) {
$fiber->start();
}

 

نحوه بروزرسانی به PHP 8.2

در این قسمت نحوه نصب یا دریافت نسخه PHP ۸.۲ را توضیح می‌دهیم. البته در این مقاله هدف اصلی ما معرفی ورژن ۸٫۲ پی اچ پی می‌باشد و به آموزش جامع نصب PHP 8.2 و اکستنشن‌های آن و همچنین دیباگ و رفع مشکل در این خصوص نمی‌پردازیم. البته جهت انجام این امر می‌توانید از سرور سی پنل مدیریت شده افیکس هاست استفاده نمایید تا همکاران ما این نسخه پرسرعت PHP را بر روی سروری بهینه و ایمن مخصوص میزبانی سایت نصب کنند و بدون از دست رفتن دیتا یا نگرانی بابت مواجهه با مشکل بتوانید از PHP 8.2 استفاده کنید.

پیشنهاد قطعی ما جهت بهره‌مندی از نهایت سرعت و امنیت، استفاده از وب‌سرور لایت اسپید به جای آپاچی و انجین‌ایکس برای میزبانی سایت و اپلیکیشن‌های نوشته شده با زمان PHP است.
خرید سرور مجازی مدیریت شده سیپنل
 

جهت نصب نسخه PHP 8.2 در سیستم عامل اوبونتو ۱۸ و ۲۰ و ۲۲ از کامندهای زیر استفاده کنید:

sudo dpkg -l | grep php | tee packages.txt
sudo add-apt-repository ppa:ondrej/php # Press enter when prompted.
sudo apt update
sudo apt install php8.2,php8.2-cli,php-8.2{bz2,curl,mbstring,intl}
sudo apt install php8.2-fpm

یا

# sudo apt install libapache2-mod-php8.2
sudo a2enconf php8.2-fpm
# When upgrading from older PHP version:
sudo a2disconf php8.1-fpm
## Remove old packages
sudo apt purge php8.1*

 

با استفاده از دستور زیر می‌توانید لیست اکستنشن‌های ارائه شده برای PHP 8.2 را دریافت و در فایلی به نام packages.txt ذخیره و مشاهده کنید:

dpkg -l | grep php | tee packages.txt

 

در مرحله بعد ریپازیتوری ppa:ondrej/php را به اوبونتو خود اضافه کنید تا اکستنشن‌های اصلی و همیشه بروز PHP را بتوانید دریافت کنید:

sudo add-apt-repository ppa:ondrej/php
sudo apt update

 

در نهایت با دستور زیر می‌توانید نسخه PHP 8.2 و PHP Extension های اصلی را نصب کنید:

sudo apt install php8.2 php8.2-cli php8.2-{curl,bz2,zip,fpm,mysql,common,xml,bcmath,gd,mbstring,intl}

 

لیست کامل‌تر پکیج‌ها را می‌توانید طبق مرحله قبل از طریق فایل packages.txt مشاهده کنید و یا خود به صورت دستی سایر افزونه‌های اصلی، مهم و پرکاربرد PHP را مانند ionCube یا sourceguardian یا soap یا fileinfo یا opcache‌ یا exif را نصب کنید.

در مرحله آخر می‌توانید APIهای سمت سرور را نیز برای تعیین نوع ارتباط وب‌سرور با PHP نصب کنید:
ترکیب وب سرور آپاچی با PHP-FPM

sudo apt install php8.2-fpm
sudo a2enconf php8.2-fpm
sudo a2disconf php8.1-fpm # When upgrading from an older PHP version
sudo service apache2 restart

 

ترکیب وب‌سرور انجین‌ایکس با PHP-FPM

sudo apt install php8.2-fpm
sudo service nginx restart

 

پس از نصب PHP می‌توانید با دو دستور زیر نصب PHP ۸.۲ و اکستنشن‌های آن را تست کنید:

php -v
php –

 

نسخه‌های قدیمی‌تر PHP را نیز می‌توانید با دستور مشابه زیر حذف کنید:

sudo apt purge php8.1* # Change “php8.1” with the old PHP version names.

 

در صورت استفاده از چند نسخه PHP، جهت بررسی سایر نسخه‌ها در کنار پی‌اچ‌پی ۸.۲ از دستور زیر استفاده کنید:

sudo update-alternatives –config php

 

نسخه‌های مختلف در مسیر مشابه /usr/bin/php8.2 مانند /usr/bin/php8.0 ذخیره شده‌اند. با وارد نمودن دستور فوق می‌توانید نسخه PHP را به شرح زیر انتخاب کنید:

There are 2 choices for the alternative php (providing /usr/bin/php).
Selection    Path             Priority   Status
————————————————————
* 0            /usr/bin/php8.2   ۸۲        auto mode
1            /usr/bin/php8.1   ۸۱        manual mode
2            /usr/bin/php8.2   ۸۲        manual mode

 

و یا همچنین می‌توانید با وارد نمودن دستور مسیر نسخه PHP را تعریف کنید:

update-alternatives –set php /usr/bin/php8.1

 

موارد منسوخ‌شده در پی‌اچ‌پی ۸.۲

در ادامه به بررسی مواردی می‌پردازیم که در نسخه جدید php یعنی PHP 8.2 منسوخ شده و در پروژه‌ها قابل استفاده نیستند.

ویژگیهای منسوخ شده در پی اچ پی ۸.۲

 

انقضای توابع utf8_encode و utf8_decode()

دو تابع utf8_encode() و utf8_decode() به منظور تبدیل و جابجایی بین استانداردهای کدنویسی ISO-8859 و UTF-8 استفاده می‌شوند. به دلیل عدم ارسال پیام‌های اخطار به موقع و محدودیت پشتیبانی این توابع از encoding یا رمزگذاری، در نسخه‌ی پی‌اچ‌پی ۸.۲ این توابع منسوخ شده است اما مجددا در نسخه‌ی PHP 9.0 آن‌ها را خواهیم داشت. با منسوخ شدن این توابع در نسخه‌ی فعلی، افراد به عنوان توابع جایگزین می‌توانند از اکستنشن‌های iconv یا intl برای جابجایی بین استانداردهای رمزگذاری استفاده کنند.

 

Mbstring: Base64, Uuencode, QPrint, and HTML Entity Encodings

اکستنشن MBstring به منظور جابجایی بین کاراکترهای مختلف استانداردهای رمزگذاری از جمله UTF-8/16/32 و ISO-8859-1 کاربرد دارد. این اکستنشن از Base64، Quoted-Printable، Uuencode و المان‌های HTML پشتیبانی می‌کند.
در نظر داشته باشید که این فرمت‌ها، اطلاعات فرآیند بایت‌های خام را بجای بایت‌های متعدد فرمت می‌کند. از این رو، به دلیل اهمیت پایین آن‌ها در رمزگذاری و رمزگشایی این فرمت‌ها، منسوخ شده است. از این رو، در نسخه‌ی جدید پی‌اچ‌پی ۸.۲ این اکستنشن‌های mbstring با لیبل‌های زیر منسوخ شده‌اند:

BASE64
UUENCODE
HTML-ENTITIES
html (alias of HTML-ENTITIES)
Quoted-Printable
qprint (alias of Quoted-Printable)

 

Partially-Supported Callables

در پی‌اچ‌پی ۸.۲ فراخوان‌های نیمه پشتیبانی‌شده که با الگوی $callable() سازگاری ندارند، منسوخ شده اند. لیست فراخوان‌های منسوخ‌شده را در ادامه مشاهده کنید:

$callable = “self::method”;
$callable = “parent::method”;
$callable = “static::method”;
$callable = [“self”, “method”];
$callable = [“parent”, “method”];
$callable = [“static”, “method”];
$callable = [“MyClass”, “MyParentClass::myMethod”];
$callable = [new MyClass(), “MyOtherClass::myMethod”];

 

به منظور عدم دریافت پیام منسوخ‌شده، کاربران می‌توانند تمام کیوردها را به صورت خانواده، تکی و استاتیک به نام کلاس‌های متناظر خود تغییر دهند.

 

${var} String Interpolation

پی‌اچ‌پی به کاربران اجازه می‌دهد تا مقادیر متغیر در یک زنجیره‌ی واقعی را با گیومه جایگزین کند. همانند مثال‌های زیر:

“$myname” – directly embedding variables.
“{$myname}” – braces outside the variable.
“${myname}” – braces after the dollar sign.
” ${expr}” – variable variables equivalent to using (string) ${expr}

 

با توجه به بروزرسانی‌های انجام شده در جدیدترین نسخه‌ی php 8.4 دلایل بسیار و پر اهمیتی برای بروزرسانی به این نسخه‌ی جدید از پی‌اچ‌‌پی وجود دارد. از افزایش امنیت و سرعت سایت گرفته تا اکستنشن‌ها و توابع منسوخ شده در PHP 8.2 از مواردی‌ست که تغییر نسخه‌ی قدیمی به PHP 8.2 را به یکی از مهم‌ترین اقدامات تبدیل می‌کند. هم‌اکنون با خرید هاست لینوکس PHP 8.2 یا خرید سرور مجازی با پشتیبانی از پی‌اچ‌پی ۸.۲ نسبت به بروزرسانی پی‌اچ‌پی سایت خود اقدام کنید.

خرید هاست لینوکس با php 8.2

سوالات متداول بروزرسانی‌ها و ویژگی‌های نسخه جدید PHP 8.2

بصورت کلی، زبان اصلی بکار رفته در سیستم مدیریت محتوای وردپرس، زبان PHP است. این زبان برنامه نویسی همانند سیستم مدیریت محتوای وردپرس، به صورت منظم، نسخه‌های بروزی از آن منتشر می‌شود اما به دلیل اینکه پی‌اچ‌پی زبان سرور است و در پشت صحنه عملیات‌های خود را انجام می‌دهد، کاربران به ندرت به بروزرسانی منظم آن می‌پردازند. بروزرسانی پی‌اچ‌پی و نصب جدیدترین نسخه‌ی آن بر روی سایت وردپرسی به اندازه‌ی بروزرسانی منظم وردپرس خود از اهمیت زیادی برخوردار است. در حال حاضر نیز اگر قصد بروزرسانی پی‌اچ‌پی سایت وردپرسی خود را دارید، نسخه PHP 8.2 بهترین انتخاب برای این بروز رسانی است.

به منظور استفاده از بروزترین نسخه‌ی پی‌اچ‌پی بر روی سایت، خرید هاست PHP 8.2 بهترین انتخاب است. سرویس هاست حرفه‌ای، هاست وردپرس افیکس‌هاست از نسخه‌ی ۸.۲ پی‌اچ‌پی پشتیبانی می‌کنند. در صورتی که سایت شما دارای بازدید و ترافیک بالاست، خرید سرور مجازی PHP 8.2 سرویس پرقدرت‌تر و مناسب‌تری برای شماست.

به منظور خرید هاست حرفه‌ای و هاست وردپرس PHP 8.2 یا سرور مجازی پی‌اچ‌پی ۸٫۲ بر روی سرویس مد نظر خود کلیک نمایید.

اردشیر بهبود