Standard PHP Library

Aus php bar
(Weitergeleitet von SPL)
Wechseln zu: Navigation, Suche

Die Standard PHP Library (SPL) ist eine Sammlung von Interfaces und Klassen zum Lösen von Standardproblemen. Diese ergänzen vorallem die hybride (prozedural und oo) Sprache PHP für `echte' Objektorientierte Programmierung. Beispielsweise ist in PHP ein Array kein Objekt, mithilfe der SPL ist jedoch ein Arrayobjekt durch das ArrayObject schnell realisiert.

SPL ist seit php Version 5.3.0 fester Bestandteil und war bereits schon mit 5.0.0 als Standarderweiterung vorhanden.

Übersicht

SPL

  • Iteratoren
  • Verzeichnisse und Dateien
  • XML
  • Array Overloading (ArrayObject, ArrayIterator, RecursiveArrayIterator)
  • Counting
  • Observer, mögliche Implementierung des Entwurfsmuster Observer (Beobachter)
  • Exceptions
  • Funktionen (z.B: spl_autoload)

Iteratoren

ArrayObject

Arrayiterator, der Iterator erlaubt das Setzen und Modifizieren von Werten, sowohl als auch das Iterieren von Arrays und Objekten. Zum Iterieren mit Arrayzugriff auf Objekte muss man die Interfaces ArrayAccess und IteratorAggregate implementieren.

1 span class="coMULTI">/* {{{ getIterator IteratorAggregate *//* }}} */
2 
3   /* {{{ offsetExists ($offset) ArrayAccess *//* }}} */
4 
5   /* {{{ offsetGet($offset) ArrayAccess *//* }}} */
6 
7   /* {{{ offsetSet($offset) ArrayAccess *//* }}} */
8 
9   /* {{{ offsetUnset($offset) ArrayAccess *//* }}} */


Das ArrayObject verwendet den ArrayIterator in der foreach Schleife:

1 span class="st0">'hello', 'php');
2 $reg->add('apfel', 1);
3 $reg->add('birne'':'"OBJECT (ausgabe mit __toString): ""\n";
4 }
5 
6 // ARRAY ACCESS
7 'hello'] ."\n";
8 // SETZEN VON WERTEN MIT ARRAY ACCESS 
9 $reg['hello'] = 'SPL!';


Verzeichnisse und Dateien

RecursiveDirectoryIterator

Verzeichnisse und Dateien iterieren (im Beispiel vom aktuellen Verzeichniss) mit dem RecursiveDirectoryIterator und dem resultierendem SplFileInfo Objekt :

1 span class="st0">'.'// $file ist ein SplFileInfo object 
2 "\n"" |-- ""\n";
3   }
4 }


SPL Funktionen

Autoload

Die Funktion: `spl_autoload_register'

zum Registrieren von weiteren Autoload-Funktionen, z.B. der Methode `bar' der Klasse `Foo' :

1 span class="st0">'Foo::bar');


Registrieren einer bestehender Autoload-Funktionen:

1 span class="st0">'__autoload''__autoload');
2 }


Links