Premiera PHP 5.4. Zmiany warte twojej uwagi

php54-title.jpg

Po spektakularnych zapowiedziach PHP6, a następnie hucznym upadku całej koncepcji, developerzy PHP postanowili skupić się na rozwijaniu serii 5. W marcu 2012 roku oficjalnie ukazała się stabilna wersja PHP 5.4. Skupiono się na przeczyszczeniu kodu z archaicznych rozwiązań takich jak register_globals, magic_quotes, czy safe_mode. Według zapowiedzi developerów znacznie poprawiono wydajność interpretera (o ok. 20% obniżenie czasu wykonania, oraz zużycia pamięci). Ze zmian wartych uwagi należy jeszcze wspomnieć o zmianie standardowego ustawienia default_charset z ISO-8859-1 na UTF-8. Standardowo poprawiono ogromną liczbę błędów, usprawniono wiele funkcji, których listę (dla ambitnych) można znaleźć na tej stronie: http://php.net/ChangeLog-5.php. W dalszej części artykułu przedstawię krótko, moim zdaniem, najciekawsze nowe możliwości języka PHP.

Skrócona składnia tablic

Bardzo fajne wprowadzenie skróconej składni. Możemy definiować naszą tablice w stary sposób:

$numbers = array('one','two','three');

Ale od wersji 5.4 możemy to zrobić tak:

$numbers = ['one','two','three'];

$numbers = ['one' => 1, 'two' => 2, 'three' => 3];

Array Dereferencing

Kolejna rewelacyjna możliwość PHP w tej wersji to możliwość łatwiejszego dostępu do elementów tablicy, jeżeli jest ona zwracana przez funkcje. Posłużę się przykładem żywcem z dokumentacji, gdyż prezentuje idealnie o co w tej nowości chodzi

function getArray() {
return array(1, 2, 3);
}

// w PHP 5.4
$secondElement = getArray()[1];

// wcześniejsze wersje
$tmp = getArray();
$secondElement = $tmp[1];

Widać wyraźnie, iż wcześniej musieliśmy zbędnie tworzyć tymczasową zmienną ($tmp), aby dostać się do konkretnych wartości zwracanych przez daną funkcje.

Traits

Wprowadzeniu Traitsów towarzyszyło trochę kontrowersji. Dla niektóry jest to wprowadzenie czegoś na kształt wielokrotnego dziedziczenia, powszechnie znienawidzonego przez programistów C++. Ja wole to traktować jak kolejne narzędzie, które może ułatwić moją prace. Najprościej ujmując Traitsy to zestawy metod, które możemy wielokrotnie wykorzystać w niezależnych klasach. Ponownie posłużę się prostym przykładem z dokumentacji:

trait Hello {
public function sayHello() {
echo 'Hello ';
}
}

trait World {
public function sayWorld() {
echo ' World';
}
}

class MyHelloWorld {
use Hello, World;

public function sayExclamationMark() {
echo '!';
}
}

$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
$o->sayExclamationMark(); // wynik tego zestawu funkcji to: Hello World!

Przed aktywnym wykorzystaniem Traitsów polecam dokładnie zapoznać się z dokumentacją, gdyż są one już dosyć skomplikowaną funkcjonalnością, która wymaga odrobiny praktyki.

Pomniejsze zmiany

Wprowadzono ciekawą składnie dostępności do elementów klasy:

(new Klasa)->metoda();

Skrócona składnia dla PHP jest na stałe włączona. To znaczy, że z tej składni:

<?=$zmienna?>

będziemy mogli już zawsze korzystać niezależnie od ustawień short_open_tag. Wprowadzono także obsługę $this w funkcjach anonimowych, a także dodano obsługę binarnego formatu danych (np. 0b001001101)

DyskusjaKomentarze: 12

  • HerrLukas 21 kwiecień 2012 17:44
    Traits to faktycznie dobry pomysł. Nie są trudne, zresztą to tylko inne rozwiązanie problemów.

    Im więcej rozwiązań jednego problemu, tym język staje się bogatszy. Nie jest powiedziane, że trzeba tego na siłę używać.
  • Marcin 15 listopad 2016 01:26
    No i z wielką ciekawością można przejrzeć takie archiwalne wpisy. Te cztery lata od publikacji arta wydają się szmatem czasu. W tym czasie poznałem php ;)
  • Marcin 05 grudzień 2016 03:00
    .
  • Olek 23 lipiec 2017 15:39
    Pomyśleć że już mamy wersję 7
  • Iza 29 lipiec 2017 23:53
    Co z tego że jest wersja 7 skoro większość dalej korzysta i będzie korzystać z 5.x
  • Miron 29 sierpień 2019 12:05
    kurde a ja przy php5 dalej stoję. przy przejściu na 7 sypią mi się skrypty.
  • pixup 08 kwiecień 2020 14:31
    Oj leciwy wpis ;) już wersja 7.3. Wpadłem bo szukam informacji związanych z wersją 5 php. Pozdrawiam.
  • 4termo 03 listopad 2020 12:14
    Szukałem informacji o starszej wersji i widzę, że wpadłem w naprawdę stary wpis. Technologia poszła już trochę do przodu.
  • Edom 05 listopad 2020 11:22
    Szukałem wpisu odnośnie poprzedniej wersji, wpis leciwy, ale może komus się przyda, pozdrawiam
  • Katalog 13 listopad 2020 23:22
    Technologia poszła do przodu ale treści jak najbardziej przydatne
  • Pusmak 26 listopad 2020 13:23
    Ja dalej stoję z 5, jakoś nie mogę się przekonać. Mimo wielu ułatwień
  • Mateusz 09 styczeń 2021 13:43
    Ojojoj stary wpis. Już ósemeczka puka do drzwi.

Dodaj komentarz Komentarze są moderowane, a przy linkach używane jest rel="nofollow". Prosimy o nie reklamowanie i nie spamowanie w komentarzach.
Linki tworzone za pomocą tagu [url] np: [url=www.xyz.pl]xyz[/url]
Źródła za pomoc tagu [code] z wskazaniem języka np. [code=php] echo [/code]

Copyright © 2021 Webnote

Projekt i wykonanie: Tworzenie stron internetowych

Dodaj link