PHP 7 10 Dingen die u moet weten
Bent u een webontwikkelaar of een website-eigenaar? Draaien uw sites op PHP-enabled CMS zoals WordPress, Drupal, Joomla of Magento? Dan heb ik goed nieuws voor je: de feature-complete beta van de nieuwe PHP 7 is onlangs vrijgegeven. De 7.0.0 major release bevat zoveel coole functies dat we besloten hebben er een hele post aan te wijden. Maar eerst moeten we een paar herinneringen invoegen.
Merk op dat PHP 7 zich nog in de ontwikkelfase bevindt gebruik het niet tijdens de productie tot november wanneer de uiteindelijke versie zal uitkomen. Als u - als toekomstige gebruiker - uw deel wilt nemen aan het ontwikkelingsproces, kunt u helpen met het downloaden van de nieuwste bètaversie, ermee spelen in uw testomgeving en fouten rapporteren die u tijdens het testen hebt gevonden. Als u wilt weten wanneer de volgende bèta uitkomt, vindt u hier de planning van het project.
Laten we daarmee PHP 7 uit de weg gaan.
1. PHP 7 van de naam (niet 6)
De huidige stabiele release gebruikt het versienummer PHP 5.6. Na enig geschil besloot het ontwikkelingsteam dat ze de PHP 6-naam voor de volgende grote release zouden weglaten. PHP 6 bestond al in het verleden als een experimenteel project, maar bereikte nooit de productiefase.
Om te voorkomen dat gebruikers de vorige poging combineren met de nieuwste ontwikkeling, zal de nieuwe grote release worden uitgevoerd onder de naam PHP 7.
2. De gloednieuwe Zend-engine van het merk
De Zend-engine voedt PHP sinds 1999, toen het werd geïntroduceerd met de toen nieuwe versie van PHP 4. Zend - niet te verwarren met het Zend Framework - is een open-source executie-engine geschreven in C die de PHP-taal interpreteert. De huidige PHP 5.X-serie gebruiken Zend Engine II dat verbeterde de functionaliteit van de initiële motor en voegt een toe uitbreidbaar objectmodel en een aanzienlijke prestatieverbetering naar de taal.
PHP 7 ontvangt een gloednieuwe versie van de motor die valt onder de codenaam PHP # NG (Next Generation).
3. Twice The Speed
Het gemakkelijkst herkenbare voordeel van de nieuwe PHPNG-engine is de aanzienlijke prestatieverbetering. Het ontwikkelingsteam van PHPNG refactored de Zend Engine en opmerkelijk geoptimaliseerd geheugengebruik.
De resultaten? U kunt de prestatiebenchmarks bekijken die door het Zend Performance Team hieronder worden geboden. Door PHP 7 niet alleen te gebruiken je code zal sneller worden uitgevoerd maar je zal ook hebben minder servers nodig om hetzelfde aantal gebruikers te bedienen.
4. Vergemakkelijkt de afhandeling van fouten
Op zijn zachtst gezegd, het verwerken van fatale en catchable fatale fouten was nooit een gemakkelijke taak voor PHP-coders. De nieuwe Engine-uitzonderingen zal u toestaan om dit soort fouten te vervangen door uitzonderingen. Als de uitzondering niet wordt opgevangen, blijft PHP dezelfde fatale fouten terugzenden als in de huidige 5.X-serie.
De nieuwe \ EngineException objecten breiden het \Uitzondering Basisklasse. Dit zorgt voor achterwaartse compatibiliteit en resulteert in twee verschillende soorten uitzonderingen bij het afhandelen van fouten: traditioneel en motor uitzonderingen.
Om programmeurs in staat te stellen beide te vangen introduceert PHP 7 een nieuw gedeelde bovenliggende klasse onder de naam van \ BaseException.
5. 64-bit ondersteuning voor Windows-systemen
PHP is een prominent lid van de LAMP-stack, wat betekent dat de native omgeving Linux is - maar het is ook mogelijk om het op een Windows-systeem uit te voeren. De 5.X-serie biedt nog geen ondersteuning voor 64-bits integer of grote bestanden, dus tot nu toe zijn x64-builds overwogen experimenteel.
PHP 7 zal dit als het veranderen introduceert consistente 64-bits ondersteuning Dit betekent dat zowel native 64-bit-getallen als grote bestanden worden ondersteund, zodat u de taal op uw 64-bits Windows-systeem vol vertrouwen kunt gebruiken in de toekomst.
6. Nieuwe ruimteschip en niet-samenvoegende operators
De Ruimteschip operator wordt uitgevoerd onder de officiële naam van operator voor gecombineerde vergelijking. De notatie van de nieuwe operator ziet er als volgt uit: <=>
(een beetje als een vereenvoudigd ruimteschip, als je je het goed inbeeldt).
De ruimteschipoperator retourneert 0 als beide operanden gelijk zijn, 1 als de linkerkant groter is en -1 als de rechter groter is. Het wordt ook a genoemd driewegvergelijkingsoperator, en het bestaat al in andere populaire programmeertalen zoals Perl en Ruby.
De operator Null Coalescing wordt aangeduid met twee vraagtekens (??). U kunt het gebruiken als u wilt controleren of iets bestaat en een standaardwaarde retourneert, voor het geval dat niet het geval is. De coalescentieoperator retourneert het resultaat van de eerste operand als deze bestaat en is niet null, en de tweede operand in andere gevallen.
Hier leest u hoe de nieuwe operator de tijd die wordt besteed aan basisverklaringen verkort:
7. Maakt nauwkeurige declaraties van typen mogelijk
Heeft u ooit onbedoelde retourwaarden willen voorkomen door het retourneertype van een functie te declareren? Welnu, de nieuwe PHP 7 stelt ontwikkelaars in staat om de kwaliteit van hun code te verbeteren met behulp van verklaringen van het terugstuurtype.
De onderstaande afbeelding toont een zeer eenvoudige use case waarbij de foo () functie moet een array retourneren. Bekijk hier meer gecompliceerde voorbeelden.
Om de functie nog verder te verbeteren, introduceert PHP 7 4 nieuwe typeaangiften voor scalaire typen: int, float, string en bool. Met de nieuwe scalaire typen kunnen ontwikkelaars aangeven dat ze verwachten dat gehele getallen, drijvers, reeksen of booleans worden geretourneerd. De nieuwe scalaire typen geïntroduceerd door PHP 7 worden ook ondersteund door het argument Type Hints waarmee ontwikkelaars het type parameters kunnen forceren sinds de PHP 5.X-serie.
8. Voegt anonieme lessen toe
Met PHP 7 kun je anonieme klassen gebruiken, al een gevestigde praktijk in andere objectgeoriënteerde talen zoals C # en Java. Een anonieme klasse is een klasse zonder naam. Het object dat wordt geconverteerd heeft dezelfde functionaliteit als een object van een benoemde klasse.
De syntaxis is dezelfde als die we gewend zijn in traditionele PHP-klassen, alleen de naam ontbreekt. Als anonieme klassen goed worden gebruikt, kunnen ze dat versnellen coderen evenals uitvoeringstijd. Anonieme klassen zijn uitstekend als een klasse tijdens de uitvoering slechts één keer wordt gebruikt en als een klasse niet hoeft te worden gedocumenteerd.
9. Vergemakkelijkt invoer vanuit dezelfde namespace
De nieuwe Group Use Declarations-functie zal een goede naam zijn voor degenen onder u die dat willen importeer veel klassen uit dezelfde naamruimte. De nieuwe syntaxis vermindert de breedsprakigheid, maakt uw code opgeruimd en gemakkelijker voor de ogen, en bespaart u veel tijd bij het typen.
Het zal ook eenvoudiger zijn om codes te lezen en te debuggen, aangezien verklaringen voor groepsgebruik u helpen bij het identificeren van de importen die tot dezelfde module behoren.
10. Reinigt de ruimte
Het doel van PHP 7 was om ruimte vrij te maken om verbeteringen mogelijk te maken, dus was het nodig om af te komen van veel verouderde functionaliteiten en oude en niet-ondersteunde Server API's en uitbreidingen. Als u wilt controleren welke deze in detail zijn, klik dan hier en hier.
Alle verwijderde items zijn een tijdje in PHP 5 gedeprecieerd, dus je hebt ze hoogstwaarschijnlijk lange tijd niet gebruikt. Houd er echter rekening mee als u een oude app heeft draait op oudere PHP-versies de nieuwe PHP 7 kan mogelijk de code doorbreken.