Drukowana wersja tematu
Forum PHP.pl _ Newsy _ PHP 7.0.0 Alpha 1 Released
Napisany przez: com 12.06.2015, 21:47:39
Jakiś czas temu pojawiła się maszyna do vagranta z zainstalowanym jednym z pierwszych wydań php7, jednakże dziś światło dzienne ujrzała pierwsza oficjalna Alpha.
Jeśli kogoś interesuje lista zmian to można znaleźć ją tutaj: https://github.com/php/php-src/blob/php-7.0.0alpha1/NEWS oraz https://github.com/php/php-src/blob/php-7.0.0alpha1/UPGRADING
Można go oczywiście pobrać i przetestować już dziś, linki do downloadu: https://downloads.php.net/~ab/ oraz wersja dla Windows: http://windows.php.net/qa/, tam jednak żeby zaczęło działać trzeba mieć apache kompilowane VC14, czyli najnowszą jego wersje najlepiej. Oraz pobrać brakujący dll ponieważ nie został on umieszczony w paczce php: http://windows.php.net/downloads/snaps/ostc/69801/vc14/
Co nowego, skrócona lista:
- Zwiększona wydajność: PHP 7 jest nawet dwa razy szybciej niż PHP 5.6
- Spójne wsparcie 64-bit
- Wiele fatal errors stało się teraz wyjątki
- Usunięcie starych i nieobsługiwanych SAPI i rozszerzeń
- Operator null coalescing (? ?)
- Combined comparison Operator (<=>)
- Zwracanie zadeklarowanych typów
- Skalarne deklaracje typów
- Klasy anonimowe
Wersja ta na razie jest tylko testowa i nie powinna być używana do celów produkcyjnych.
http://www.dmiller.io/blog/2015/4/26/comparing-the-php7-and-hack-type-systems
Kilka przykładów:
Zwracanie zadeklarowanych typów i skalarne deklaracje typów<?php
function add(int $a, int $b): float {
return $a + $b;
}
http://www.php.net/var_dump(add(1,2)); //float(3)
<?php
function add(int $a, int $b): int {
return (string) $a + $b;
}
http://www.php.net/var_dump(add(1,2)); //int(3)
<?php
function add(int $a, int $b): string {
return (string) $a + $b;
}
http://www.php.net/var_dump(add(1,2)); //string(1) "3"
Ale:
<?php
function add(int $a, int $b): http://www.php.net/array {
return (http://www.php.net/array) $a + $b;
}
http://www.php.net/var_dump(add(1,2)); // Fatal error: Uncaught EngineException: Unsupported operand types
Podobnie jeśli podamy zły typ php rozpozna, że coś jest nie tak i odpowiednio nas o tym poinformuje
Klasy anonimowe$i = 1;
http://www.php.net/var_dump(new class($i) {
public function __construct($i) {
$this->i = $i;
}
}); //object(class@anonymous)#1 (1) { ["i"]=> int(1) }
null coalescing operator (? ?)$x = NULL;
$y = NULL;
$z = 3;
http://www.php.net/var_dump
($x $y $z); //int(3)
http://www.php.net/var_dump
(2
3 ? 4
: 5
); //int(4)
http://www.php.net/var_dump
(0
|| 2
3 ? 4
: 5
); //int(4)
Combined comparison Operator (<=>)http://www.php.net/echo 1 <=> 1; // 0
http://www.php.net/echo 1 <=> 2; // -1
http://www.php.net/echo 2 <=> 1; // 1
http://www.php.net/echo [] <=> []; // 0
http://www.php.net/echo [1, 2, 3] <=> [1, 2, 3]; // 0
http://www.php.net/echo [1, 2, 3] <=> []; // wdg dokumentacji oczekiwane 1 a otrzymujemy 3
http://www.php.net/echo [1, 2, 3] <=> [1, 2, 1]; // 1
http://www.php.net/echo [1, 2, 3] <=> [1, 2, 4]; // -1
Napisany przez: !*! 19.06.2015, 08:35:43
Wygląda nieźle, ciekawe jak z planem wdrożenia. Na niektórych hostingach nadal króluje 5.3
Napisany przez: Turson 19.06.2015, 08:51:24
Szkoda, że strict mode nie jest obowiązkowy, a jedynie opcjonalny
Napisany przez: Dejmien_85 28.06.2015, 13:24:09
Cytat(!*! @ 19.06.2015, 09:35:43 )
Wygląda nieźle, ciekawe jak z planem wdrożenia. Na niektórych hostingach nadal króluje 5.3
Ci sprytniejsci pewnie po kilku miesiącach już umożliwią odpalenie 7-demki, a tak globalnie to... pewnie poczekamy z 2 lata, zanim 7-dekma będzie standardem.
Jednak serwery współdzielone to tak naprawdę szczegół - w dzisiejszych czasach za cenę współdzielonego możesz wykupić VPS-a i samemu zainstalować to co chcesz.
Napisany przez: Pyton_000 28.06.2015, 13:34:34
Cytat(Dejmien_85 @ 28.06.2015, 14:24:09 )
pewnie poczekamy z 2 lata, zanim 7-dekma będzie standardem
Ta, nadal 5.6 nie jest standardem, nawet 5.5.
7 będzie tylko u tych lepszych lub na własnych vps, dedykach.
Napisany przez: q.michal 23.07.2015, 21:36:08
Orientujecie sie jakie typy danych sa/beda dozwolone w strict mode?
Tylko int, float, bool i string? Co z pozostalymi? char? resourcami? tablicami?
Napisany przez: buliq 24.07.2015, 09:28:22
https://wiki.php.net/rfc/scalar_type_hints_v5
Napisany przez: Skie 3.08.2015, 03:42:58
Cytat(Pyton_000 @ 28.06.2015, 14:34:34 )
Ta, nadal 5.6 nie jest standardem, nawet 5.5.
7 będzie tylko u tych lepszych lub na własnych vps, dedykach.
Aczkolwiek wersje 5.6 czy 5.5 niewiele wnosiły by być standardem, nie mówiąc już o tym, że najpopularniejsze frameworki wymagały zazwyczaj PHP w wersji 5.2 / 5.3. Nie było po prostu takiej potrzeby by się bawić w rekonfiguracje.
Nawet teraz sam korzystam z PHP 5.4 u siebie na maszynie lokalnej i dedyku, bo jak myślę ile by mi zajęło niepotrzebnie czasu zabawa w rekonfigurację, rekompilację modułów i zewnętrznych programów, to mi się odechciewa
PHP 7.0, głównie z powodu strict mode, to jednak "big deal" i potrafię sobie wyobrazić, że ta wersja będzie przejmowała rynek dość szybko i za 2, 3 lata będzie miała większy udział niż wszystkie 5.* razem wzięte. Ja się przesiądę w nowych projektach, w której mam moc decyzyjną by coś takiego ustalić, na PHP 7.0 jak tylko skończą się testy, sprawdzę że najbardziej potrzebne mi moduły działają, czyli pewnie za ok rok.
Co do samej "siódemki" jestem bardzo pozytywnie nastawiony od czasu pierwszych testów Dmitriego (nie jestem pewien, czy tak zapisuje się jego nick) na buildzie oznaczonym jako PHPNG. Jest ona czymś, co może rozbudzić rynek PHP i znacznie pomóc nowym projektom, aczkolwiek nie widzę zbytniej rewolucji, która jest niesamowicie potrzebna. Uważam, że ta wersja pozwoli zastopować spadek udziału PHP w rynku i odchodzenie programistów, ale by wskrzesić sam język i podbudować jego renomę to za mało. Na sam koniec dodam, że cieszy mnie "pobudka" rozwoju tego języka, która po udanej wersji PHP 5.4 była śmiechu warta i mam nadzieję, że "siódemka" to początek dobrej passy, która zowocuje w dobracowanej, przepisanej, odważnej "ósemce".
Napisany przez: prz3kus 15.09.2015, 13:23:12
https://wiki.php.net/todo/php70#timetable
Dzisiaj rospisali daty końcowych wersji RC
Jeszcze tylko brakuje daty wydania docelowego php 7.1
Napisany przez: KsaR 25.10.2015, 23:50:52
http://php.net/manual/en/migration70.php
Polecam przejrzeć, według mnie czytelniej opisane niż wszelkie ich Changelogi/Todo które udostępnili zanim dokumentację zrobili.
Jednak jeszcze nie da się wejść używając polskiej wersji językowej bo 404 zwraca ale to chyba nie problem :-)
Napisany przez: redeemer 26.10.2015, 09:35:13
Dodam tylko, że skok wydajnościowy jest relatywnie spory (PHP7 kompilowałem w lipcu), dla przykładu:
$limit = 20;
$A = [2.7, 3.2, 2.7];
$B = [3.238, 2.788, 3.007];
for($i=0; $i<$limit; $i++)
for($k=0; $k<$limit; $k++)
for($j=0; $j<$limit; $j++)
for($x=0; $x<$limit; $x++)
for($y=0; $y<$limit; $y++)
for($z=0; $z<$limit; $z++) {
$b = $i+$k+$j+$x+$y+$z;
$w = [];
$w[] = $i*$A[0] + $x*$B[0];
$w[] = $k*$A[1] + $y*$B[1];
$w[] = $j*$A[2] + $z*$B[2];
if (http://www.php.net/min($w)>$b) {
http://www.php.net/echo $i.' '.$k.' '.$j.' '.$x.' '.$y.' '.$z.' = '.$b.', w = '.http://www.php.net/min($w).PHP_EOL;
if (http://www.php.net/min($w)-$b>$win) {
$win = http://www.php.net/min($w)-$b;
$s = [$i,$k,$j,$x,$y,$z];
}
}
}
Kod
PHP 5.6.4-4ubuntu6.2 (cli) (built: Jul 2 2015 15:29:28)
Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz
real 1m8.849s
user 1m7.772s
sys 0m0.084s
Kod
PHP 7.0.0-dev (cli) (built: Jul 9 2015 11:14:31)
Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz
real 0m15.360s
user 0m15.192s
sys 0m0.048s
Napisany przez: Pyton_000 2.11.2015, 17:11:43
Faktyczne bardzo duży skok. Nic tylko przesiadać się
Napisany przez: com 3.12.2015, 23:04:48
03 Dec 2015
PHP 7.0.0 Released
https://secure.php.net/archive/2015.php#id2015-12-03-1
Napisany przez: redeemer 3.12.2015, 23:06:18
W końcu
Napisany przez: Forti 4.12.2015, 09:45:41
W końcu! Teraz migrować
Napisany przez: adamjackson 10.05.2019, 07:30:10
Cytat(com @ 12.06.2015, 22:47:39 )
Jakiś czas temu pojawiła się maszyna do vagranta z zainstalowanym jednym z pierwszych wydań php7, jednakże dziś światło dzienne ujrzała pierwsza oficjalna Alpha.
Jeśli kogoś interesuje lista zmian to można znaleźć ją tutaj: https://github.com/php/php-src/blob/php-7.0.0alpha1/NEWS oraz https://github.com/php/php-src/blob/php-7.0.0alpha1/UPGRADING
Best Solution for https://www.assignmentprime.com/ Problems in Australia
Można go oczywiście pobrać i przetestować już dziś, linki do downloadu: https://downloads.php.net/~ab/ oraz wersja dla Windows: http://windows.php.net/qa/, tam jednak żeby zaczęło działać trzeba mieć apache kompilowane VC14, czyli najnowszą jego wersje najlepiej. Oraz pobrać brakujący dll ponieważ nie został on umieszczony w paczce php: http://windows.php.net/downloads/snaps/ostc/69801/vc14/
Co nowego, skrócona lista:
- Zwiększona wydajność: PHP 7 jest nawet dwa razy szybciej niż PHP 5.6
- Spójne wsparcie 64-bit
- Wiele fatal errors stało się teraz wyjątki
- Usunięcie starych i nieobsługiwanych SAPI i rozszerzeń
- Operator null coalescing (? ?)
- Combined comparison Operator (<=>)
- Zwracanie zadeklarowanych typów
- Skalarne deklaracje typów
- Klasy anonimowe
Wersja ta na razie jest tylko testowa i nie powinna być używana do celów produkcyjnych.
http://www.dmiller.io/blog/2015/4/26/comparing-the-php7-and-hack-type-systems
Kilka przykładów:
Zwracanie zadeklarowanych typów i skalarne deklaracje typów<?php
function add(int $a, int $b): float {
return $a + $b;
}
http://www.php.net/var_dump(add(1,2)); //float(3)
<?php
function add(int $a, int $b): int {
return (string) $a + $b;
}
http://www.php.net/var_dump(add(1,2)); //int(3)
<?php
function add(int $a, int $b): string {
return (string) $a + $b;
}
http://www.php.net/var_dump(add(1,2)); //string(1) "3"
Ale:
<?php
function add(int $a, int $b): http://www.php.net/array {
return (http://www.php.net/array) $a + $b;
}
http://www.php.net/var_dump(add(1,2)); // Fatal error: Uncaught EngineException: Unsupported operand types
Podobnie jeśli podamy zły typ php rozpozna, że coś jest nie tak i odpowiednio nas o tym poinformuje
Klasy anonimowe$i = 1;
http://www.php.net/var_dump(new class($i) {
public function __construct($i) {
$this->i = $i;
}
}); //object(class@anonymous)#1 (1) { ["i"]=> int(1) }
null coalescing operator (? ?)$x = NULL;
$y = NULL;
$z = 3;
http://www.php.net/var_dump
($x $y $z); //int(3)
http://www.php.net/var_dump
(2
3 ? 4
: 5
); //int(4)
http://www.php.net/var_dump
(0
|| 2
3 ? 4
: 5
); //int(4)
Combined comparison Operator (<=>)http://www.php.net/echo 1 <=> 1; // 0
http://www.php.net/echo 1 <=> 2; // -1
http://www.php.net/echo 2 <=> 1; // 1
http://www.php.net/echo [] <=> []; // 0
http://www.php.net/echo [1, 2, 3] <=> [1, 2, 3]; // 0
http://www.php.net/echo [1, 2, 3] <=> []; // wdg dokumentacji oczekiwane 1 a otrzymujemy 3
http://www.php.net/echo [1, 2, 3] <=> [1, 2, 1]; // 1
http://www.php.net/echo [1, 2, 3] <=> [1, 2, 4]; // -1
Co do samej "siódemki" jestem bardzo pozytywnie nastawiony od czasu pierwszych testów Dmitriego (nie jestem pewien, czy tak zapisuje się jego nick) na buildzie oznaczonym jako PHPNG. Jest ona czymś, co może rozbudzić rynek PHP i znacznie pomóc nowym projektom, aczkolwiek nie widzę zbytniej rewolucji, która jest niesamowicie potrzebna. Uważam, że ta wersja pozwoli zastopować spadek udziału PHP w rynku i odchodzenie programistów, ale by wskrzesić sam język i podbudować jego renomę to za mało. Na sam koniec dodam, że cieszy mnie "pobudka" rozwoju tego języka, która po udanej wersji PHP 5.4 była śmiechu warta i mam nadzieję, że "siódemka" to początek dobrej passy, która zowocuje w dobracowanej, przepisanej, odważnej "ósemce".
Napisany przez: phpseven 19.06.2019, 17:17:43
Czy Xampp/Lampp 7.0.8 to ostatnia wersja 32 bitowa tego serwera?
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)