Tags Posts tagged with "php"

php

przez -
4 4003
PHP

3 grudnia 2015 została wydana oficjalna wersja PHP 7.0.0., w której wydajność w stosunku do PHP 5.6 została zwiększona nawet dwukrotnie. W końcu programiści PHP doczekali się możliwości wskazywania typów argumentów metod oraz typów zwracanych przez funkcje i metody.

0to spis funkcjonalności dzięki którym wiemy, że PHP7 jest rewolucją.

1. Wydajność
Jedną z największych zmian w PHP7 jest przyśpieszenie, nowa wersja jest ponad dwukrotnie szybsza od poprzednika oraz zużywa również mniej pamięci. To dla hostingowców na pewno niezły prezent, ponieważ teraz ich maszyny mogą bez żadnych dodatkowych kosztów i problemów zmierzyć się z większym ruchem.
Poniżej znajduje wykres obrazujący wyniki testów wykonanych z PHP 5.6 jak i z PHP7. Różnica jest piorunująca.

php7

2. Ujednolicenie składni
Jednym z wielu skarg użytkowników języka PHP było brak konsekwencji w składni. Jedne operacje wywoływały błędy, a drugie operacje były dozwolone, co powodowało frustrację wśród programistów. Najnowsze wydanie PHP 7 w końcu rozwiązało ten problem. Dodano wiele operacji, które sprawiają,że składnia staje się bardziej zwarta. Pozwoli to między innymi na pełniejsze wykorzystanie programowania funkcyjnego. Poniżej przykład zastosowania wraz z wynikiem, który pojawia się po skompilowaniu kodu w PHP 5.4 oraz PHP 7.0:

$apply = function ($fun) {
return function ($a) use ($fun) {
return $fun($a);
};
};
$add = function ($x) {
return function ($y) use ($x) {
return $x + $y;
};
};
echo $apply($add)(2)(3);

Wynik:
PHP 7: 5
PHP 5.4: Parse error: syntax error, unexpected ‘(‘, expecting ‘,’ or ‘;’ in …

3. Wyjątki zamiast błędów krytycznych
Od wersji 7 błędy krytyczne są zgłaszane jako wyjątki silnika, które będą mogły być łapane i obsługiwane jak wszystkie pozostałe wyjątki.

function add(int $a, int $b) : int
{
return $a + $b;
}</code>

try {
echo add(2, "trzy");
} catch (EngineException $e) {
echo $e-&gt;getMessage(); //Argument 2 passed to add() must be of the type integer, string given ...
}

Wprowadzone zostały dwa nowe typy wyjątków, dla wewnętrznych EngineException błędów silnika oraz ParseException dla błędów składniowych.

4. Deklaracje dla typów skalarnych

Rewolucyjną zmianą w PHP7 jest dodanie deklaracji dla typów skalarnych, deklarowane będą mogły być łańcuchy znaków (string), liczby całkowite (int) i zmiennoprzecinkowe (float) oraz typy logiczne (boolean). Sprawdzanie typów jest dostępne w dwóch wersjach coercive – dopuszczającym rzutowanie i strict – dopuszczająca tylko dokładny typ.

5. Deklaracje dla typów zwracanych
Kolejną przełomową zmianą wprowadzoną w PHP7 jest wprowadzenie deklaracji dla typów zwracalnych.Typy które są dostępne to: ciągi znaków (string), liczby całkowite (int) i zmiennoprzecinkowe (float), typy logiczne (bool), tablice (array), typ callable, typ self (tylko dla metod), typ parent (tylko dla metod), domknięcia (Closure), a także klasy i interfejsy.

Oto przykład deklaracji typu zwracalnego:

function add(int $x, int $y) : int
{
return $x + $y;
}

6.Klasy anonimowe
Klasy anonimowe, które są stosowane między innymi w języku Java, teraz są też dostępne w PHP7.Kiedy one mogą być użyte:

1. Gdy klasa nie musi być udokumentowana,
2. gdy klasa jest wykonana i użyta tylko raz

Anonimowa klasa to klasa bez zdefiniowanej nazwy, ma taką samą składnie jak klasa z nazwą oraz nie różni się od niej.

var_dump (new class($i) {
public function __construct($i) {
$this-&gt;i = $i;
}
});

7. Nowe operatory: połączonego porównania (Combined Comparison / Spaceship) oraz trójkowy isset (Trenary isset / Null Coalesce)

PHP 7 wprowadza nowe operatory, dzięki którym będzie można prościej przeprowadzać operacje. Pierwszym z nich jest spaceship czyli operator połączonego porównania.Pozwala na trójkowe porównanie wartości (mniejszy, większy,równy)
var_dump(1 <=> 2); // int(-1)

var_dump(‘PHP7’ <=> ‘PHP7’); // int(0)

var_dump(‘PHP7’ <=> ‘PHP6’); // int(1)
var_dump([1,2,3] <=> [3,4,5]);

Drugim operatorem jest trójkowy isset, używana jest ona do sprawdzenia czy wartość istnieje i czy nie jest równa null.
$page = $_GET['page'] ?? 1; // $page = isset($_GET['page']) ? $_GET['page'] : 1;

Operator ten może być również łączony w łańcuchy
$email = $_POST['email'] ?? $user['email'] ?? 'user@esky.pl';

8. Grupowanie deklaracji use

Grupowanie deklaracji use pozwala na wygodny, skrócony sposób importować nazwy tej samej przestrzeni nazw

// PHP5+
use Esky\Blog\Post;
use Esky\Blog\Author as User;
use Esky\Blog\Comment;
// PHP7
use Esky\Blog\{Post, Author as User, Comment};

Tak więc zmiany, które zostały wprowadzone sprawiają, że praca z nowym wydaniem PHP bardzo zachęca. Pozostaje mi zachęcić Was do samodzielnej zabawy z nową wersją, eksperymentów oraz samodzielnej kompilacji, źródło do rozpoczęcia pracy znajdziecie na stronie.
W trakcie pracy można się dowiedzieć więcej ciekawych rzeczy na temat nowego silnika PHP,jego możliwościach oraz sposobie.

przez -
0 708
Internet

Rogue Wave Software przejęło firmę Zend Technologies, która od 1997 roku opiekowała się językiem PHP. W skład portfolio wchodziły takie produkty, jak: Zend Engine, Zend Server, Z-Ray, Zend Studio, Zend Guard, Zend Encoder, Zend Platform, Zend Framework. Rogue Wave Software to amerkańskie przedsiębiorstwo, specjalizujące się w produkcji oprogramowania dla deweloperów na wiele platform systemowych.

przez -
30 7685
PHP

PHP jest językiem skryptowym, służącym głównie do projektowania stron internetowych, jest on rozprowadzony na otwartej licencji, każdy może pobrać kopie oraz używać bez żadnych ograniczeń. Zarówno do celów komercyjnych jak i prywatnych. Język ten jest łatwy w nauce oraz umożliwia tworzenie profesjonalnych stron WWW. Razem z rozwojem języka zaczęły powstawać coraz to nowsze wydania z ulepszeniami.

Już za kilkanaście tygodni nastąpi premiera PHP 7. To wydanie języka będzie się charakteryzowało dwukrotnie zwiększoną szybkością w stosunku do PHP 5.6. A to za sprawą całkowicie nowego silnika Zend Engine. Według wstępnych testów system WordPress potrafi działać o 100% szybciej. Zmniejszono także zużycie pamięci, co na pewno ucieszy firmy hostingowe oraz administratorów. Dzięki temu serwery udźwigną teraz znacznie większy ruch, bez żadnych dodatkowych kosztów.

PHP 7 będzie zawierać także ulepszoną składnię zmiennych, wewnętrznie spójną i kompletną. Pozwoli to na użycie operatorów: ->, [], (), {} i :: z dowolnymi poprawnymi wyrażeniami po lewej.

Kolejną zmianą, zresztą bardzo kontrowersyjną czyli wskazywanie typów skalarnych oraz zwracanych wartości przez funkcje/metodę. W nowej wersji będziemy mogli wskazywać jakiego typu argumenty przyjmie dana funkcja oraz jakiego typu jest zwracany wynik. Gdy warunki te nie będą spełnione nastąpi wystąpienie błędu ( Catchable fatal error)

Planowana data wydania nowej wersji to 12 listopada 2015 roku.

przez -
22 1418
Wikipedia

Wikipedia i zespół HHVM dumnie ogłosili zakończenie trudnego okresu przejścia całej strony z silnika PHP na HipHop Virtual Machine. Cały proces zajął zespołowi Fundacji Wikimedia oraz Brettowi Simmersowi z HHVM przeszło cztery długie tygodnie. Wikipedia dzięki tej zmianie serwuje całe niecachowane API i ruch sieciowy na silniku HHVM. Skok wydajnościowy jest ogromny, bo udało się zejść z 7 sekund podczas edycji i zapisu do zaledwie 3 sekund. Zmniejszono także zużycie procesora oraz ilość operacji wejścia/wyjścia dysku.

przez -
3 877
Facebook

Facebook udostępnił wszystkim wstępną wersję narzędzia Hack Transpiler, które służy do konwersji języka Hack na PHP. Przypomnijmy, że język Hack jest wstecznie kompatybilny z PHP, czyli PHP może być uruchomiony na HVVM, ale na odwrót to już nie działa. Do tego celu stworzono h2tp, narzędzie które pozwala przekonwertować projekty Hack na PHP, dzięki czemu można je bez problemu wystartować na serwerach, gdzie dostępny jest jedynie silnik PHP.

przez -
23 948
PHP

Ogłoszono wydanie PHP 5.6.0. Wprowadzeno nowy operator ** (do potęgi). Uczyniono kodowanie UTF-8 domyślnym w ramach całego PHP (default_charset). Od teraz można wielokrotnie korzystać w ramach wywołania aplikacji z php://input, nie jest ono czyszczone po pierwszym użyciu. W GMP (GNU Multiple Precision) można użyć operatora +, który został przeciążony. Dodano funkcję hash_equals(), która ma za zadanie porównać 2 zakodowane hasła zawsze w tym samym, stałym czasie. Dodano również obsługę algorytmu hashującego gost-crypto.

Udoskonalono obsługę SSL/TLS w PHP 5.6 (m.in. łagodzenie ataków renegocjacji TLS, obsługa certyfikatów fingerprint).

przez -
0 575
Programowanie

wxPHP to próba wprowadzenia języka PHP do aplikacji typu desktop. Sama nazwa to skrót od: wxWidgets for PHP i jest to wrapper dla biblioteki wxWidgets, który daje możliowść programowania z użyciem języka PHP. Tak napisane aplikacje, mogą być uruchamiane na wielu systemach operacyjnych. Autorzy przygotowali także specjalne środowisko programistyczne – wxFormBuilder, które ma w dużym stopniu ułatwić tworzenie programów.

Polecane

OSWorld

7 1218
Drodzy Czytelnicy, prowadzimy portal OSWorld.pl już ponad 10 lat. Z przykrością stwierdzamy, że mamy na niego coraz mniej czasu, dlatego chcielibyśmy przekazać prowadzenie serwisu osobie...