Начало > ICN.Bg Блог > Какво ново > Какво ново в PHP 7.4 – подобрения, функционалности и нововъведения (наличен за клиентите на ICN.Bg)

Какво ново в PHP 7.4 – подобрения, функционалности и нововъведения (наличен за клиентите на ICN.Bg)

Какво ново в PHP 7.4 – подобрения, функционалности и нововъведения (наличен за клиентите на ICN.Bg)

Какво ново

От месец април, всички клиенти на ICN.Bg могат да се възползват от PHP 7.4 и подобренията, които предоставя той!

PHP 7.4, последният малък ъпдейт на скриптовия език, беше обявен в края на месец ноември 2019г. и донесе със себе си много подобрения и нововъвдения, които да подобрят представянето на сайтовете и четливостта на самия код.

Въпреки това, очаква се PHP 8, следващият голям ъпдейт, да предложи наистина значими подобрения що се отнася до представянето на уебсайтовете, особено след като беше одобрено интегрирането на JIT в предстоящата версия!

Но ще говорим повече за PHP 8, когато версията стане факт! Сега е време да се фокусираме върху PHP 7.4. В следващите редове ще разгледаме някои от най-интересните и полезни подобрения и нововъведения в последната PHP версия.

PHP 7.4 налична за всички клиенти на ICN.Bg

Както споменахме и в началото, от месец април 2020г., потребителите на хостинг компания ICN.Bg имат възможността да използват PHP 7.4. Предоставяйки възможността за преминаване към последната PHP версия, ние гарантираме на всички наши клиенти по-оптимизиран и защитен онлайн проект!

Важно е всички наши клиенти да знаят, че преминаването към най-новата версия на скриптовия език няма да навреди на работата на сайта им! За да сте сигурни, че при преминаването към новата версия няма да има последствия за сайта ви, съветваме ви да следвате стъпките за обновяване на PHP версия в нашата помощна статия!

Ако срещате затруднение или не се чувствате сигурни в извършването на този ъпгрейд собственоръчно, винаги можете да се обърнете към нашия отдел Техническа поддръжка, които с удоволствие ще ви съдействат!

Накратко за PHP: PHP се нарежда сред най-популярните езици за програмиране в Интернет и се използва за създаване на сървърни приложения и динамично уеб съдържание. Началото му се поставя още през 1994г., а до днес езикът е пренаписван няколко пъти с цел добавяне на нови функционалности и премахване на бъгове. Към месец април 2020г. PHP се използва при 78,3% oт уеб сайтовете по света.

Какво ново в PHP 7.4?

PHP 7.4 идва с много нововедения, функционалности, допълнения към синтаксиса и разрешени предишни бъгове. В следващите редове ще обърнем внимание на някои от най-значимите новости:

Preloading (предварително зареждане)

Без съмнение можем да кажем, че Preloading е една от най-вълнуващите нови функционалности, които са добавени към версия 7.4.

Когато се използват frameworks или libraries, файловете, които са поместени в тях трябва да бъдат заредени и линквани при всяка една заявка. Това от своя страна оказва влияние върху скоростта на зареждане. Начин, по който работи Preloading е такъв, че чрез него тези frameworks и libraries биват заредени с помощта на OPCache. Това позволява на сървъра да зарежда и запазва PHP файловете в паметта си при стартиране и така те да бъдат бързо достъпни при получаване на заявка. По този начин скоростта на зареждане се увеличава в пъти!

Предварителното зареждане се изпълнява от специална php.ini директива: opcache.preload. Важно е да споменем, че ако източникът, от който се зареждат файловете бъде променен, сървърът трябва да бъде рестартиран.

Arrow функции

С версия 7.4 вече могат да бъдат използвани и така наречените “arrow”функции, които съкращава излишните думи в кода. Във версиите преди 7.4, кодът би изглеждал по следния начин:

function cube($n){
	return ($n * $n * $n);
}
$a = [1, 2, 3, 4, 5];
$b = array_map('cube', $a);
print_r($b);

Вече можете да напишете просто:

$a = [1, 2, 3, 4, 5];
$b = array_map(fn($n) => $n * $n * $n, $a);
print_r($b);

Spread Operator

С пускането на версия PHP 5.6, PHP започна да поддържа т.нар. “argument unpacking” (spread operator), но сега с пускането на PHP 7.4 всички разработчици могат да използват тази функционалност с array expression.

Нека разгледаме следващите няколко примера:

$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];
var_dump($fruits);

Благодарение на Spread Operator синтаксиса, сега е възможно разширяването на дадена редица откъде пожелаем. Също така, можете да го използвате и във функция:

function generator() {
	for ($i = 3; $i <= 5; $i++) {
		yield $i;
	}
}
$arr1 = [0, 1, 2, ...generator()];

Освен това вече можете да разопаковате редици и генератори, които се връщат от функция директно в нова редица:

function buildArray(){
	return ['red', 'green', 'blue'];
}
$arr1 = [...buildArray(), 'pink', 'violet', 'yellow'];

Сега може да изглеждат така:

array(5) {
	[0]=>
	string(6) "banana"
	[1]=>
	string(6) "orange"
	[2]=>
	string(5) "apple"
	[3]=>
	string(4) "pear"
	[4]=>
	string(10) "watermelon"
}

Очаква се Spreаd Operator да предложи подобрение в представянето спрямо arraymerge_ от версия 7.3.

Всъщност, аrray_merge е премахнат в PHP 7.4!

Подобрението в представянето може да се очаква поради факта, че Spread Operator е структурен език, докато array_merge е функция.

Weak References

Към PHP 7.4 беше добавен и WeakReference клас, който не трябва да се бърка с другите два класа – WeakRed или Weakref разширението!

WeakReferences позволяват на програмистите да направят препратка към даден обект. Това е изключително полезно, защото по този начин не се пречи на дадения обект да бъде разрушен.

$object = new stdClass;
$weakRef = WeakReference::create($object);

var_dump($weakRef->get());
unset($object);
var_dump($weakRef->get());

Числов литерален сепаратор (Numeric Literal Separator)

PHP 7.4 позволява използването на долни черти за разделянето на числови стойности. Изглежда по следния начин:

$unformattedNumber = 107925284.88;

$formattedNumber = 107_925_284.88;

Долните черти няма да се визуализират на сайта ви!

Можете да откриете всички нововъведения и промени в PHP 7.4 в официалния документ. {: .dark .center}

Премахване на термини (Deprecations)

С пускането на PHP 7.4 се очаква и някои функции да бъдат премахнати. Това е кратък списък с някои от тях, които са набелязани за премахване:

  • Тhe real type
  • Magic quotes legacy
  • arraykeyexists() with objects
  • FILTERSANITIZEMAGIC_QUOTES filter
  • Reflection export() methods
  • mb_strrpos() with encoding as 3rd argument
  • implode() parameter order mix
  • Unbinding $this from non-static closures
  • hebrevc() function
  • convertcyrstring() function
  • money_format() function
  • ezmlm_hash() function
  • restoreincludepath() function
  • allowurlinclude ini directiv

По-обстойна информация можете да откриете в официалния документ по темата!

Защо да преминете към версия PHP 7.4?

PHP е скриптов език, който се ползва от 78.3% от всички сайтове в световен мащаб, най-известните, от които са Facebook, Pinterest, Wikipedia, WordPress и всички останали CMS платформи.

Въпреки широкото си разпространение, по данни на W3Techs , едва 50.5% от потребителите използват версия 7, докато 49.1% все още използват версия 5.

Ако вие попадате във втората група, добре е да знаете, че след 2018-та години всички сайтове, които използват PHP 5, станаха уязвими срещу кибер атаки, тъй като вече не получават актуализации на защитата си. Ето защо ви съветваме своевременно да преминете към последните версии на PHP, тъй като от една страна ще бъдете спокойни за сигурността на вашия уебсайт, а от друга – значително ще подобрите неговото представяне!

Преди пускането на PHP 7.4 се твърдеше, че OPCache Preloading ще подобри представянето с 30%-50%. Въпреки че все още няма тестове, които да доказват това твърдение на 100%, със сигурност се наблюдават значителни подобрения спрямо предишната версия:

PHP 7.4 benchmark

Добавянето на новата версия на PHP 7.4 на нашите сървъри е поредната стъпка, която правим, за да осигурим защитена и добре работеща онлайн среда за всички наши клиенти. Искаме да ви напомним, че ако не се чувствате сигурни в преминаването към PHP 7.4, винаги можете да се обърнете към нас и ние ще ви окаже съдействие. Можете да ни пишете на support@icn.bg или да се свържете с нас чрез познатите ви телефони!

Абонирай се за бюлетина ни!

Получавай първи най-актуалната и полезна информация за твоя онлайн бизнес!

Изпращане... Грешка по време на изпращането! Моля опитайте отново!

С въвеждане на вашия мейл, вие се съгласявате с условията за ползване на ICN.Bg. Този сайт е защитен от reCAPTCHA и се прилагат правилата за поверителност и общите условия на Google

Благодарим Ви.

Заявката ви е изпратена успешно!

Обратно най-горе