Class XmlParser
Der Parser lädt eine Route aus einer XML-Datei mit der Endung .xml. Der Aufbau der XML-Datei ist im folgenden beschrieben.
Default-Route
Über das Attribute default kann eine Route als Default definiert werden. Diese Route wird unabhängig vom Match ausgeführt, wenn keine andere Route passt. Werden mehrere Routen mit default ausgezeichnet ist das Ergebnis unbestimmt.
Wichtig: Bei einer Default-Route kann es bei falsch konfiguriertem Webserver zu einer Schleife kommen.
Gruppen
Jede Route in einer Gruppe bekommen eine Referenz auf die anderen Routen in der Gruppe. Diese Referenz definieren welche Methoden auf einen Entpunkt möglich sind. Außerdem könnenn auf Gruppenebene allgemeine Konfigurationen die für Routen übernommen werden sollen definiert werden.
Parameter
Die Parameter werden dem Presenter zur Verfügung gestellt.
Konfiguration
Erweiterte Konfigurationen können über den configuration-Tag an den entsprechenden Presenter weitergegeben werden.
Beispielkonfiguration
<definition> <routes> <group> <pattern><![CDATA[^/account$]]></pattern> <template>/account</template> <!-- Geschützte Account-Seite --> <route id="ACCOUNT"> <method>GET</method> <presenter>\Alvine\Application\Web\Presenter\Page</presenter> <configuration> <view> <!-- Falls kein resourcepath angegeben wurde, liegt das Template unter application\resource\template\alvine\application\web\presenter\page\default.min.html Der gesamte Pfad wird durchsucht, so wird falls unter dem Ursprungspfad kein Template zu finden ist der Reihe nach die Pfade application\resource\template\alvine\application\web\view\default.min.html application\resource\template\alvine\application\web\default.min.html application\resource\template\alvine\application\default.min.html application\resource\template\alvine\default.min.html application\resource\template\default.min.html usw bis zum Root-Verzeichnis durchsucht. --> <template>default.min</template> <!-- Der Pfad zu den Templates kann auch auch alternativ über das Argument resourcepath angegeben werden <template resourcepath="/var/resource/template/">default.min</template> --> </view> <!-- Verlinkungen --> <links> <!-- URL einer Verlinkung --> <link route="NEXT-ROUTE-ID" relation="info" label="i18n{info}"/> </links> <!-- Berechtigung die Seite anzuschauen --> <accesscontrol> <permission name="viewthis" class="\Alvine\Application\Web\Route\Permission"> <entity class="\Alvine\Security\Authentication\User">hans.mustermann</entity> <entity class="\Alvine\Security\Authentication\Group">administrator</entity> <entity class="\Alvine\Security\Authorization\Role">admin</entity> </permission> </accesscontrol> <!-- Bearbeiten von Ausnahmeregeln --> <exceptions> <exceptions></exceptions> </exceptions> <containers> <!-- Der Titel ist eine Locale --> <container placeholder="title"> <content>i18n{account.title}</content> </container> <!-- Der Header wird statisch eingebunden --> <container placeholder="header"> <content><![CDATA[<div class="row"><div class="col-md-12 col-lg-12 col-sm-12 col-xs-12"><div class="page-header"><img src="http://alvine.io/alvine.png" style="width:120px" class="img-responsive"></div></div></div>]]></content> </container> <!-- Die Navigation wird über ein Plugin integriert --> <container placeholder="navigation"> <plugin class="\Alvine\Application\Web\Presenter\Page\Plugin\Navigation\Tree"> <navigation include="navigation/main.properties"> <!-- Der Inhalt aus der Datei main.properties wird um diese Definition ergänzt. Achtung: Die Definitionen dürfen nicht den gleichen Key enthalten --> extra.1.url=http://alvine.io extra.1.label=alvine.io </navigation> </plugin> </container> <container placeholder="headline"> <content></content> </container> <container placeholder="content"> <content><![CDATA[Interner Bereich!]]></content> </container> <!-- Die Fußzeile ist wieder statisch --> <container placeholder="footer"> <content><![CDATA[<hr>© 1999 schukai GmbH]]></content> </container> </containers> <!-- Umschreiben von Inhalten auf der Seite --> <rewrite> <rule> <!-- Es finden die Regeln von \preg_replace Anwendung --> <pattern><![CDATA[(©) 1999]]></pattern> <target>${1} 2015</target> </rule> </rewrite> </configuration> </route> </group> </routes> </definition>
- Alvine\Core\Alvine
- Alvine\Application\Web\Route\Parser
- Alvine\Application\Web\Route\XmlParser
Package: Alvine\Application
Category: Alvine
License: Alvine Nutzungslizenz
Author: schukai GmbH info@schukai.de
Version: $Revision: 277 $
Since: 20130630
Link: alvine.io
Located at web/route/XmlParser.class.php
public static
Alvine\Types\Map\ObjectMap
|
|
public
|
|
protected
array
|
|
protected
|
#
initExceptionHandling(
Exceptions initialisieren |
protected
Alvine\Security\Authorization\DefaultAccessControlList|null
|
#
getRouteAccessControlList(
Zugangsberechtigung konfigurieren |
protected
Alvine\Types\NodeList
|
#
getRouteParameterMap(
Parameterdefinition auslesen |
protected
Alvine\Types\NodeList
|
#
getRouteLinks(
Links aus der Route auslesen |
protected
Alvine\Types\NodeList
|
#
getRouteConfiguration(
Konfiguration auslesen |
__construct(),
createRoute(),
getParser()
|
$file,
$router
|