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

La SPL : l'indispensable et mal-aimée bibliothè...

La SPL : l'indispensable et mal-aimée bibliothèque du PHP

The Standard PHP Library (SPL) is a collection of interfaces and classes that are meant to solve common problems.

Voici comment php.net introduit la SPL, avec un texte monoligne qui brille par son absence d'information utile : pas étonnant que cette bibliothèque ne soit boudée et ignorée par beaucoup de développeurs PHP.

Réparons en partie le préjudice voulez-vous ? Et voyons en quoi tout ça peut bien nous servir dans notre quotidien.

Avatar for Lucas CORBEAUX

Lucas CORBEAUX

October 08, 2013
Tweet

Other Decks in Programming

Transcript

  1. Présenta.on •  Définir  la  SPL   •  Parcourir  de  la

     SPL   •  Troller  la  documenta@on  officielle  
  2. Présenta.on •  Définir  la  SPL   •  Parcourir  de  la

     SPL   •  Troller  la  documenta@on  officielle     •  Apprendre  à  détourer  un  éléphant  
  3. Défini.on  de  la  SPL «  La  bibliothèque  standard  PHP  (SPL)

     est  une  collec8on   d'interfaces  et  de  classes  qui  ont  été  créées  afin  de   résoudre  les  problèmes  communs.    »   Un  peu  léger,  non  ?  
  4. Les  interfaces 6  interfaces  SPL  :  Countable,  OuterIterator,   RecursiveIterator,

     SeekableIterator,  SplObserver,   SplSubject   Les  autres  interfaces  (Traversable,  Iterator…)  ne  font  pas   par@e  de  la  SPL.  
  5. Les  itérateurs •  Les  itérateurs  «  classiques  »  :  DirectoryIterator,

      ArrayIterator.   •  Les  décorateurs  :  FilterIterator,  LimitIterator…  
  6. Les  itérateurs •  Les  itérateurs  «  classiques  »  :  DirectoryIterator,

      ArrayIterator.   •  Les  décorateurs  :  FilterIterator,  LimitIterator…   •  IteratorIterator  :  «  wrap  »  un  Traversable  en  Iterator.  
  7. Les  itérateurs •  Les  itérateurs  «  classiques  »  :  DirectoryIterator,

      ArrayIterator.   •  Les  décorateurs  :  FilterIterator,  LimitIterator…   •  IteratorIterator  :  «  wrap  »  un  Traversable  en  Iterator.   •  Les  itérateurs  récursifs  :  RecursiveDirectoryIterator…  
  8. Les  structures  de  données Quatre  types  :   •  Les

     listes  doublement  chaînées.   •  Les  «  Heap  »    (arbres  binaires  balancés).  
  9. Les  structures  de  données Quatre  types  :   •  Les

     listes  doublement  chaînées.   •  Les  «  Heap  »    (arbres  binaires  balancés).   •  SplFixedArray  et  SplObjectStorage.  
  10. Les  excep.ons 13  excep@ons  disponibles,  divisée  en  2  branches  :

      •  LogicExcep@on  :  le  problème  provient  de  la  logique  du   code  (règle  mé@er…).  
  11. Les  excep.ons 13  excep@ons  disponibles,  divisée  en  2  branches  :

      •  LogicExcep@on  :  le  problème  provient  de  la  logique  du   code  (règle  mé@er…).   •  Run@meExcep@on  :  problème  lié  au  contexte   d’exécu@on.  
  12. Divers •  Standardisa@on  de  l’implémenta@on  du  paaern   Observer  :

     interfaces  SplObserver  et  SplSubject.   •  ArrayObject  :  implémenta@on  concrète  d’un  tableau   sous  forme  d’objet.  
  13. Divers •  Standardisa@on  de  l’implémenta@on  du  paaern   Observer  :

     interfaces  SplObserver  et  SplSubject.   •  ArrayObject  :  implémenta@on  concrète  d’un  tableau   sous  forme  d’objet.   •  De  nombreuses  fonc@ons  :  autoload,  informa@ons  sur   les  objets,  manipula@on  d’iterateurs.  
  14. Divers •  Standardisa@on  de  l’implémenta@on  du  paaern   Observer  :

     interfaces  SplObserver  et  SplSubject.   •  ArrayObject  :  implémenta@on  concrète  d’un  tableau   sous  forme  d’objet.   •  De  nombreuses  fonc@ons  :  autoload,  informa@ons  sur   les  objets,  manipula@on  d’iterateurs.   •  3  classes  pour  la  manipula@on  de  fichiers  :  SplFileInfo,   SplFileObject,  SplTempFileObject.  
  15. En  conclusion La  SPL  permet  :   •  De  standardiser

     des  besoins  communs.   •  De  répondre  avec  plus  d’élégance  à  des   probléma@ques  complexes.  
  16. En  conclusion La  SPL  permet  :   •  De  standardiser

     des  besoins  communs.   •  De  répondre  avec  plus  d’élégance  à  des   probléma@ques  complexes.   •  D’apporter  des  structures  de  données  plus   performantes  pour  les  besoins  spécifiques.  
  17. Liens  u.les •  (Livre)  Mastering  the  SPL  Library   hap://www.phparch.com/books/mastering-­‐the-­‐spl-­‐

    library/   •  (tuto  developpez.com)  Les  excep@ons  de  la  SPL   hap://itanea.developpez.com/tutoriels/php/ comment-­‐u@liser-­‐excep@ons-­‐spl-­‐pour-­‐meilleure-­‐ ges@on-­‐erreurs/   •  (pour  rire  un  peu)  La  documenta@on  officielle   hap://www.php.net/manual/en/intro.spl.php   hap://www.php.net/~helly/php/ext/spl/index.html