Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

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:



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
  1. <?php
  2.  
  3. function add(int $a, int $b): float {
  4. return $a + $b;
  5. }
  6.  
  7. http://www.php.net/var_dump(add(1,2)); //float(3)
  8.  


  1. <?php
  2.  
  3. function add(int $a, int $b): int {
  4. return (string) $a + $b;
  5. }
  6.  
  7. http://www.php.net/var_dump(add(1,2)); //int(3)
  8.  

  1. <?php
  2.  
  3. function add(int $a, int $b): string {
  4. return (string) $a + $b;
  5. }
  6.  
  7. http://www.php.net/var_dump(add(1,2)); //string(1) "3"
  8.  


Ale:
  1. <?php
  2.  
  3. function add(int $a, int $b): http://www.php.net/array {
  4. return (http://www.php.net/array) $a + $b;
  5. }
  6.  
  7. 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
  1. $i = 1;
  2. http://www.php.net/var_dump(new class($i) {
  3. public function __construct($i) {
  4. $this->i = $i;
  5. }
  6. }); //object(class@anonymous)#1 (1) { ["i"]=> int(1) }

null coalescing operator (? ?)
  1. $x = NULL;
  2. $y = NULL;
  3. $z = 3;
  4. http://www.php.net/var_dump($x questionmark.gif $y questionmark.gif $z); //int(3)
  5.  
  6. http://www.php.net/var_dump(2 questionmark.gif 3 ? 4 : 5); //int(4)
  7.  
  8. http://www.php.net/var_dump(0 || 2 questionmark.gif 3 ? 4 : 5); //int(4)

Combined comparison Operator (<=>)
  1. http://www.php.net/echo 1 <=> 1; // 0
  2. http://www.php.net/echo 1 <=> 2; // -1
  3. http://www.php.net/echo 2 <=> 1; // 1
  4.  
  5. http://www.php.net/echo [] <=> []; // 0
  6. http://www.php.net/echo [1, 2, 3] <=> [1, 2, 3]; // 0
  7. http://www.php.net/echo [1, 2, 3] <=> []; // wdg dokumentacji oczekiwane 1 a otrzymujemy 3
  8. http://www.php.net/echo [1, 2, 3] <=> [1, 2, 1]; // 1
  9. 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: com 24.06.2015, 22:42:24

nie jest obowiązkowy, by zachować kompatybilność wstecz w miarę możliwości, ale nie wymaga dodatkowe aktywowania, jak było w propozycji, co ma swoje plusy i minusy bo czasem może powstać spaghetti jak to bd mieszać wink.gif

Swoją drogą trzeba bd zaktualizować skrypt forum by nie zamieniał null coalescing operator na emotikon, bo zapomniałem wyłączyć emotikony a nie da się edytować wink.gif

https://github.com/tpunt/PHP7-Reference

Wiecej w temacie biggrin.gif

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 tongue.gif

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 smile.gif

Jeszcze tylko brakuje daty wydania docelowego php 7.1 smile.gif

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:

  1. $limit = 20;
  2.  
  3. $A = [2.7, 3.2, 2.7];
  4. $B = [3.238, 2.788, 3.007];
  5.  
  6. for($i=0; $i<$limit; $i++)
  7. for($k=0; $k<$limit; $k++)
  8. for($j=0; $j<$limit; $j++)
  9.  
  10. for($x=0; $x<$limit; $x++)
  11. for($y=0; $y<$limit; $y++)
  12. for($z=0; $z<$limit; $z++) {
  13. $b = $i+$k+$j+$x+$y+$z;
  14.  
  15. $w = [];
  16. $w[] = $i*$A[0] + $x*$B[0];
  17. $w[] = $k*$A[1] + $y*$B[1];
  18. $w[] = $j*$A[2] + $z*$B[2];
  19.  
  20. if (http://www.php.net/min($w)>$b) {
  21. http://www.php.net/echo $i.' '.$k.' '.$j.' '.$x.' '.$y.' '.$z.' = '.$b.', w = '.http://www.php.net/min($w).PHP_EOL;
  22. if (http://www.php.net/min($w)-$b>$win) {
  23. $win = http://www.php.net/min($w)-$b;
  24. $s = [$i,$k,$j,$x,$y,$z];
  25. }
  26. }
  27. }
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ę smile.gif

Napisany przez: com 3.12.2015, 23:04:48

03 Dec 2015
PHP 7.0.0 Released

biggrin.gif

https://secure.php.net/archive/2015.php#id2015-12-03-1

Napisany przez: redeemer 3.12.2015, 23:06:18

W końcu guitar.gif

Napisany przez: Forti 4.12.2015, 09:45:41

W końcu! smile.gif Teraz migrować smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)