aramirez.es

Alberto Ramírez Website


2 de diciembre de 2010

Standard PHP Library (SPL)

0 comentarios >>

Hace pocos días, hablando con 2 cracks de PHP me preguntaban si conocía SPL, Standard PHP Library. En primera instancia me quedé pensando y dije que no. Pasadas un par de horas me puse a buscar información acerca de SPL y llegué a la documentación de php.net. Tras una rápida ojeada de los componentes que forman parte de esta librería me di cuenta de que indirectamente conocía esta librería y quizá a ti te pase lo mismo.

Me explico, seguro que conoces las clases DirectoryIterator, IteratorIterator, RecursiveDirectoryIterator o las interfaces Countable o RecursiveIterator. Pues bien, estas clases forman parte del componente Iterators e Interfaces de SPL.

Standard PHP Library (SPL) es una librería PHP que está compuesta por los siguientes componentes:

  1. Estructuras de datos: es un listado de clases contenedores en forma de pilas, colas, listas doblemente encadenadas, colas con prioridad, etc. Forman parte de este componente las clases: SplDoublyLinkedList, SplStack, SplQueue, SplHeap, SplMaxHeap, SplMinHeap,SplPriorityQueue, SplFixedArray y SplObjectStorage.
  2. Iteradores: conjunto de clases que permiten iterar por elementos dados. Forman parte de este componente: AppendIterator, ArrayIterator, DirectoryIterator, FilesystemIterator, IteratorIterator, RecursiveArrayIterator, RecursiveArrayIterator, RecursiveDirectoryIterator, RegexIterator entre otras.
  3. Interfaces: incorpora 4 interfaces aplicables a iteradores y clases con número contable de elementos (colecciones): Countable, OuterIterator, RecursiveIterator y SeekableIterator.
  4. Excepciones: también incorpora un listado de clases para manejar excepciones: BadMethodCallException, DomainException, InvalidArgumentException, LengthException, OverflowException, RuntimeException, etc.
  5. Funciones SPL: formado por un listado de funciones con varias finalidades como autoloads, iterators, etc.
  6. Manejo de ficheros: también provee de 3 clases para el manejo de ficheros: SplFileInfo, SplFileObject, SplTempFileObject.
  7. Clases e interfaces varias: ArrayObject, SplObserver (que implementa el patrón de diseño Observer) e interface SplSubject.

Esta extensión de PHP no es nueva, se incorporó parcialmente y por defecto en la versión 5.0.0 de PHP y se aumentó en 5.3, además, en esta última versión SPL no puede ser desactivada. Aun así, quizá aun sea desconocida para muchos programadores PHP.

Por mi parte voy a empaparme por completo de cómo funcionan todos los componentes y espero poder hacer uso de cada uno de ellos cuando los requerimientos me lo pidan :). Cuando estudié "Estructuras de Datos" por la facultad (con Java) vi de gran utilidad las clases que el JDK facilita para el almacenamiento masivo de datos y lo eché de menos en PHP, donde se suele hacer uso exhaustivo del array como contenedor de elementos y no siempre es lo correcto. A partir de ahora habrá que tener en cuenta más a menudo SPL y todas las posibilidades que ofrece.

Documentación oficial de SPL.

SPL-StandardPHPLibrary

Tags: | |


Comentarios


No existen comentarios


Deja tu comentario

zukeidigital 2008