قالب هاستينگ هاستينزا اپارات معرفی PHP 7.4: عملکرد ، ویژگی ها ، استهلاک ها

قالب هاستينگ هاستينزا اپارات معرفی PHP 7.4: عملکرد ، ویژگی ها ، استهلاک ها
سرورهای Hostinger در دسترس است . توسعه دهندگان می توانند انتظار پیشرفت در خوانایی کد ، نگهداری و سهولت استفاده را داشته باشند. بیایید به برخی از ویژگی های جدید ، ترفندهای عملکرد و دلایل دیگری که چرا باید به PHP 7.4 مهاجرت کنید ، نگاهی بیندازیم.

فهرست مطالب:

PHP 7.4 برای شما چه معنایی دارد؟
نسخه PHP خود را تغییر دهید
در PHP 7.4 چه جدید است؟
استهلاک
PHP 7.4 برای شما چه معنایی دارد؟
با انتشار جدیدترین به روزرسانی PHP 7.4 ، پر از ویژگی های جدید ، PHP همچنان در حال تکامل است. همانطور که در نسخه های قبلی PHP 7 دیده ایم - عملکرد و سرعت در حال بهبود است. یکی از جالب ترین ویژگی های جدید بارگیری قبل است . به لطف ساده سازی خطوط رایج کد ، به اجرای سریع اسکریپت و همچنین معرفی قابلیت داشتن کد سریعتر و تمیز تر کمک می کند.

افراد خوب مسئول PHP نظرات و درخواستهای مخاطبان خود را شنیده اند و با تمام توان به آنها پاسخ داده اند. آنها از آن زمان به طور مداوم در حال تغییر كد هستند تا بصری تر و راحت تر بین زبان های برنامه نویسی جابجا شوند.

PHP در بیش از 78.9٪ از کل وب سایت ها استفاده می شود. طبق گفته W3techs ، پرطرفدارترین سایتهایی که از PHP استفاده می کنند ویکی پدیا ، پینترست و فیس بوک برای نامگذاری چند مورد هستند.

اگر به طور خاص به سایتهای وردپرس در حال اجرا با PHP ، با مقایسه PHP 5 و 7 نگاهی بیندازیم ، می توانیم شاهد افزایش دو برابر سرعت باشیم. وب سایتهای دارای وردپرس با استفاده از جدیدترین نسخه PHP در خارج ، قطعاً بیشترین سود را کسب می کنند. کاربران میزبان می توانند فقط با کلیک یک دکمه ، سایتهای وردپرس خود را به ارتفاعات جدید شارژ کنند.

آمار استفاده از PHP

همه این چهره های جالب را می بینید؟ این نمودار در مورد وب سایتهایی که با استفاده از PHP فعال هستند ، حقیقت را فاش می کند. آیا 39،191،714 وب سایت زنده برای جلب توجه شما کافی هستند؟ این تعداد در حال حاضر از PHP استفاده می کنند. به علاوه PHP 7.4 در حال آزمایش بهتر از PHP 7.3 با بهبود عملکرد و سایر کیفیت های بهبود زندگی است.

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

PHP میانگین هندسی کلیه نتایج

نسخه PHP خود را تغییر دهید
آماده به روزرسانی هستید؟ فکر کرد Hostinger با این چهار مرحله ساده ، آن را مانند همیشه آسان می کند. هیچ وقت با نسخه PHP جدید و بهبود یافته خود درگیر نیستید.

به حساب Hostinger خود وارد شوید و دکمه Home را بزنید.
در صفحه اصلی خود ، به قسمت میزبانی پایین بروید قالب هاستينگ هاستينزا اپارات و بر روی نماد مدیریت کلیک کنید .
در کادر جستجو ، پیکربندی PHP را تایپ کرده و بر روی آن کلیک کنید.
PHP 7.4 را انتخاب کنید و روی ذخیره کلیک کنید .
فعال کردن PHP 7.4 در Hostinger hPanel

تبریک می گویم! شما اکنون بهترین و به روزترین نسخه PHP را در آنجا دارید.

برای بررسی نسخه PHP فعلی خود ، تنها کاری که باید انجام دهید این است که به برگه میزبانی وب بروید و صفحه سمت چپ را برای نسخه PHP بررسی کنید . اگر چیزی کمتر از 7.4 است ، پیش بروید و بروزرسانی کنید.

در PHP 7.4 چه جدید است؟
از سال 2016 ، PHP7 بدون بروزرسانی ، به روزرسانی های سالانه را منتشر می کند. هر ساله آنها ویژگی ها ، اضافات و امکان نوشتن کد تمیزتری را ارائه می دهند که باعث می شود زبان برای افرادی که این برنامه را در وب سایت های خود اجرا می کنند ، قابل اطمینان تر و کاربر پسند تر باشد.

بیایید حفر کنیم و نگاهی دقیق تر به برخی از تغییراتی که با افزودن PHP 7.4 ایجاد شده است ، بیاندازیم. برای یک لیست کامل ، تغییرات آنها را در اینجا بررسی کنید .

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

پیش بارگذاری توسط یک دستورالعمل خاص php.ini اجرا می شود : opache.preload . این دارای کامپایلر اسکریپت PHP است و هنگام راه اندازی سرور اجرا می شود. همچنین می تواند برای بارگذاری پرونده های بیشتر مورد استفاده قرار گیرد و انتخاب کنید که آنها را شامل یا کامپایل کنید.

این بسیار جذاب است ، اما اگر منبع پرونده های از قالب هاستينگ هاستينزا اپارات قبل بارگذاری شده تغییر یابد ، سرور مجدداً راه اندازی می شود. پرونده های از پیش بارگذاری شده نیز برای همیشه در حافظه OPCache ذخیره می شوند.

با این حال ، در صورت نیاز به استفاده مجدد از آنها ، این پرونده های از پیش بارگذاری شده همچنان برای هرگونه درخواست آینده در دسترس خواهند بود.

Spread Operator در عبارت Array
هنگامی که PHP 5.6 منتشر شد ، PHP شروع به پشتیبانی از بسته بندی آرگومان (اپراتور گسترش) کرد ، اما اکنون با 7.4 ، ما می توانیم از این ویژگی با بیان آرایه استفاده کنیم. باز کردن آرگومان نحوی است برای باز کردن آرایه ها و Traversables در لیست آرگومان. و برای انجام این کار ، فقط باید توسط… (3 نقطه) آماده شود.

بیایید به این مثال نگاه کنیم:

1
2
3
$animals = ['dog', 'cat'];
$animalkingdom = ['lion', 'elephant', ...$animals, 'giraffe'];
// [‘lion’, ‘elephant’, ‘dog’, ‘cat’, ‘giraffe’];
اکنون می توانیم به سادگی با استفاده از نحو Spread Operator ، آرایه ای را از هر مکانی که می خواهیم بسازیم.

در اینجا مثال دیگری وجود دارد:

1
2
3
4
5
$num1 = [1, 2, 3];
$num2 = [...$num1]; // [1, 2, 3]
$num3 = [0, ...$num1]; // [0, 1, 2, 3]
$num4 = array(...$num1, ...$num2, 111); // [1, 2, 3, 1, 2, 3, 111]
$num5 = [...$num1, ...$num1]; // [1, 2, 3, 1, 2, 3]
نه تنها این ، بلکه می توانید از آن در یک عملکرد نیز استفاده کنید. این مثال را ببینید:

1
2
3
4
5
6
7
8
9
10
11
12
13
function getNum()
return ['a', 'b'];

$num6 = [...getNum(), 'c']; // ['a', 'b', 'c']

$num7 = [...new NumIterator(['a', 'b', 'c'])]; // ['a', 'b', 'c']

function arrGen()
for($i = 11; $i < 15; $i++)
yield $i;


$num8 = [...arrGen()]; // [11, 12, 13, 14]
علاوه بر این ، اکنون شما قادر به باز کردن آرایه ها و ژنراتورهایی هستید که توسط یک عملکرد مستقیماً به یک آرایه جدید باز می گردند.

یک نمونه کد از این قرار است:

1
2
3
4
function getAnimals()
return ['dog', 'cat', 'elephant'];

$num1 = [...getAnimals(), 'lion', 'tiger', 'giraffe'];
و با PHP 7.4 چاپ می شود:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
array(6)
[0]=>
string(3) "dog"
[1]=>
string(3) "cat"
[2]=>
string(8) "elephant"
[3]=>
string(4) "lion"
[4]=>
string(5) "tiger"
[5]=>
string(7) "giraffe"

با این عبارت جدید ، اپراتورهای پخش باید عملکرد بهتری نسبت به 7.3 array_merge داشته باشند . دلیل این است که عملگر spread یک ساختار زبان است در حالی که array_merge یک تابع است. همچنین به این دلیل که اپراتور spread از اشیاء پیاده سازی قابل عبور پشتیبانی می کند و array_merge فقط از آرایه ها پشتیبانی می کند.

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

یکی قالب هاستينگ هاستينزا اپارات دیگر از مزایای با شکوه 7.4 حذف آرایه_merge است. از تغییر شاخص مخوف خداحافظی کنید!

به عنوان مثال ، بیایید به این ترکیب آرایه بادی بلند در زیر نگاه کنیم:

1
2
3
4
5
6
7
8
9
10
11
12
$array = [‘banana, ‘orange’];
$array[2] = ‘orange’;
$array[1] = ‘apple’; //shifting
var_dump($array);
// prints
array(3) {
[0]=>
string(6) "banana"
[1]=>
string(5) "apple"
[2]=>
string(6) "orange"
یکی دیگر از مزایای 7.4 استفاده از عملکرد ژنراتور است. یک عملکرد ژنراتور دقیقاً مانند یک عملکرد عادی کار می کند ، بجز اینکه به جای بازگشت یک مقدار ، یک عملکرد ژنراتور به اندازه مقدار مورد نیاز خود عمل می کند.

کد مثال زیر را ببینید:

1
2
3
4
5
6
function generator()
for ($i = 3; $i <= 5; $i++)
yield $i;


$num1 = [0, 1, 2, ...generator()];
منابع ضعیف
اکنون PHP 7.4 کلاس WeakReference دارد که قرار نیست با کلاس WeakRed یا پسوند Weakref اشتباه گرفته شود .

WeakReferences به برنامه نویس اجازه می دهد تا یک اشخاص را به خاطر آورد. این مفید است زیرا مانع از بین رفتن جسم نمی شود. آنها برای اجرای حافظه پنهان مانند ساختارها مفید هستند.

1
2
3
4
5
6
WeakReference
/* Methods */
public __construct ( void )
public static create ( object $referent ) : WeakReference
public get ( void ) : ?object

پارامترهای متناقض و بازده کواریانت
در حال حاضر ، PHP از انواع پارامترها و انواع برگشتی استفاده می کند. به این معنی که اگر یک متد دارای پارامتر یا نوع بازگشتی از X باشد ، پارامتر زیرپایه یا نوع برگشت نیز باید از نوع X باشد.

حال ، با PHP 7.4 پیشنهاد می کند کواریانس (سفارش شده از خاص به عمومی) و تضاد (معکوس کردن سفارش) بر روی پارامترها و انواع برگشتی مجاز باشد .

در اینجا مثالی از هردو آورده شده است:

نمونه نوع بازگشت کوواریانت:

1
2
3
4
5
6
interface Factory
function make(): object;

class UserFactory implements Factory
function make(): User;

مثال نوع پارامتر ضد برقی:

1
2
3
4
5
6
7
interface Concatable
function concat(Iterator $input);

class Collection implements Concatable
// accepts all iterables, not just Iterator
function concat(iterable $input) /* . . . */

خواص تایپ شده 2.0
از زمان PHP 5 ، انواع نکات از ویژگی های موجود بوده و به شما امکان می دهد نوع متغیری را که انتظار می رود به یک عملکرد یا کلاس منتقل شود ، مشخص کنید. در انتقال PHP 7.2 ، افزودن نوع داده شیء این امید را به وجود می آورد که در آینده بیشتر در دسترس باشد. آینده اکنون است.

در نسخه 7.4 جدید ، PHP قادر است از لیست قالب هاستينگ هاستينزا اپارات نوع زیر پشتیبانی کند:

1
2
3
bool, int, float, string, array, object, iterable, self, parent
any class or interface name
?type // where "type" may be any of the above
توجه داشته باشید که از نوع والدین می توان در کلاسها استفاده کرد و نیازی به داشتن والدین با پارامتر و نوع بازگشت ندارد.

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

بیایید چند مثال دیگر را بررسی کنیم.

در اینجا کلاس وجود دارد که برای PHP 7.3 نوشته شده است:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class User
/** @var int $id */
private $id;
/** @var string $name */
private $name;

public function __construct(int $id, string $name)
$this->id = $id;
$this->name = $name;


public function getId(): int
return $this->id;

public function setId(int $id): void
$this->id = $id;


public function getName(): string
return $this->name;

public function setName(string $name): void
$this->name = $name;


در PHP 7.4 ، بدون آسیب رساندن به هر نوع ایمنی ، اکنون یک کلاس می تواند به سادگی نوشته شود:

1
2
3
4
5
6
7
8
9
class User
public int $id;
public string $name;

public function __construct(int $id, string $name)
$this->id = $id;
$this->name = $name;


در اینجا چند نمونه از انواع 7.4 پشتیبانی شده در اینجا آورده شده است:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Example

public int $scalarType;
protected ClassName $classType;
private ?ClassName $nullableClassType;

// Types are also legal on static properties
public static iterable $staticProp;

// Types can also be used with the "var" notation
var bool $flag;

// Typed properties may have default values (more below)
public string $str = "foo";
public ?string $nullableStr = null;

// The type applies to all properties in one declaration
public float $x, $y;
// equivalent to:
public float $x;
public float $y;

توابع Arrow 2.0
توابع ناشناس در PHP حتی وقتی فقط عملیات ساده انجام می دهند ، دارای کلمات و طولانی هستند. این تا حدی به دلیل وجود مقادیر زیادی دیگ بخار سینتتیک و تا حدی به دلیل نیاز به وارد کردن قالب هاستينگ هاستينزا اپارات دستی متغیرهای استفاده شده است.

این باعث می شود کدی استفاده شود که از بسته های ساده برای خواندن گیج کننده و حتی درک آن سخت تر باشد.

بیایید به کدهایی که با PHP 7.3 استفاده می کنید نگاهی بیندازیم:

1
2
3
function array_values_from_keys($arr, $keys)
return array_map(function ($x) use ($arr) return $arr[$x]; , $keys);

اکنون ، مختصر ترین متن PHP 7.4 است:

1
2
3
function array_values_from_keys($arr, $keys)
return array_map(fn($x) => $arr[$x], $keys);

بنابراین ، توابع پیکان اکنون این شکل ساده را دارد:

1
fn(parameter_list) => expr
در زیر می توانید یک نمونه از دو عملکرد $ fn1 (7.3) و $ fn2 (7.4) را در کنار هم مشاهده کنید. آنها نتیجه یکسانی دارند اما متفاوت به نظر می رسند:

1
2
3
4
5
6
7
8
$y = 1;
$fn1 = fn($x) => $x + $y;


$fn2 = function ($x) use ($y)

return $x + $y;
;
همچنین اگر توابع پیکان تو در تو واقع باشند این کار خواهد کرد:

1
2
$z = 1;
$fn = fn($x) => fn($y) => $x * $y + $z;
در اینجا عملکرد خارجی $ z را ضبط می کند . سپس ، عملکرد داخلی $ z را از عملکرد خارجی نیز ضبط می کند . با 7.4 ، محدوده بیرونی می تواند در عملکرد داخلی در دسترس باشد. این چیزی است که 7.3 قادر به انجام آن نبود.

نحو عملکرد فلش امکان عملکردهای قالب هاستينگ هاستينزا اپارات مختلفی از قبیل ، متغیرها ، مقادیر پیش فرض ، پارامترها و انواع برگشتی و همچنین عبور و بازگشت توسط مرجع را فراهم می کند. همه در حالی که نگاهی تمیز و خواندنی دارند. در زیر همه عملکردهای پیکان معتبر که هم اکنون در دسترس هستند:

1
2
3
4
5
6
fn(array $x) => $x;
fn(): int => $x;
fn($x = 42) => $x;
fn(&$x) => $x;
fn&($x) => $x;
fn($x, ...$rest) => $rest;
نکته ای که باید به آن توجه داشت این است که توابع فلش دارای کمترین اولویت هستند. مثال را مشاهده کنید:

1
2
3
4
5
fn($x) => $x + $y
// is
fn($x) => ($x + $y)
// not
(fn($x) => $x) + $y
استهلاک
استهلاک های بسیاری با ادغام 7.4 اتفاق می افتد. لیست زیر مختصری از توابع هدفمند برای استهلاک است. قالب هاستينگ هاستينزا اپارات می توانید توضیحی دقیق تر در اینجا بیابید :

واقعی نوع
جادو به نقل از میراث
array_key_exists () با اشیاء
FILTER_SANITIZE_MAGIC_QUOTES را فیلتر کنید
صادرات بازتاب () روش
mb_strrpos () با رمزگذاری به عنوان آرگومان سوم
implode () ترکیب سفارش پارامتر
عدم اتصال این $ از بستن غیر استاتیک
hebrevc () تابع
تابع convert_cyr_string ()
تابع money_format ()
ezmlm_hash () تابع
تابع restore_include_path ()
اجازه_ورل_includ اینیای مستقیم
برخی از موارد مهم که باید به آنها توجه کنیم ، استهلاکهای دو مرحله ای زیر است.

تغییر سابقه یک اپراتور پیوستن
در حال حاضر اولویت عملگرهای "." ، "+" و "-" همه برابر هستند. هر ترکیبی از این عملگرها به سادگی از چپ به راست حل می شود.

بیایید به این کد در PHP 7.3 نگاه کنیم:

1
2
3
4
echo "sum: " . $a + $b;
// would be evaluated left-to-right
echo ("sum: " . $a) + $b;
// could also look like this
با PHP 7.4 ، "+" و "-" بر "اولویت دارند". بنابراین موارد اضافی و تفریق همیشه قبل از رشته انجام می شود. این مانند موارد زیر است:

1
2
3
echo "sum: " . $a + $b;
// would be executed as if the code were as follows.
echo "sum :" . ($a + $b);
این پیشنهاد دو مرحله ای با هدف کمتر خطا و غریزه تر است. PHP 7.4 در حال حاضر در مرحله اول با اعلامیه استهلاک از عبارات غیر پرانتز '+' ، '-' و 'است. در حالی که منتظر رای گیری / تغییر نهایی هستید که در PHP 8 اتفاق می افتد.

اپراتور سه گانه مستقل چپ
بر خلاف بسیاری از زبان های دیگر ، اپراتور سه گانه در PHP بیشتر به معنای انجمنی چپ است تا راست-همکار. نه تنها غیر معمول بودن ، قالب هاستينگ هاستينزا اپارات بلکه برای برنامه نویسان که بین زبانهای مختلف جابجا می شوند نیز گیج کننده است. PHP 7.4 پیشنهاد می کند که انجمن گرایی چپ را از بین ببرد و به جای آن نیاز به استفاده از پرانتز دارد.

بیایید به کد زیر نگاهی بیندازیم:

1
2
3
4
5
return $a == 1 ? 'one'
: $a == 2 ? 'two'
: $a == 3 ? 'three'
: $a == 4 ? 'four'
: 'other';
در اکثر زبانهای دیگر اینگونه تعبیر می شود:

1
2
3
4
5
return $a == 1 ? 'one'
: ($a == 2 ? 'two'
: ($a == 3 ? 'three'
: ($a == 4 ? 'four'
: 'other')))
در حالی که در PHP قرار دارد ، در عوض اینگونه تعبیر می شود:

1
2
3
4
5
return ((($a == 1 ? 'one'
: $a == 2) ? 'two'
: $a == 3) ? 'three'
: $a == 4) ? 'four'
: 'other';
این می تواند منجر به خطا شود زیرا معمولاً آن چیزی نیست که در نظر گرفته شده بود.

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

نتیجه
فقط در زمان تعطیلات ، PHP 7.4 ویژگی های جدید قالب هاستينگ هاستينزا اپارات و کیفیت زندگی را برای همه توسعه دهندگان PHP به ارمغان می آورد.

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

با افزودن اعلامیه های نوع خاص از املاک و اشاره های نوع ، عملکردهای ادغام پیکان و سرعت بهتر مضحک ، 7.4 مطمئناً سرعت و کیفیت گردش کار شما را بهبود می بخشد.

داستانهای برتر
معرفی PHP 7.4: عملکرد ، ویژگی ها ، استهلاک ها
11 دسامبر • مهندسی

معرفی PHP 7.4: عملکرد ، ویژگی ها ، استهلاک ها
بیشتر بخوانید
چگونه می توانیم اسپرینت های طراحی را در هاستینجر اجرا کنیم
27 نوامبر • بازاریابی

چگونه می توانیم اسپرینت های طراحی را در هاستینجر اجرا کنیم
بیشتر بخوانید
بهبود عملکرد وب سایت با LiteSpeed
29 ژوئیه • مهندسی

بهبود عملکرد وب سایت با LiteSpeed
بیشتر بخوانید
نویسنده
نویسنده
Linas L. / linas

Linas به عنوان یک عامل موفقیت مشتری شروع به کار کرد و هم اکنون یک برنامه نویس کامل PHP در Hostinger است. وی علاقه مند است با استفاده از تکنیک های توسعه کاربر محور تأثیر مثبتی بگذارد. به همان اندازه که از برنامه نویسی و تغییر جهان لذت می برد ، مخفیانه آرزو می کند که یک ستاره راک شود.

https://www.hostinger.com/blog/introducing-php-7-4

Leave a Reply

Your email address will not be published. Required fields are marked *