Blog IT, Blog Marketing

PHP 8.0 wydane

PHP 8.0 wydane

Marcin Sarna , 27.11.2020 r.

PHP 8.0 już oficjalnie! Język programowania (tak!) z wieloma dodatkami i lepszą wydajnością.

O co ten szum, tak w skrócie?

PHP 8.0 jest już dostępny tak jak oczekiwano - udostępniono aktualizację tego szeroko używanego języka programowania, który działa po stronie serwera WWW. PHP 8.0 wprowadza opcjonalny kompilator JIT, integruje istniejącą obsługę JSON z rdzeniem (już nie jest to opcjonalne) i dodaje obsługę języka dla atrybutów, typów union czy statycznego typu zwracanego.

Zmiany a stare skrypty

Ze względu na istotne zmiany wprowadzane nową wersją istnieje większe prawdopodobieństwo, że będziesz musiał dokonać pewnych zmian w swoim kodzie, aby działał w PHP 8. Jeśli jednak jesteś na bieżąco z najnowszymi wydaniami, aktualizacja nie powinna być szczególnie trudna, ponieważ większość istotnych zmian została uznana za przestarzałą jeszcze w wersjach 7.*.

Przyjrzyjmy się kilku wybranym nowościom.

Union types

Typy unii są użyteczne w wielu różnych zastosowaniach. Generalnie chodzi o to, że typ unii to kolekcja dwóch lub więcej typów i jej zastosowanie świadczy o tym, że dopuszczamy zastosowanie któregokolwiek z nich. Przykład:

public function foo(Foo|Bar $input): int|float;

Void nigdy nie może być częścią union type bo nie wskazuje na żadną konkretną wartość zwracaną. Możemy za to korzystać z tzw. nullable unions, tj. korzystając z null, na przykład:

public function foo(Foo|null $foo): void;

JIT

Kompilator JIT – just in time - obiecuje znaczną poprawę wydajności, choć nie zawsze w kontekście żądań (requestów). Pierwsze testy porównawcze dla rzeczywistych aplikacji internetowych raczej nie wskazują na niesamowity przyrost wydajności w przypadku takich projektów PHP. Czemu mamy sobie nim w ogóle zawracać głowę?

PHP jest językiem interpretowanym: nie jest kompilowany tak jak program C, Java czy Rust. Zamiast tego jest tłumaczony na kod maszynowy - coś, co procesor rozumie - w czasie wykonywania. JIT to technika, która kompiluje części kodu w czasie wykonywania, dzięki czemu można zamiast użyć skompilowanej wersji. Jest to coś w rodzaju „zbuforowanej wersji” interpretowanego kodu, generowanej w czasie wykonywania. Jak to działa?

Istnieje tak zwany „monitor”, który sprawdza kod w trakcie jego działania. Gdy ten monitor wykryje części kodu, które są ponownie wykonywane, oznaczy te części jako „ciepłe” lub „gorące”, w zależności od częstotliwości ich użycia. Te gorące części można skompilować i używać w locie zamiast prawdziwego kodu.

Sprawdź oferty pracy na TeamQuest

Operator nullsafe

Jeśli znasz operator null coalescing to wiesz też, jakie ma ograniczenia: nie działa z wywołaniami metod. Można się było do tej pory ratować rozwiązaniami dostarczanymi przez niektóre frameworki ale teraz już nie trzeba. PHP 8.0 dostarcza nullsafe operator, który możesz użyć na przykład tak:

$dateAsString = $booking->getStartDate()?->asDateTimeString();

Atrybuty

Jeśli znasz adnotacje (np. w Javie) to odpowiednikiem takich annotations w PHP będą teraz attributes. Możliwe będzie więc opatrzenie klasy taką meta-daną, na przykład w ten sposób:

use App\Attributes\ExampleAttribute;

#[ExampleAttribute]
class Foo
{
#[ExampleAttribute]
public const FOO = 'foo';

#[ExampleAttribute]
public $x;

#[ExampleAttribute]
public function foo(#[ExampleAttribute] $bar) { }
}

Polecamy też to proste porównanie nowych funkcji na stronie PHP.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej