Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 48 reacties
Bron: PHP, submitter: beertie1

PHP logo (60 pix)Versie 7.0.0 van PHP is uitgebracht. PHP is een een recursief acroniem en staat voor PHP: Hypertext Preprocessor. Het wordt voornamelijk gebruikt om op webservers dynamische webpagina's te creëren, vaak in combinatie met databaseprogramma's.  De complete lijst met veranderingen is op deze pagina in te zien, dit zijn in het kort de belangrijkste:

PHP 7.0.0 Released

PHP 7.0.0 comes with a new version of the Zend Engine, numerous improvements and new features such as
  • Improved performance: PHP 7 is up to twice as fast as PHP 5.6
  • Significantly reduced memory usage
  • Abstract Syntax Tree
  • Consistent 64-bit support
  • Improved Exception hierarchy
  • Many fatal errors converted to Exceptions
  • Secure random number generator
  • Removed old and unsupported SAPIs and extensions
  • The null coalescing operator (??)
  • Return and Scalar Type Declarations
  • Anonymous Classes
  • Zero cost asserts

PHP screenshot (620 pix)

Versienummer:7.0.0
Releasestatus:Final
Besturingssystemen:Scripttaal, Windows 7, Linux, BSD, Windows XP, macOS, Solaris, UNIX, Windows Server 2003, Windows Vista, Windows Server 2008, Windows Server 2012, Windows 8, Windows 10
Website:PHP
Download:http://www.php.net/downloads.php
Licentietype:Voorwaarden (GNU/BSD/etc.)
Moderatie-faq Wijzig weergave

Reacties (48)

Vanochtend op een testomgeving ge´nstalleerd met een WordPress site van een klant er op. Grote site, veel custom code en 20.000 producten. Op diverse momenten wordt er met PHP een sync gedaan tussen diverse producten en met PHP diverse data vergeleken. Ik durf wel te zeggen dat we ongeveer 50% winst meten in 'execution time'. Is PHP7 als PHP-FPM in een LEMP stack. Eerst getest met PHP 5.6, daarna PHP7.

[Reactie gewijzigd door Nielsvr op 4 december 2015 11:42]

Apache of IIS?

Ik draai ze namelijk op IIS met FastCGI en wil die performance winst wel eens zien :)
LEMP stack. De E is Nginx ;)
Als je toch al Nginx draait is het leuk om ook HHVM te gebruiken (van Facebook). Een van de redenen dat PHP 7 zo'n nadruk op performance legt is dat HHVM rondjes fietst om de native PHP interpreter.
Klopt. Al zijn de meeste benchmarks van PHP 7.0 VS HHVM nagenoeg gelijk :). En HHVM is nog steeds gebaseerd op PHP 5.6, right?
Dat geloof ik direct, maar HHVM was er natuurlijk veel eerder dan PHP 7 en is deels de reden dat PHP 7 zo zijn best doet op gebied van performance :)

Klopt dat HHVM op 5.6 gebaseerd is, maar dat zal ongetwijfeld snel bijgewerkt worden.
Thanks! Dat ziet er wel goed uit eigenlijk ja!
Het zal erg afhankelijk zijn, maar met IIS als je daar de PHP Manager bij hebt (Via de Web Platform installer, als je die niet hebt, www.iis.net) kun je 7.0 naast 5.6 zetten en het testen. Let wel dat je C++ Redistributable for Visual Studio 2015 nodig hebt.
Ja ik gebruik WPI zo'n beetje overal voor - en die C++ redist zit zo'n beetje overal standaard bij tegenwoordig :')

Ik heb nu een 2e Fast CGI gemaakt naar een andere php.exe bij wijze van test.

Thanks!
Is PHP7 backwards compatible met 5.6? (neem aan dat dat de vorige versie was en dat er nooit een 6 is geweest)
PHP 6 is inderdaad overgeslagen.
Wat betreft de compatability: ja en nee. Voor een heel groot gedeelte zul je geen problemen ervaren, maar er zijn wel onderdelen geschrapt, bijvoorbeeld hetgeen in deze post staat: "Removed old and unsupported SAPIs and extensions"

Voor meer informatie kun je het beste even kijken op:
http://php.net/manual/en/migration70.incompatible.php
Het is nog makkelijker te testen.
Zet onder 5.6 aan dat je deprecated waarschuwingen moet zien.
Alles waar je dan een melding van krijgt => gone in 7
Die vraag kwam oo bij mij op. Dus even op de php site gekeken:
http://php.net/manual/en/migration70.php

Houd er rekening mee dat als je code nog php4 classes bevat je die mogelijk om moet zetten. Ook zijn er functies die andere of meer parameters vereisen.
Ik zou zeggen, lees de site en kijk of het op jouw code van toepassing is.
Grootste issue dat ik voorzie is dat de mysql library is verwijderd. mysql_connect etc werken dus niet meer. Je moet nu perse MySQLi of PDO gebruiken.

Nou is PDO om veel redenen mooier, maarja.. voor legacy code gaat PHP 7 dus vermoeddelijk niet zomaar werken
Nee, maar je krijgt met 5.3 en hoger al waarschuwingen dat mysql_ eruit gaat.
Zo'n code draaien resulteert in deprecated meldingen.
Omzetten van mysql naar mysqli is op zich niet heel spannend, natuurlijk - ik heb het nog niet getest, maar het kan zelfs zijn dat je zelf een nieuwe functie mysql_connect kunt maken die vervolgens de mysqli versie aanroept, etcetera.
Dat lijkt mij het minste werk ja !
Dat is leuk als je zelf code kunt kloppen,maar het gros van de gebruikers van PHP gebruikt PHP omdat ze ergens een stuk software hebben gedownload. Dan is dit dus wel degelijk een issue.

Overigens, je kunt MySQL via PECL weer installeren in PHP 7. Maar ik denk dat je dan het performance voordeel weer wat teniet doet. Het zal namelijk de library zijn uit de PHP 5 tree, die dus niet geoptimaliseerd is.
In vele gevallen wel, maar er zijn enkele backward incompatible changes. Hier meer info:

Migration guide: http://php.net/manual/en/migration70.php
Incompatible changes: http://php.net/manual/en/migration70.incompatible.php

PHP6 is inderdaad nooit gereleased.
PHP6 is nooit uit de concept/ontwikkelings fase gekomen. Delen van PHP6 hebben uiteindelijk hun weg gevonden in 5.x, andere delen zitten in 7 verwerkt en sommige zijn gewoon helemaal terug verdwenen.

Omdat er wel documentatie rond bestaat en omdat er experimentele builds zijn met versienummering voor PHP6 is beslist om deze versie 7 te noemen om elke mogelijke verwarring te vermijden.
Zolang je in PHP 5.* geen deprecated meuk gebruikt hebt, wat in 7.0 gescrapt is is al jaren geleden (indirect) aangekondigd.
Op zich is dat ook niet zo spannend. Bij diverse hosting bedrijven (waaronder Antagonist) kun je per domein de PHP versie instellen. Het is maar net wat de gebruiker nodig heeft. Bij simpele sites zal PHP 5.5 - 5.6 voldoende zijn, terwijl je bij complexere sites de beter presterende PHP 7 kunt selecteren.
Is het mogelijk om 1 server zowel php7 als php5.6 te draaien?
En dan via vhost config bv te specifieren welke php versie gebruikt moet worden?
Dat kan, maar dan moet je geen mod_php gebruiken. Met behulp van PHP-FPM of FastCGI kan het wel.
Ja, maar niet op een simpele manier. De PHP7-packages in de meeste repositories gaan niet naast de PHP5-packages kunnen leven. Als je zelf PHP gaat binnenhalen en met opts werkt zal dat wel lukken, maar je laat ze best gewoon apart staan als je je serverbeheer zelf doet.
Ja hoor, maar het kan wel een uitdaging zijn om dit goed werkende te krijgen.

Manueel compilen is een must. Ook bij voorkeur het gebruik van php-fpm in plaats van de standaard apache module zal de nodige frustraties vermijden.

Ik draai versie 5.3, 5,4, 5.5, 5.6 en nu ook 7 naast elkaar.
Je kunt ook "virtualenv" gebruiken en dan een box aanmaken voor php 7 en een voor een oudere versie. Je hoeft dan alleenje webserver (apache bv of nginx) door te verwijzen naar de juiste container.
Ik zie niet voor welk OS dit is, vermoed Linux. Mocht dit Windows zijn, onder IIS > PHP Manager kan je de nieuwe ergens uitgepakte PHP versie toevoegen en dan kan je onderling per website tussen de versies switchen.
Hou er wel rekening mee dat PHP7 zo'n 100 test failures heeft waarvan eentje zelfs is aangemerkt als "Common Vulnerabilities and Exposures (CVE)" !
Gelukkig is dat minder dan 5.6, die heeft er 114 tov 102 ;)
PHP 5.6 heeft er 114 though. Weet niet er een CVE tussen zit.

http://gcov.php.net/viewe...ersion=PHP_5_6&func=tests
Ik ben benieuwd hoe lang het gaat duren eer PHP 7.0 verschijnt in de Debian (testing) en Ubuntu repositories. :)
https://www.dotdeb.org/

of die repro gebruik gebruiken.... kan je gewoon de laatste stabiele debian gebruiken en toch php via een repro ge-update zien & houden...
Dotdeb.org ken ik, maar gebruik ik liever niet. In het verleden wel eens gebruikt, wat voor PHP en extensions uiteindelijk problemen opleverde, ik blijf dus liever bij de officiele repo's.
Voor ubuntu gok ik dat het niet 16.4 gaat worden. 15.10 is al uit en 16.4 is een lts, dus geen schokkende upgrades. 16.10 lijkt mij de eerste.
Zal HHVM ook een update krijgen met de wijzigingen van PHP 7.0? Weet iemand hoe dit zit / wat de roadmap is?

HHVM is en blijft natuurlijk ook een mooi alternatief voor PHP. :)
Heeft iemand dit getest met MyBB 1.6 of SMF 2.0.11?

Oh SMF werkt niet bron; http://www.simplemachines.../index.php?topic=540808.0

[Reactie gewijzigd door Dennisb1 op 4 december 2015 12:41]

MyBB 1.6 denk ik niet dat die zal werken. Overigens is zelfs de support vanuit MyBB op versie 1.6 ook verdwenen, dus ik zou upgraden naar 1.8.6 zo uit mijn hoofd.
Upgraden is niet altijd een oplossing helaas vooral als je afhankelijk bent van plugins om ontbrekende functionaliteiten toe te voegen. Het is jammer dat de support zo snel verdwenen is op MyBB 1.6 maar dat ter zijde.
In alle eerlijkheid: dat zat al lang in PHP, dat is nu niet pas nieuw in versie 7 of zo he :)
Het werd wel tijd dat PHP wat minder scheutig met errors was, en wat consequenter met exceptions. Foutafhandeling liet wat te wensen over wat dat betreft. Dus een goede ontwikkeling. PHP errors waren wel op te vangen en af te handelen maar werken met exceptions maakt het een stuk gestructureerder.
Exceptions zijn niet nieuw in 7.0...
Een aantal zaken die eerst aan ander soort foutmelding gaven zijn nu omgezet naar Exceptions zodat we dat als programmeur netjes kunnen afvangen in onze applicatie.
Is er ook een lijst van de meest gebruikte meldingen die nu een Exception werpen?

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True