Testy PHP 7.0.0beta2 w Windows

PHP 7

Dziesiątego lipca 2015 została wydana wersja PHP 7.0.0 Beta1. Na dzień dzisiejszy dostępna jest już do pobrania Beta3 (6 sierpnia 2015), a najnowsze źródła i wersje skompilowane można pobrać stąd. Kolejnym wydaniem będzie już PHP 7 RC1, którego udostępnienie planowane jest na 20 sierpnia i wszystko wskazuje na to, że wersja finalna zostanie wydana 12 listopada 2015.

Aby rozpocząć zabawę z PHP7 w Windowsie najłatwiej zrobić to poprzez instalację WAMP Stack Installers (pobierz instalator), w skład którego wchodzi:

  • Apache 2.4.16
  • MySQL 5.6.26
  • PHP 7.0.0beta2
  • PHPMyAdmin 4.4.7
  • ImageMagick 6.7.6-6-Q8
  • SQLite 3070603
  • ModSecurity 2.9.0
  • Heroku client
  • Git 1.9.5
  • Ruby 2.2.2-i386-mingw32

Pakiet zainstalowałem w najnowszym Windowsie 10 bez żadnych problemów.

Co nowego w PHP 7?

 

Scalar Type Hints v0.5

Na początek to, na co czekaliśmy od dłuższego czasu, czyli wskazywanie typów skalarnych.

Wywołanie powyższej funkcji z błędnym typem parametrów zwróci błąd (Error):

Jednak komunikat ten nie zostanie wyświetlony bezpośrednio na ekranie, a zostanie dopisany do error loga, a skrypt zakończy działanie.
Tego typu błędy można obsłużyć w bloku try / catch (Error) o czym napiszę poniżej.

Prześledźmy jeszcze poniższe wywołania tej samej funkcji:

Skrypt zakończy działanie bez żadnych błędów, a w error logu pojawi się komunikat:

Jednak próba wywołania funkcji z tymi parametrami zwróci błąd:

Jak widać silnik php próbuje rzutować jawnie określone typy tekstowe na liczby, jednak robi to w dalszym ciągu niepoprawnie, tak jak to miało miejsce w poprzednich wersjach. Takie zachowanie w dalszym ciągu jest nielogiczne, zwłaszcza dla tych programistów, którzy na co dzień kodują w Javie czy C++. Mimo wszystko, to dobry kierunek rozwoju i trzeba mieć na uwadze, że wersja na której wykonuję testy to jednak jest beta.

Sprawdźmy jeszcze jeden przykład:

Próba przekazania wartości typu float do funkcji przyjmującej typ int spowoduje rzutowanie wartości (które będzie w tym przypadku stratne).

Istnieje możliwość wprowadzenia bardziej restrykcyjnej kontroli przekazywanych typów poprzez zdeklarowanie w pierwszej linii skryptu:

Ważne aby ta deklaracja była w pierwszej linii skryptu. Zobaczcie przykład:

Zwróci on błąd:

A tutaj prawidłowa deklaracja:

 

Throwable Interface

W PHP 7 możemy w jawny sposób obsługiwać wyjątki znane do tej pory jako Fatal Error.
Interfejs wygląda następująco:

  • interface Throwable
    • Exception implements Throwable
    • Error implements Throwable (Replaces EngineException)
      • TypeError extends Error
      • ParseError extends Error

Weźmy za przykład wywołanie wcześniej zdefiniowanej funkcji do sumowania wartości dwóch liczb, do której przekażemy tekst zamiast liczb:

Jak widać błąd ten zostanie przechwycony w bloku catch(Error).

Kolejny przykład, to próba wywołania nieistniejącej funkcji:

 

Return Type Declarations

Przykład deklaracji zwracanego typu do naszej funkcji:

Należy zwrócić uwagę, że specyficznym przypadkiem jest wartośc null. Próba utworzenia takiej funkcji:

Zwróci błąd:

Combined Comparison (Spaceship) Operator

Operator porównania <=>zwraca wartości:

  • -1, gdy lewa strona jest mniejsza od prawej
  • 0, gdy obie strony są takie same
  • 1, gdy lewa strona jest większa od prawej

Przykłady:

Anonymous Class Support

PHP 7 wspiera możliwość tworzenia anonimowych klas (od dawna znanych np. przez programistów Javy).

Przykład:

 

Pozostałe zmiany:

Context Sensitive Lexer
Add preg_replace_callback_array function
Reliable User-land CSPRNG
Generator Delegation
Reserve More Type Names in PHP 7
Constructor behaviour of internal classes
Reclassify E_STRICT notices
Remove PHP 4 Constructors
Remove the date.timezone warning
Fix „foreach” behavior
Removal of dead SAPIs and extensions
Jsond
Preserve Fractional Part in JSON encode
Fast Parameter Parsing API
Unicode Codepoint Escape Syntax
Native TLS
Null Coalesce Operator
Integer Semantics
ZPP Failure on Overflow
Move the phpng branch into master
Abstract Syntax Tree
Uniform Variable Syntax
64 bit platform improvements for string length and integer
Closure::call
Fix list() behavior inconsistency
Remove alternative PHP tags
switch.default.multiple
Catchable „call to a member function of a non-object”
Filtered unserialize()
ICU IntlChar class
Introduce session_start() INI options as array
Remove hex support in numeric strings
Expectations
Group Use Declarations
Exceptions in the engine
Generator Return Expressions
Continue output buffering
intdiv()
Fix handling of custom session handler return values
Turn gc_collect_cycles into function pointer

 

Godne polecenia książki do PHP:

Autor: Luke Welling, Laura Thomson

ISBN: 978-83-246-3177-3

Format: , stron:

Data wydania:

Opis: Kolejne, uaktualnione wydanie najbardziej znanego, bestsellerowego podręcznika dla webmasterów na temat tworzenia dynamicznych witryn internetowych! Ponad 30 000 sprzedanych egzemplarzy poprzednich wydań!!! Recepta na sukces w przypadku tworzenia profesjonalnych stron WWW jest niezwykle prosta: wystarczą ogromne możliwości PHP, niezrównana wydajność MySQL i wielka, chętna do pomocy sp

Cena: 109.00zł

Autor: Matt Zandstra

ISBN: 978-83-246-9178-4

Format: , stron:

Data wydania:

Opis: Tw&oacute;j przewodnik po obiektowym PHP! Język PHP przebył długą drogę od swoich początk&oacute;w do obecnego poziomu rozwoju. Dziś jest pełnoprawnym, obiektowym językiem programowania, wciąż zdobywającym większe zaufanie i używanym w coraz większych projektach. Jeżeli znasz ten język od dawna, lecz nie jesteś przekonany, że nadaje się on do zaawansowanych zastosowa

Cena: 79.00zł

Autor: Marcin Lis

ISBN: 83-246-0307-7

Format: , stron:

Data wydania:

Opis: Znajomość języka PHP wykorzystywanego do tworzenia dynamicznych stron WWW to dziś jedna z podstawowych umiejętności wymaganych od webmastera. Era statycznych stron tworzonych za pomocą języka HTML przeminęła już dawno, a dynamiczne generowanie treści stało się obecnie standardem. Język PHP i baza danych MySQL stanowią platformę o wielkich możliwościach, stosowaną do tworzenia

Cena: 49.00zł

 

Podsumowanie

Ten wpis ma charakter typowo warsztatowy, tzn. z osobiście przeprowadzonych testów. Z biegiem czasu i poznawania kolejnych nowości w PHP 7 będę go aktualizował. Tymczasem zachęcam do zainstalowania wersji beta PHP 7 i poznawania nowych funkcji.

Jednocześnie zachęcam do polubienia Notatnika Programisty na Facebooku, gdzie na bieżąco aktualizowane są wpisy na blogu, a także umieszczane są informacje na temat promocji książek związanych z programowaniem i Arduino.

 

To również może Cię zainteresować:

2 thoughts on “Testy PHP 7.0.0beta2 w Windows

    • https://pl.wikipedia.org/wiki/PHP#PHP_6:
      Przeciągające się prace nad PHP 6 sprawiły, że niektóre z planowanych wcześniej rozszerzeń takich, jak wprowadzenie przestrzeni nazw i funkcji anonimowych, dołączono już do wcześniejszych wersji, tworząc gałąź 5.3. Ostatecznie w marcu 2010 roku rozwój wersji 6.0 w dotychczasowym kształcie został oficjalnie zawieszony wskutek braku postępów w implementacji standardu Unicode oraz wewnętrznych sporów w gronie czołowych programistów. W związku z tym gałąź trunk, gdzie dotychczas trwał rozwój PHP 6, została zarchiwizowana, a następnie reaktywowana na bazie wersji 5.3.0. W późniejszych miesiącach podjęto decyzję, że najbliższe nowe wydanie będzie nosić numer 5.4.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *