Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Les nouveautés PHP : les trucs cools depuis la 5.4

Les nouveautés PHP : les trucs cools depuis la 5.4

Avatar for Antoine Descamps

Antoine Descamps

November 07, 2014

Other Decks in Programming

Transcript

  1. UTILISATION DES DIFFÉRENTES VERSIONS Version Utilisation Sortie Fin de vie

    5.2 21.9% 02/11/2006 06/01/2011 5.3 47.4% 30/06/2009 14/08/2014 5.4 24.5% 01/03/2012 5.5 4.6% 20/06/2013 5.6 0.2% 28/08/2014 Source : W3Techs
  2. PHP 5.4 : BRINGING THE AWESOMENESS Syntaxe courte des tableaux

    Accès aux index de tableaux en sortie de fonctions Traits Accès aux attributs d'un objet dès l'instanciation Serveur embarqué Meilleurs perfs
  3. SYNTAXE COURTE DES TABLEAUX $ a = [ 1 ,

    2 , 3 , 4 ] ; $ a = [ ' o n e ' = > 1 , ' t w o ' = > 2 , ' t h r e e ' = > 3 , ' f o u r ' = > 4 ] ;
  4. ACCÈS AUX INDEX DE TABLEAUX EN SORTIE DE FONCTIONS $

    f o o = $ t h i s - > g e t M i g h t y T a b l e ( ) ; $ f o o = $ f o o [ 0 ] ; $ f o o = $ t h i s - > g e t M i g h t y T a b l e ( ) [ 0 ] ;
  5. TRAITS T r a i t s L o g

    g e r { p u b l i c f u n c t i o n l o g ( $ d a t a ) { e c h o " L o g g e d : $ d a t a " ; } } c l a s s C h u c k N o r r i s { u s e L o g g e r ; p u b l i c f u n c t i o n k i l l ( ) { $ t h i s - > l o g ( ' C h u c k N o r r i s k i l l e d a g a i n ! ' ) ; d i e ( ) ; } }
  6. ACCÈS AUX ATTRIBUTS D'UN OBJET DÈS L'INSTANCIATION $ f o

    o = n e w F o o ; $ f o o - > b a r ( ) ; n e w F o o - > b a r ( ) ;
  7. SERVEUR EMBARQUÉ $ > p h p - S l

    o c a l h o s t : 8 0 0 0
  8. GÉNÉRATEURS f u n c t i o n g

    e n _ o n e _ t o _ t h r e e ( ) { f o r ( $ i = 1 ; $ i < = 3 ; $ i + + ) { y i e l d $ i ; } } $ g e n e r a t o r = g e n _ o n e _ t o _ t h r e e ( ) ; f o r e a c h ( $ g e n e r a t o r a s $ v a l u e ) { e c h o " $ v a l u e \ n " ; }
  9. FINALLY t r y { / / T r y

    t o d o s t u f f } c a t c h ( E x c e p t i o n $ e ) { / / C a t c h e x c e p t i o n i f i t f a i l s } f i n a l l y { / / A l w a y s d o t h a t }
  10. EMPTY() $ m y V a r = $ t

    h i s - > g e t ( ' m y V a r ' ) ; i f ( ! e m p t y ( $ m y V a r ) ) { e c h o $ m y V a r ; } i f ( ! e m p t y ( $ t h i s - > g e t ( ' m y V a r ' ) ) ) { e c h o $ m y V a r ; }
  11. OPCACHE Cache le code compilé de PHP Zend Optimizer+ Nombre

    de requêtes / secondes sur Joomla 3.1.1 z e n d _ e x t e n s i o n = / f u l l / p a t h / t o / o p c a c h e . s o
  12. PHP 5.6 Expressions de constante scalaire Liste d'arguments variables pour

    une fonction Décompression des arguments Exponentiation Débogueur intégré
  13. EXPRESSIONS DE CONSTANTE SCALAIRE c o n s t O

    N E = 1 ; c o n s t T W O = O N E * 2 ; c l a s s C { c o n s t T H R E E = T W O + 1 ; c o n s t O N E _ T H I R D = O N E / s e l f : : T H R E E ; c o n s t S E N T E N C E = ' T h e v a l u e o f T H R E E i s ' . s e l f : : T H R E E ; p u b l i c f u n c t i o n f ( $ a = O N E + s e l f : : T H R E E ) { r e t u r n $ a ; } }
  14. LISTE D'ARGUMENTS VARIABLES POUR UNE FONCTION f u n c

    t i o n f o o ( . . . $ a r g s ) { e c h o " N u m b e r o f a r g u m e n t s : " . c o u n t ( $ a r g s ) ; f o r e a c h ( $ a r g s a s $ a r g ) { e c h o " $ a r g < b r > " ; } } f o o ( ' f o o ' , ' b a r ' ) ; f o o ( ' f o o ' , ' b a r ' , ' f o o b a r ' ) ;
  15. DÉCOMPRESSION DES ARGUMENTS f u n c t i o

    n f o o ( $ a r g 1 , $ a r g 2 , $ a r g 3 ) { / / s t u f f } $ a r g s = [ ' f o o ' , ' b a r ' , ' f o o b a r ' ] ; f o o ( . . . $ a r g s ) ;
  16. EXPONENTIATION e c h o p o w ( 2

    , 3 ) ; / / 8 e c h o 2 * * 3 ; / / 8 $ a = 2 ; $ a * * = 3 ; e c h o $ a ; / / 8 e c h o 2 * * 2 * * 4 ; / / 6 5 5 3 6 e t n o n p a s 2 5 6
  17. DÉBOGUEUR INTÉGRÉ PHPDBG Debug en lignes de commande p h

    p d b g > b r e a k [ f i l e ] t e s t . p h p : 1 p h p d b g > b r e a k [ f u n c ] m y F u n c t i o n p h p d b g > b r e a k [ m e t h o d ] \ A C M E \ F o o : : b a r
  18. PHPNG Ré écriture du coeur de PHP Amélioration des performances

    Aucune nouvelle feature 100% compatible avec le comportement existant de PHP
  19. ISSET TERNARY Null Coalesce Operator $ u s e r

    n a m e = i s s e t ( $ _ G E T [ ' u s e r ' ] ) ? $ _ G E T [ ' u s e r ' ] : ' n o b o d y ' ; $ u s e r n a m e = $ _ G E T [ ' u s e r ' ] ? ? ' n o b o d y ' ;
  20. SE TENIR INFORMER PHP 5 changelog PHP: rfc Mailing list

    internals Pascal Martin : internals@php