| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.loader.autoloader">
- <title>Der Autoloader</title>
- <para>
- <classname>Zend_Loader_Autoloader</classname> ist eine vollständige Autoloader Lösung für
- den Zend Framework. Sie wurde entwickelt um verschiedene Ziele zu lösen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Einen echten Namespace Autoloader bieten. (Frühere Inkarnationen waren mit
- Namespaces auf Benutzerebene verknüpft)
- </para>
- </listitem>
- <listitem>
- <para>
- Es zu erlauben eigene Callbacks als Autoloader zu registrieren und diese als Stack
- zu managen. (Zu der als das geschrieben wirde gab es einige Probleme mit
- <code>spl_autoload</code>, welche es nicht erlaubten einen Callback erneut zu
- registrieren wenn dieser eine Instanzmethode verwendet.)
- </para>
- </listitem>
- <listitem>
- <para>
- Er zu erlauben Namespaces optimiert zu matchen um schnellere Auflösung der Klasse
- zu erlauben.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- <classname>Zend_Loader_Autoloader</classname> implementiert ein Singleton, was es universell
- verwendbar macht. Das bietet die Möglichkeit zusätzlich Autoloader von überall im eigenen
- Code zu registrieren wo es notwendig ist.
- </para>
- <sect2 id="zend.loader.autoloader.usage">
- <title>Verwenden des Autoloaders</title>
- <para>
- Das erste Mal wenn eine Instanz des Autoloaders empfangen wird, registriert dieser sich
- mit <code>spl_autoload</code>. Man kann eine Instanz erhalten indem die
- <methodname>getInstance()</methodname> Methode verwendet wird:
- </para>
- <programlisting language="php"><![CDATA[
- $autoloader = Zend_Loader_Autoloader::getInstance();
- ]]></programlisting>
- <para>
- Standardmäßig ist der Autloader so konfiguriert das er den "Zend_" und "ZendX_"
- Namespaces entspricht. Wenn man seinen eigenen Bibliothekscode hat der seinen eigenen
- Namespace verwendet, kann man Ihn mit dem Autoloader registrieren indem die
- <methodname>registerNamespace()</methodname> Methode verwendet. Wenn der eigene
- Blbliothekscode ein Präfix von "My_" hat, könnte man auch folgendes tun:
- </para>
- <programlisting language="php"><![CDATA[
- $autoloader->registerNamespace('My_');
- ]]></programlisting>
- <note>
- <title>Namespace Präfixe</title>
- <para>
- Man sollte beachten dass das vorhergehende Beispiel "My_" verwendet und nicht "My".
- Der Grund ist, das <classname>Zend_Loader_Autoloader</classname> als Autoloader für
- generelle Anwendungsfälle gedacht ist, und deshalb nicht die Annahme macht das ein
- angegebener Präfix eines Klassen Namespaces einen Unterstrich enthalten muß. Wenn
- der eigene Klassennamespace einen <emphasis>enhält</emphasis>, dann sollte man Ihn
- mit dem eigenen Namespace registrieren.
- </para>
- </note>
- <para>
- Man kann auch einen eigene Autoloader Callbacks registrieren, optional mit einem
- spezifischen Namespace (oder einer Gruppe von Namespaces).
- <classname>Zend_Loader_Autoloader</classname> versucht zuerst die passenden zu finden
- bevor sein interner Autoloading Mechanismus verwendet wird.
- </para>
- <para>
- Man könnte, als Beispiel, ein oder mehrere eZcomponents Komponenten mit der eigenen
- Zend Framework Anwendung verwenden wollen. Um deren Autoloading Möglichkeiten zu
- verwenden, müssen diese auf den Autoloader Stack gepusht werden indem man
- <methodname>pushAutoloader()</methodname> verwendet:
- </para>
- <programlisting language="php"><![CDATA[
- $autoloader->pushAutoloader(array('ezcBase', 'autoload'), 'ezc');
- ]]></programlisting>
- <para>
- Das zeigt dem Autoloader das der eZcomponents Autoloader für Klassen zu verwenden ist
- die mit "ezc" anfangen.
- </para>
- <para>
- Man kann die <methodname>unshiftAutoloader()</methodname> Methode verwenden um den
- Autoloader an den Anfang der Autoloader Kette hinzu zu fügen.
- </para>
- <para>
- Standmäßig, macht <classname>Zend_Loader_Autoloader</classname> keine
- Fehlerunterdrückung wenn sein interner Autoloader verwendet wird, der seinerseits
- <methodname>Zend_Loader::loadClass()</methodname> verwendet. Die meiste Zeit ist das
- genau das was man will. Trotzdem, gibt es Fälle in denen man Sie unterdrücken will.
- Man das mit Hilfe von <methodname>suppressNotFoundWarnings()</methodname> tun:
- </para>
- <programlisting language="php"><![CDATA[
- $autoloader->suppressNotFoundWarnings(true);
- ]]></programlisting>
- <para>
- Letztendlich kann es Zeiten geben in denen man will das der Autoloader irgendeinen
- Namespace verwendet. Zum Beispiel verwenden die PEAR Bibliotheken keinen gemeinsamen
- Namespace, was es schwierig macht individuelle Namespaces zu spezifizieren wenn viele
- PEAR Komponenten verwendet werden. Man kann die
- <methodname>setFallbackAutoloader()</methodname> Methode verwenden damit der Autoloader
- als catch-all arbeitet:
- </para>
- <programlisting language="php"><![CDATA[
- $autoloader->setFallbackAutoloader(true);
- ]]></programlisting>
- <note>
- <title>Klassen von PHP Namespaces laden</title>
- <para>
- Beginnend mit Version 1.10.0 erlaubt Zend Framework das Laden von Klassen aus
- <acronym>PHP</acronym> Namespaces. Diese Unterstützung folgt den gleichen
- Richtlinien und Implementationen wie Sie in der <ulink
- url="http://groups.google.com/group/php-standards/web/psr-0-final-proposal">PHP
- Framework Interop Group PSR-0</ulink> Referenz Implementation gefunden werden
- können.
- </para>
- <para>
- Mit dieser Richtlinie werden die folgenden Regeln angewandt:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Jeder Separator für Namespaces wird zu einem
- <constant>DIRECTORY_SEPARATOR</constant> konvertiert wenn er vom Dateisystem
- geladen wird.
- </para>
- </listitem>
- <listitem>
- <para>
- Jedes "_" Zeichen im <emphasis>CLASS NAME</emphasis> wird zu einem
- <constant>DIRECTORY_SEPARATOR</constant> konvertiert. Das "_" Zeichen hat
- keine spezielle Bedeutung im Namespace.
- </para>
- </listitem>
- <listitem>
- <para>
- Dem voll-qualifizierte Namespace und der Klasse wird ".php" angehängt wenn
- Sie vom Dateisystem geladen werden.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Als Beispiel:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <classname>\Doctrine\Common\IsolatedClassLoader</classname> =>
- <filename>/path/to/project/lib/vendor/Doctrine/Common/IsolatedClassLoader.php</filename>
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>\namespace\package\Class_Name</classname> =>
- <filename>/path/to/project/lib/vendor/namespace/package/Class/Name.php</filename>
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>\namespace\package_name\Class_Name</classname> =>
- <filename>/path/to/project/lib/vendor/namespace/package_name/Class/Name.php</filename>
- </para>
- </listitem>
- </itemizedlist>
- </note>
- </sect2>
- <sect2 id="zend.loader.autoloader.zf-version">
- <title>Auswahl einer Zend Framework Version</title>
- <para>
- Typischerweise, verwendet man die Version des Zend Frameworks die mit dem Autoloader,
- den man instanziert, gekommen ist. Trotzdem ist es oft nützlich, wenn man ein Projekt
- entwickelt, spezielle Versionen zu verwenden, Major und Minor Branches, oder einfach
- die letzte Version. <classname>Zend_Loader_Autoloader</classname> bietet, seit Version
- 1.10, einige Features um bei dieser Arbeit zu helfen.
- </para>
- <para>
- Nehmen wir das folgende Szenario an:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Wärend der <emphasis>Entwicklung</emphasis> will man die letzte Version vom
- Zend Framework verwenden die man installiert hat, damit man sicherstellen kann
- das die Anwendung funktioniert wenn man zwischen Versionen hochrüstet.
- </para>
- <para>
- Wenn man auf die <emphasis>Qualitäts-Sicherung</emphasis> wechselt, benötigt man
- etwas mehr Stabilität, sodas man die letzte installierte Revision einer
- speziellen Minor Version verwenden will.
- </para>
- <para>
- Letztendlich, wenn man auf die <emphasis>Produktion</emphasis> wechselt, will
- man auf eine spezielle installierte Version festnageln, um sicherzustellen das
- kein Bruch stattfinden wenn man neue Versionen des Zend Frameworks auf dem
- eigenen Server hinzufügt.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Der Autoloader erlaubt es das mit der Methode <methodname>setZfPath()</methodname> zu
- tun. Diese Methode nimmt zwei Argumente, ein <emphasis>Pfad</emphasis> zu einem Set
- von Zend Framework Installationen, und eine <emphasis>Version</emphasis> die zu
- Verwenden ist. Sobald ausgeführt, wird dem <constant>include_path</constant> ein Pfad
- vorangestellt der auf die entsprechende Zend Framework Installationsbibliothek zeigt.
- </para>
- <para>
- Das Verzeichnis das man als den eigenen <emphasis>Pfad</emphasis> spezifiziert sollte
- einen Pfad wie den folgenden haben:
- </para>
- <programlisting language="text"><![CDATA[
- ZendFramework/
- |-- 1.9.2/
- | |-- library/
- |-- ZendFramework-1.9.1-minimal/
- | |-- library/
- |-- 1.8.4PL1/
- | |-- library/
- |-- 1.8.4/
- | |-- library/
- |-- ZendFramework-1.8.3/
- | |-- library/
- |-- 1.7.8/
- | |-- library/
- |-- 1.7.7/
- | |-- library/
- |-- 1.7.6/
- | |-- library/
- ]]></programlisting>
- <para>
- (wobei <emphasis>Pfad</emphasis> auf das Verzeichnis "ZendFramework" im obigen Beispiel
- zeigt)
- </para>
- <para>
- Es ist zu beachten das jedes Unterverzeichnis das Verzeichnis
- <filename>library</filename> enthalten sollte, welche den aktuellen Zend Framework
- Bibliothekscode enthält. Die individuellen Namen der Unterverzeichnisse können
- Versionsnummern sein, oder einfach die entpackten Inhalte des standardmäßigen Zend
- Framework Distributions Tarballs/Zipfiles.
- </para>
- <para>
- Sehen wir uns also einige Anwendungsfälle an. Im ersten Anwendungsfall, der
- <emphasis>Entwicklung</emphasis>, wollen wir die letzte Quellinstallation verwenden.
- Das kann getan werden indem man "latest" als Version übergibt:
- </para>
- <programlisting language="php"><![CDATA[
- $autoloader->setZfPath($path, 'latest');
- ]]></programlisting>
- <para>
- Im obigen Beispiel, verweist dass auf das Verzeichnis
- <filename>ZendFramework/1.9.2/library/</filename>; das kann geprüft werden indem man
- den Rückgabewert von <methodname>getZfPath()</methodname> prüft.
- </para>
- <para>
- In der zweiten Situation, der <emphasis>Qualitäts-Sicherung</emphasis>, wollen wir auf
- die Minor Release 1.8 verweisen, und die letzte Installation verwenden die wir für diese
- Release haben. Man kann das wie folgt durchführen:
- </para>
- <programlisting language="php"><![CDATA[
- $autoloader->setZfPath($path, '1.8');
- ]]></programlisting>
- <para>
- In diesem Fall wird das Verzeichnis <filename>ZendFramework/1.8.4PL1/library/</filename>
- gefunden.
- </para>
- <para>
- Im letzten Fall, für die <emphasis>Produktion</emphasis>, wollen wir uns auf eine
- spezielle Version festnageln -- 1.7.7, da dass vorhanden war als die Qualitäts Sicherung
- getestet hat, also vor unserem eigenen Release.
- </para>
- <programlisting language="php"><![CDATA[
- $autoloader->setZfPath($path, '1.7.7');
- ]]></programlisting>
- <para>
- Logischerweise wird das Verzeichnis <filename>ZendFramework/1.7.7/library/</filename>
- gefunden.
- </para>
- <para>
- Man diese Werte auch in der Konfigurationsdatei spezifizieren die man mit
- <filename>Zend_Application</filename> verwendet. Um das zu tun, muss man die folgenden
- Informationen spezifizieren:
- </para>
- <programlisting language="ini"><![CDATA[
- [production]
- autoloaderZfPath = "path/to/ZendFramework"
- autoloaderZfVersion = "1.7.7"
- [qa]
- autoloaderZfVersion = "1.8"
- [development]
- autoloaderZfVersion = "latest"
- ]]></programlisting>
- <para>
- Die unterschiedlichen Umgebungssektionen sind zu beachten, und die verschiedenen
- Versionen die in jeder Umgebung spezifiziert werden; diese Faktoren erlauben
- <classname>Zend_Application</classname> den Autoloader entsprechend zu konfigurieren.
- </para>
- <warning>
- <title>Implikationen für die Geschwindigkeit</title>
- <para>
- Für die beste Performance, sollte man dieses Feature entweder nicht verwenden, oder
- eine spezielle Zend Framework Version spezifizieren (z.B. nicht "latest", eine Major
- Revision wie "1", oder eine Minor Revision wie "1.8"). Andernfalls muss der
- Autoloader die angebotenen Pfade nach Verzeichnissen suchen welche diesem Kriterium
- entsprechen -- manchmal eine teure Operation die für jede Anfrage durchgeführt wird.
- </para>
- </warning>
- </sect2>
- <sect2 id="zend.loader.autoloader.interface">
- <title>Das Autoloader Interface</title>
- <para>
- Neben der Möglichkeit eigene Callbacks als Autoloader zu spezifizieren, definiert
- Zend Framework auch ein Interface für Autoloading Klassen,
- <classname>Zend_Loader_Autoloader_Interface</classname>, das implementiert werden kann:
- </para>
- <programlisting language="php"><![CDATA[
- interface Zend_Loader_Autoloader_Interface
- {
- public function autoload($class);
- }
- ]]></programlisting>
- <para>
- Wenn das Interface verwendet wird, kann man einfach eine Klasseninstanz an
- <classname>Zend_Loader_Autoloader</classname>'s
- <methodname>pushAutoloader()</methodname> und
- <methodname>unshiftAutoloader()</methodname> Methoden übergeben:
- </para>
- <programlisting language="php"><![CDATA[
- // Angenommen Foo_Autoloader implementiert Zend_Loader_Autoloader_Interface:
- $foo = new Foo_Autoloader();
- $autoloader->pushAutoloader($foo, 'Foo_');
- ]]></programlisting>
- </sect2>
- <sect2 id="zend.loader.autoloader.reference">
- <title>Autoloader Referenz</title>
- <para>
- Anbei kann ein Wegweiser für die Methoden gefunden werden die in
- <classname>Zend_Loader_Autoloader</classname> vorhanden sind.
- </para>
- <table id="zend.loader.autoloader.reference.api">
- <title>Zend_Loader_Autoloader Methoden</title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>Methode</entry>
- <entry>Rückgabewert</entry>
- <entry>Parameter</entry>
- <entry>Beschreibung</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><methodname>getInstance()</methodname></entry>
- <entry><classname>Zend_Loader_Autoloader</classname></entry>
- <entry>N/A</entry>
- <entry>
- <para>
- empfängt die Singleton Instanz von
- <classname>Zend_Loader_Autoloader</classname>. Beim ersten Empfang
- registriert sich diese selbst bei <code>spl_autoload</code>. Diese
- Methode ist statisch.
- </para>
- </entry>
- </row>
- <row>
- <entry><methodname>resetInstance()</methodname></entry>
- <entry><code>void</code></entry>
- <entry>N/A</entry>
- <entry>
- <para>
- Setzt den Status der Singleton Instanz von
- <classname>Zend_Loader_Autoloader</classname> auf den originalen
- Status zurück, de-registriert alle Autoloader Callbacks und alle
- registrierten Namespaces.
- </para>
- </entry>
- </row>
- <row>
- <entry><methodname>autoload($class)</methodname></entry>
- <entry><code>string|<constant>FALSE</constant></code></entry>
- <entry>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$class</varname>, <emphasis>Benötigt</emphasis>.
- Der String eines Klassennamens der geladen werden soll.
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- <entry>
- <para>
- Versucht einen Klassennamen zu einer Datei aufzulösen und diese zu
- laden.
- </para>
- </entry>
- </row>
- <row>
- <entry><methodname>setDefaultAutoloader($callback)</methodname></entry>
- <entry><classname>Zend_Loader_Autoloader</classname></entry>
- <entry>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$callback</varname>, <emphasis>Benötigt</emphasis>.
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- <entry>
- <para>
- Spezifiziert einen alternativen <acronym>PHP</acronym> Callback der
- für die standardmäßige Autoloader Implementation verwendet werden
- soll.
- </para>
- </entry>
- </row>
- <row>
- <entry><methodname>getDefaultAutoloader()</methodname></entry>
- <entry><code>callback</code></entry>
- <entry>N/A</entry>
- <entry>
- <para>
- Empfängt die standardmäßige Autoloader Implementation; standardmäßig
- ist das <methodname>Zend_Loader::loadClass()</methodname>.
- </para>
- </entry>
- </row>
- <row>
- <entry><methodname>setAutoloaders(array $autoloaders)</methodname></entry>
- <entry><classname>Zend_Loader_Autoloader</classname></entry>
- <entry>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$autoloaders</varname>,
- <emphasis>Benötigt</emphasis>.
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- <entry>
- <para>
- Setzt eine Liste von konkreten Autoloadern für deren Verwendung in
- den Autoloader Stack. Jedes Element im Autoloader Array muß ein
- <acronym>PHP</acronym> Callback sein.
- </para>
- </entry>
- </row>
- <row>
- <entry><methodname>getAutoloaders()</methodname></entry>
- <entry><type>Array</type></entry>
- <entry>N/A</entry>
- <entry><para>Empfängt den internen Autoloader Stack.</para></entry>
- </row>
- <row>
- <entry><methodname>getNamespaceAutoloaders($namespace)</methodname></entry>
- <entry><type>Array</type></entry>
- <entry>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$namespace</varname>, <emphasis>Benötigt</emphasis>
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- <entry>
- <para>
- Holt alle Autoloader die registriert wurden um mit einem
- spezifischen Namespace geladen zu werden.
- </para>
- </entry>
- </row>
- <row>
- <entry><methodname>registerNamespace($namespace)</methodname></entry>
- <entry><classname>Zend_Loader_Autoloader</classname></entry>
- <entry>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$namespace</varname>,
- <emphasis>Benötigt</emphasis>.
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- <entry>
- <para>
- Registriert ein oder mehrere Namespaces mit dem standardmäßigen
- Autoloader. Wenn <varname>$namespace</varname> ein String ist,
- registriert er diesen Namespace; wenn er ein Array von Strings ist,
- registriert er jeden als Namespace.
- </para>
- </entry>
- </row>
- <row>
- <entry><methodname>unregisterNamespace($namespace)</methodname></entry>
- <entry><classname>Zend_Loader_Autoloader</classname></entry>
- <entry>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$namespace</varname>,
- <emphasis>Benötigt</emphasis>.
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- <entry>
- <para>
- De-Registriert ein oder mehrere Namespaces vom standardmäßigen
- Autoloader. Wenn <varname>$namespace</varname> ein String ist,
- de-registriert er diesen Namespace; wenn er ein Array von Strings
- ist, de-registriert er jeden davon als Namespace.
- </para>
- </entry>
- </row>
- <row>
- <entry><methodname>getRegisteredNamespaces()</methodname></entry>
- <entry><type>Array</type></entry>
- <entry>N/A</entry>
- <entry>
- <para>
- Gibt ein Array aller Namespaces zurück die mit dem standardmäßigen
- Autoloader registriert sind.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <methodname>suppressNotFoundWarnings($flag = null)</methodname>
- </entry>
- <entry><code>boolean|Zend_Loader_Autoloader</code></entry>
- <entry>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$flag</varname>, <emphasis>Optional</emphasis>.
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- <entry>
- <para>
- Setzt oder Empfängt den Wert des Flags das verwendet wird um
- anzuzeigen ob die standardmäßige Autoloader Implementation "file not
- found" Warnungen unterdrücken soll oder nicht. Wenn keine Argumente
- oder ein <constant>NULL</constant> Wert übergeben wird, wird ein
- Boolscher Wert zurückgegeben der den Status des Flags anzeigt; wenn
- ein Boolean übergeben wurde, wird das Flag auf den Wert gesetzt und
- die Autoloader Instanz wird zurückgegeben (um die Verkettung von
- Methoden zu erlauben).
- </para>
- </entry>
- </row>
- <row>
- <entry><methodname>setFallbackAutoloader($flag)</methodname></entry>
- <entry><classname>Zend_Loader_Autoloader</classname></entry>
- <entry>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$flag</varname>, <emphasis>Benötigt</emphasis>.
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- <entry>
- <para>
- Setzt den Wert des Flags das verwendet wird um anzuzeigen ob der
- standardmäßige Autoloader als Fallback, oder Catch-All Autoloader
- für alle Namespaces verwendet werden soll.
- </para>
- </entry>
- </row>
- <row>
- <entry><methodname>isFallbackAutoloader()</methodname></entry>
- <entry><type>Boolean</type></entry>
- <entry>N/A</entry>
- <entry>
- <para>
- Empfängt den Wert des Flags das verwendet wird um anzuzeigen ob der
- standardmäßige Autoloader als Fallback, oder Catch-All Autoloader
- für alle Namespaces verwendet wird. Standardmäßig ist er
- <constant>FALSE</constant>.
- </para>
- </entry>
- </row>
- <row>
- <entry><methodname>getClassAutoloaders($class)</methodname></entry>
- <entry><type>Array</type></entry>
- <entry>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$class</varname>, <emphasis>Benötigt</emphasis>.
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- <entry>
- <para>
- Gibt eine Liste von Namespaced Autoloadern zurück die der
- angegebenen Klasse potentiell entsprechen. Wenn keine passt, werden
- alle globalen (nicht ge-namespaceten Autoloader) zurückgegeben.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <methodname>unshiftAutoloader($callback, $namespace = '')</methodname>
- </entry>
- <entry><classname>Zend_Loader_Autoloader</classname></entry>
- <entry>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$callback</varname>, <emphasis>Benötigt</emphasis>.
- Ein gültiger <acronym>PHP</acronym> Callback.
- </para>
- </listitem>
- <listitem>
- <para>
- <varname>$namespace</varname>,
- <emphasis>Optional</emphasis>. Ein String der einen
- Klassenpräfix Namespace repräsentiert.
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- <entry>
- <para>
- Fügt eine konkrete Autoloader Implementation an den Anfang des
- Autoloader Stacks hinzu. Wenn ein Namespace angegeben wird, wird
- dieser Namespace verwendet um optimistischerweise zu passen;
- andernfalls wird angenommen das der Autoloader ein globaler
- Autoloader ist.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <methodname>pushAutoloader($callback, $namespace = '')</methodname>
- </entry>
- <entry><classname>Zend_Loader_Autoloader</classname></entry>
- <entry>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$callback</varname>, <emphasis>Benötigt</emphasis>.
- Ein gültiger <acronym>PHP</acronym> Callback
- </para>
- </listitem>
- <listitem>
- <para>
- <varname>$namespace</varname>,
- <emphasis>Optional</emphasis>. Ein String der einen
- Klassenpräfix Namespace repräsentiert.
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- <entry>
- <para>
- Fügt eine konkrete Autoloader Implementation an das Ende des
- internen Autoloader Stacks hinzu. Wenn ein Namespace angegeben wird,
- wird dieser Namespace verwendet um optimistischerweise zu passen;
- andernfalls wird angenommen das der Autoloader ein globaler
- Autoloader ist.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <methodname>removeAutoloader($callback, $namespace = '')</methodname>
- </entry>
- <entry><classname>Zend_Loader_Autoloader</classname></entry>
- <entry>
- <itemizedlist>
- <listitem>
- <para>
- <varname>$callback</varname>, <emphasis>Benötigt</emphasis>.
- Ein gültiger <acronym>PHP</acronym> Callback
- </para>
- </listitem>
- <listitem>
- <para>
- <varname>$namespace</varname>,
- <emphasis>Optional</emphasis>. Ein String der einen
- Klassenpräfix Namespace repräsentiert oder ein Array von
- Namespace Strings.
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- <entry>
- <para>
- Entfernt eine konkrete Autoloader Implementation vom internen
- Autoloader Stack. Wenn ein Namespace oder mehrere Namespaces
- angegeben werden, wird der Callback nur vom angegebenen Namespace
- oder den angegebenen Namespaces entfernt.
- </para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </sect2>
- </sect1>
|