Zend_CodeGenerator Referenz
Abstrakte Klassen und Interfaces
Zend_CodeGenerator_Abstract
Die Basisklasse von der alle CodeGenerator Klassen abgeleitet sind und die
minimal notwendige Funktionalität anbietet. Dessen API ist wie folgt:
Der Constructor ruft zuerst _init() auf (welches für eine konkrete
erweiterte Klasse für die Implementation leer gelassen ist), übergibt dann
den $options Parameter an setOptions() und ruft
zuletzt _prepare() auf (welches auch von der erweiternden Klasse
implementiert werden muß).
Wie die meisten Klassen im Zend Framework, vergleicht setOptions()
den Schlüssel einer Option mit den in der Klasse existierenden Settern, und
übergibt den Wert an die gefundene Methode.
__toString() ist als final markiert, und leitet auf
generate() weiter.
setSourceContent() und getSourceContent() sind dazu
vergesehen entweder den Standardinhalt für den zu erzeugenden Code zu setzen,
oder um gesetzte Inhalte zu ersetzen sobald alle Arbeiten der Erzeugung
beendet wurden.
Zend_CodeGenerator_Php_Abstract
Zend_CodeGenerator_Php_Abstract erweitert
Zend_CodeGenerator_Abstract, und fügt einige Eigenschaften hinzu für
das Verfolgen ob Inhalte geändert wurden sowie der Anzahl an Einrückungen die
vorhanden sein sollten bevor Inhalte erzeugt werden. Die API ist wie folgt:
Zend_CodeGenerator_Php_Member_Abstract
Zend_CodeGenerator_Php_Member_Abstract ist eine Basisklasse für die
Erstellung von Klassen-Member -- Eigenschaften und Methoden -- und bietet
Zugriffs- und Änderungsmethoden für die Ausführung der Sichtbarkeit; ob ein
Member Abstrakt, Statisch, oder Final ist; und der Name des Members. Die API ist
wie folgt:
Konkrete CodeGenerator Klassen
Zend_CodeGenerator_Php_Body
Zend_CodeGenerator_Php_Body ist dazu gedacht generellen prozeduralen
Code in einer Datei einzufügen. Als solches kann man einfach den Inhalt für das
Objekt setzen, und es wird den Inhalt zurückgeben wenn man generate()
aufruft.
Die API der Klasse ist wie folgt:
Zend_CodeGenerator_Php_Class
Zend_CodeGenerator_Php_Class ist für die Erstellung von PHP Klassen
gedacht. Die Basisfunktionalität ist nur die Erstellung der PHP Klasse selbst,
sowie optional den betreffenden PHP DocBlock. Klassen können von anderen Klassen
abgeleitet sein, oder diese Implementieren, und können als Abstrakt markiert sein.
Bei Verwendung von anderen CodeGenerator Klassen kann man auch Klassenkonstanten,
Eigenschaften und Methoden hinzufügen.
Die API ist wie folgt:
Die setProperty() Methode akzeptiert ein Array von Informationen,
die verwendet werden können um eine Instanz von
Zend_CodeGenerator_Php_Property zu erstellen -- oder einfach eine
Instanz von Zend_CodeGenerator_Php_Property selbst. Genauso
akzeptiert setMethod() entweder ein Array von Information für die
Erstellung einer Zend_CodeGenerator_Php_Method Instanz oder eine
konkrete Instanz dieser Klasse.
Beachte das setDocBlock() eine Instanz von
Zend_CodeGenerator_Php_DocBlock erwartet.
Zend_CodeGenerator_Php_Docblock
Zend_CodeGenerator_Php_Docblock kann verwendet werden um PHP DocBlocks
zu erstellen, inklusive aller standardmäßigen DocBlock Features: Kurz- und
Langbeschreibung sowie zusätzliche Tags.
Zusätzliche Tags können durch Verwendung der setTag() und
setTags() Methoden gesetzt werden; diese nehmen entweder ein Array an
das das Tag beschreibt das an den Zend_CodeGenerator_Php_Docblock_Tag
Contructor übergeben wird, oder eine Instanz dieser Klasse selbst.
Die API ist wie folgt:
Zend_CodeGenerator_Php_Docblock_Tag
Zend_CodeGenerator_Php_Docblock_Tag ist für die Erstellung von
eigenen Tags, zum Einfügen in PHP DocBlocks, gedacht. Von Tags wird erwartet
das Sie einen Namen enthalten (Der Teil der unmittelbar dem '@' Symbol folgt)
und eine Beschreibung (alles das dem Tag Namen folgt).
Die API der Klasse ist wie folgt:
Zend_CodeGenerator_Php_DocBlock_Tag_Param
Zend_CodeGenerator_Php_DocBlock_Tag_Param ist eine spezielle Version
von Zend_CodeGenerator_Php_DocBlock_Tag, und repräsentiert einen
Parameter einer Methode. Das TagName ist hierbei bekannt ("param"), aber durch die
Form des Tags, werden zusätzliche Informationen benötigt um Ihn zu erzeugen: den
Namen des Parameter und den Datentyp den dieser repräsentiert.
Die API dieser Klasse ist wie folgt:
Zend_CodeGenerator_Php_DocBlock_Tag_Return
Wie die Variante des Param DocBlock Tags ist
Zend_CodeGenerator_Php_Docblock_Tab_Return eine Variante eines
Tags für die Darstellung eines Rückgabewerts einer Methode. In diesem Fall ist
der Name des Tags bekannt ("return"), aber es benötigt einen Rückgabetyp.
Die API der Klasse ist wie folgt:
Zend_CodeGenerator_Php_File
Zend_CodeGenerator_Php_File wird verwendet um den kompletten Inhalt
einer Datei zu erstellen die PHP Code enthalten wird. Die Datei kann Klassen oder
eigenen PHP Code enthalten, und wenn gewünscht einen Datei-Level Docblock.
Wenn der Datei Klassen hinzugefügt werden, muß man entweder ein Array von
Informationen übergeben die an den Constructor von
Zend_CodeGenerator_Php_Class übergeben werden, oder eine Instanz
dieser Klasse. Genau wie bei den DocBlocks, muß man Informationen für den
Constructor von Zend_CodeGenerator_Php_Docblock übergeben die
verwendet werden, oder eine Instanz dieser Klasse.
Die API der Klasse ist wie folgt:
Zend_CodeGenerator_Php_Member_Container
Zend_CodeGenerator_Php_Member_Container wird intern von
Zend_CodeGenerator_Php_Class verwendet um die Klassenmember zu
erheben -- Eigenschaften sowie Methoden. Diese werden durch den Namen indiziert,
indem die konkrete Instanz des Members als Wert verwendet wird.
Die API der Klasse ist wie folgt:
Zend_CodeGenerator_Php_Method
Zend_CodeGenerator_Php_Method beschreibt eine Klassenmethode, und kann
sowohl Code als auch den DocBlock für diese Methode erstellen. Die Sichtbarkeit und
der Status als Statisch, Abstrakt, oder Final kann, über die Eltern-Klasse,
Zend_CodeGenerator_Php_Member_Abstract, angegeben werden. Letztendlich
können die Parameter und Rückgabewerte für die Methode spezifiziert werden.
Parameter könnnen durch Verwendung von setParameter() oder
setParameters() gesetzt werden. In jedem Fall, sollte der Parameter
entweder ein Array von Informationen sein die an den Constructor von
Zend_CodeGenerator_Php_Parameter übergeben werden, oder eine Instanz
dieser Klasse.
Die API der Klasse ist wie folgt:
Zend_CodeGenerator_Php_Parameter
Zend_CodeGenerator_Php_Parameter kann verwendet werden um
Methodenparameter zu spezifizieren. Jeder Parameter kann eine Position haben
(wenn nicht spezifiziert wird die Reihenfolge in der diese spezifiziert werden
verwendet), einen Standardwert, und einen Datentyp; ein Parametername wird
benötigt.
Die API der Klasse ist wie folgt:
Zend_CodeGenerator_Php_Property
Zend_CodeGenerator_Php_Property beschreibt die Eigenschaft einer
Klasse, welche entweder eine Konstante oder eine Variable sein kann. In jedem
Fall, kann der Eigenschaft ein optionaler Standardwert assoziiert werden.
Zusätzlich kann die Sichtbarkeit von variablen Eigenschaften über die Elternklasse
Zend_CodeGenerator_Php_Member_Abstract gesetzt werden.
Die API der Klasse ist wie folgt: