diff --git a/reference/yaf/yaf-loader.xml b/reference/yaf/yaf-loader.xml
new file mode 100644
index 000000000..473d3d3a7
--- /dev/null
+++ b/reference/yaf/yaf-loader.xml
@@ -0,0 +1,310 @@
+
+
+
+
+
+
+ Die Klasse Yaf_Loader
+ Yaf_Loader
+
+
+
+
+
+ &reftitle.intro;
+
+ Yaf_Loader stellt eine umfassende Autoloading-Lösung
+ für Yaf bereit.
+
+
+ Beim ersten Abruf einer Instanz von Yaf_Application
+ erzeugt Yaf_Loader ein Singleton und registriert sich
+ selbst bei spl_autoload. Eine Instanz wird mittels
+ Yaf_Loader::getInstance abgerufen.
+
+
+ Yaf_Loader versucht, eine Klasse nur einmal zu laden;
+ schlägt dies fehl, hängt das Verhalten von yaf.use_spl_autoload ab: Ist diese
+ Konfiguration On, gibt Yaf_Loader::autoload
+ &false; zurück und gibt damit anderen Autoload-Funktionen eine Chance. Ist sie
+ Off (Standard), gibt Yaf_Loader::autoload
+ &true; zurück, und, was wichtiger ist, es wird eine sehr nützliche Warnung
+ ausgelöst (sehr nützlich, um herauszufinden, warum eine Klasse nicht geladen
+ werden konnte).
+
+
+ yaf.use_spl_autoload sollte Off bleiben, es sei denn, eine Bibliothek
+ verfügt über einen eigenen Autoload-Mechanismus, der nicht umgeschrieben
+ werden kann.
+
+
+
+
+ Standardmäßig nimmt Yaf_Loader an, dass alle
+ Bibliotheken (Skripte mit Klassendefinitionen) im globalen
+ Bibliotheksverzeichnis liegen, das in der php.ini (yaf.library)
+ definiert ist.
+
+
+
+ Soll Yaf_Loader bestimmte Klassen (Bibliotheken) im
+ lokalen Klassenverzeichnis
+ suchen (das in der application.ini definiert ist und standardmäßig
+ application.directory . "/library" lautet),
+ so muss das Klassenpräfix mittels
+ Yaf_Loader::registerLocalNameSpace registriert werden.
+
+
+
+ Sehen wir uns einige Beispiele an (es wird angenommen, dass APPLICATION_PATH dem
+ application.directory entspricht):
+
+ Konfigurationsbeispiel
+
+
+
+
+
+ Angenommen, der folgende lokale Namensraum ist registriert:
+
+ localnamespace registrieren
+
+registerLocalNameSpace(array("Foo", "Bar"));
+ }
+}
+?>
+]]>
+
+
+
+ Dann die Autoload-Beispiele:
+
+ Beispiel zum Laden einer Klasse
+
+
+ // APPLICATION_PATH/library/Foo/Bar/Test.php
+
+class GLO_Name =>
+ // /global_dir/Glo/Name.php
+
+class BarNon_Test
+ // /global_dir/Barnon/Test.php
+]]>
+
+
+
+
+ Beispiel zum Laden einer Klasse mit Namensraum
+
+
+ // APPLICATION_PATH/library/Foo/Bar/Dummy.php
+
+class \FooBar\Bar\Dummy =>
+ // /global_dir/FooBar/Bar/Dummy.php
+]]>
+
+
+
+
+
+ Möglicherweise ist aufgefallen, dass alle Ordner mit einem Großbuchstaben
+ beginnen; sie können in Kleinbuchstaben umgewandelt werden, indem in der php.ini
+ yaf.lowcase_path = On gesetzt wird.
+
+
+
+ Yaf_Loader ist auch dafür ausgelegt, die MVC-Klassen zu
+ laden; die Regel lautet:
+
+ Beispiel zum Laden von MVC-Klassen
+
+
+// APPLICATION_PATH/controllers/
+
+Model Classes =>
+// APPLICATION_PATH/models/
+
+Plugin Classes =>
+// APPLICATION_PATH/plugins/
+]]>
+
+
+
+ Yaf erkennt das Suffix einer Klasse (dies ist der Standard; es kann über die
+ Konfiguration yaf.name_suffix auch auf das Präfix
+ umgestellt werden), um zu entscheiden, ob es sich um eine MVC-Klasse handelt:
+
+ Unterscheidung von MVC-Klassen
+
+
+ // ***Controller
+
+Model Classes =>
+ // ***Model
+
+Plugin Classes =>
+ // ***Plugin
+]]>
+
+
+
+ einige Beispiele:
+
+ Beispiel zum Laden von MVC-Klassen
+
+
+ // APPLICATION_PATH/models/Data.php
+
+class DummyPlugin =>
+ // APPLICATION_PATH/plugins/Dummy.php
+
+class A_B_TestModel =>
+ // APPLICATION_PATH/models/A/B/Test.php
+]]>
+
+
+
+
+
+ Seit Version 2.1.18 unterstützt Yaf das Autoloading von Controllern auf der
+ Seite des Benutzerskripts (das heißt, das durch das PHP-Skript des Benutzers
+ ausgelöste Autoloading, z. B. der Zugriff auf eine statische Eigenschaft eines
+ Controllers in einem Bootstrap oder in Plugins), aber der Autoloader versucht
+ nur, das Skript der Controller-Klasse im Ordner des Standardmoduls zu finden,
+ der "APPLICATION_PATH/controllers/" lautet.
+
+
+ Außerdem wird das Verzeichnis durch yaf.lowcase_path beeinflusst.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ Yaf_Loader
+
+
+
+
+ Yaf_Loader
+
+
+
+ &Properties;
+
+ protected
+ _local_ns
+
+
+ protected
+ _library
+
+
+ protected
+ _global_library
+
+
+ static
+ _instance
+
+
+
+ &Methods;
+
+
+
+
+
+
+
+
+
+
+ &reftitle.properties;
+
+
+ _local_ns
+
+
+
+
+
+ _library
+
+
+ Standardmäßig lautet dieser Wert application.directory . "/library";
+ er kann entweder in der application.ini (application.library) oder durch einen Aufruf von
+ Yaf_Loader::setLibraryPath geändert werden.
+
+
+
+
+ _global_library
+
+
+
+
+
+ _instance
+
+
+
+
+
+
+
+
+
+
+
+
+ &reference.yaf.entities.yaf-loader;
+
+
+
+
diff --git a/reference/yaf/yaf_application/construct.xml b/reference/yaf/yaf_application/construct.xml
new file mode 100644
index 000000000..a2e7f89e0
--- /dev/null
+++ b/reference/yaf/yaf_application/construct.xml
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+ Yaf_Application::__construct
+ Konstruktor von Yaf_Application
+
+
+
+ &reftitle.description;
+
+ publicYaf_Application::__construct
+ mixedconfig
+ stringenviron
+
+
+ Erzeugt eine Instanz von Yaf_Application.
+
+
+
+
+
+
+
+ &reftitle.parameters;
+
+
+ config
+
+
+ Ein Pfad zu einer ini-Konfigurationsdatei oder ein Konfigurationsarray.
+
+
+ Handelt es sich um eine ini-Konfigurationsdatei, so sollte es einen
+ Abschnitt geben, der so benannt ist, wie er durch
+ yaf.environ definiert ist und der
+ standardmäßig "product" lautet.
+
+
+ Wird eine ini-Konfigurationsdatei als Konfigurationscontainer der
+ Anwendung verwendet, sollte yaf.cache_config aktiviert werden,
+ um die Leistung zu verbessern.
+
+
+
+
+ Und die Liste der Konfigurationseinträge (samt ihren Standardwerten):
+
+ Beispiel einer ini-Konfigurationsdatei
+
+
+
+
+
+
+
+
+ environ
+
+
+ Welcher Abschnitt als endgültige Konfiguration geladen wird.
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Beispiel für Yaf_Application::__construct
+
+bootstrap()->run();
+?>
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+ Beispiel für Yaf_Application::__construct
+
+ array(
+ "directory" => realpath(dirname(__FILE__)) . "/application",
+ ),
+);
+
+/** Yaf_Application */
+$application = new Yaf_Application($config);
+$application->bootstrap()->run();
+?>
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+ &reftitle.seealso;
+
+ Yaf_Config_Ini
+
+
+
+
+
+
diff --git a/reference/yaf/yaf_route_rewrite/construct.xml b/reference/yaf/yaf_route_rewrite/construct.xml
new file mode 100644
index 000000000..d633d6cad
--- /dev/null
+++ b/reference/yaf/yaf_route_rewrite/construct.xml
@@ -0,0 +1,241 @@
+
+
+
+
+
+
+ Yaf_Route_Rewrite::__construct
+ Konstruktor von Yaf_Route_Rewrite
+
+
+
+ &reftitle.description;
+
+ publicYaf_Route_Rewrite::__construct
+ stringmatch
+ arrayroute
+ arrayverify
+
+
+
+
+
+
+
+ &reftitle.parameters;
+
+
+ match
+
+
+ Ein Muster, das zum Abgleich mit einer Anfrage-URI verwendet wird; wenn es
+ nicht passt, gibt Yaf_Route_Rewrite
+ &false; zurück.
+
+
+ Es kann der Stil :name verwendet werden, um die abgeglichenen Segmente zu
+ benennen, und * verwendet werden, um die restlichen URL-Segmente abzugleichen.
+
+
+
+
+ route
+
+
+ Wenn das Muster match auf die Anfrage-URI passt, verwendet
+ Yaf_Route_Rewrite dies, um zu entscheiden, welches
+ Modul/welcher Controller/welche Aktion das Ziel ist.
+
+
+ Jeder Eintrag module/controller/action in diesem Array ist optional; wird
+ kein bestimmter Wert zugewiesen, wird zur Standardwahl geroutet.
+
+
+
+
+ verify
+
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Beispiel für Yaf_Route_Rewrite
+
+getRouter()->addRoute("name",
+ new Yaf_Route_Rewrite(
+ "/product/:name/:id/*", // gleicht Anfrage-URIs ab, die mit "/product" beginnen
+ array(
+ 'controller' => "product", // routet zum Controller product,
+ ),
+ )
+ );
+?>
+]]>
+
+ &example.outputs.similar;
+
+ "product",
+ "module" => "index", //(default)
+ "action" => "index", //(default)
+)
+
+/**
+ * and request parameters:
+ */
+array(
+ "name" => "foo",
+ "id" => 22,
+ "foo" => bar
+)
+]]>
+
+
+
+ Beispiel für Yaf_Route_Rewrite
+
+ array(
+ "type" => "rewrite", // Route Yaf_Route_Rewrite
+ "match" => "/user-list/:id", // gleicht nur /user/list/?/ ab
+ "route" => array(
+ 'controller' => "user", // routet zum Controller user,
+ 'action' => "list", // routet zur Aktion list
+ ),
+ ),
+ );
+ Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
+ new Yaf_Config_Simple($config));
+?>
+]]>
+
+ &example.outputs.similar;
+
+ "user",
+ "action" => "list",
+ "module" => "index", //(default)
+)
+
+/**
+ * and request parameters:
+ */
+array(
+ "id" => 22,
+)
+]]>
+
+
+
+ Beispiel für Yaf_Route_Rewrite (ab Version 2.3.0)
+
+ array(
+ "type" => "rewrite",
+ "match" => "/user-list/:a/:id", // gleicht nur /user-list/* ab
+ "route" => array(
+ 'controller' => "user", // routet zum Controller user,
+ 'action' => ":a", // routet zur Aktion :a
+ ),
+ ),
+ );
+ Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
+ new Yaf_Config_Simple($config));
+?>
+]]>
+
+ &example.outputs.similar;
+
+ "user",
+ "action" => "list",
+ "module" => "index", //(default)
+)
+
+/**
+ * and request parameters:
+ */
+array(
+ "id" => 22,
+)
+]]>
+
+
+
+
+
+ &reftitle.seealso;
+
+ Yaf_Router::addRoute
+ Yaf_Router::addConfig
+ Yaf_Route_Static
+ Yaf_Route_Supervar
+ Yaf_Route_Simple
+ Yaf_Route_Regex
+ Yaf_Route_Map
+
+
+
+
+
+
diff --git a/reference/yaf/yaf_view_simple/assignref.xml b/reference/yaf/yaf_view_simple/assignref.xml
new file mode 100644
index 000000000..0f3880a20
--- /dev/null
+++ b/reference/yaf/yaf_view_simple/assignref.xml
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+ Yaf_View_Simple::assignRef
+ Der Zweck von assignRef
+
+
+
+ &reftitle.description;
+
+ publicboolYaf_View_Simple::assignRef
+ stringname
+ mixedvalue
+
+
+ Anders als Yaf_View_Simple::assign weist diese Methode
+ der Engine einen Referenzwert zu.
+
+
+
+
+ &reftitle.parameters;
+
+
+ name
+
+
+ Ein Zeichenkettenname, der für den Zugriff auf den Wert im Template
+ verwendet wird.
+
+
+
+
+ value
+
+
+ Wert vom Typ mixed
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Beispiel für Yaf_View_Simple::assignRef
+
+getView()->assign("foo", $value);
+
+ /* bitte beachten, dass es vor Yaf 2.1.4 einen Fehler gab,
+ * durch den die folgende Ausgabe "bar" lautet;
+ */
+ $dummy = $this->getView()->render("index/index.phtml");
+ echo $value;
+
+ // verhindert das automatische Rendern
+ Yaf_Dispatcher::getInstance()->autoRender(FALSE);
+ }
+}
+?>
+]]>
+
+
+
+ Beispiel für ein Template
+
+
+
+
+
+
+
+