Overview

Namespaces

  • Alvine
    • Application
      • Configuration
      • Console
        • Option
        • Terminal
          • VT100
      • Data
        • Generic
      • Resource
      • UI
      • Web
        • Model
          • Linkage
            • Relation
            • Structure
        • Presenter
          • Access
          • Data
          • Event
          • File
          • Page
            • Plugin
              • Authentication
              • Html
              • I18n
              • Navigation
              • UI
                • Wrapper
        • Route
          • Cache
          • Exception
          • Handler
        • View
          • Data
          • Definition
          • Intern
          • Json

Classes

  • Event
  • Handler
  • Link
  • Parser
  • Permission
  • RouteParser
  • XmlParser
  • Overview
  • Namespace
  • Class
  • Tree
  • Deprecated

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>&copy; 1999 schukai GmbH]]></content>
                        </container>
                    </containers>

                    <!-- Umschreiben von Inhalten auf der Seite -->
                    <rewrite>
                        <rule>
                            <!-- Es finden die Regeln von \preg_replace Anwendung -->
                            <pattern><![CDATA[(&copy;) 1999]]></pattern>
                            <target>${1} 2015</target>
                        </rule>
                    </rewrite>
                </configuration>
            </route>
        </group>

    </routes>
</definition>
Alvine\Core\Alvine
Extended by Alvine\Application\Web\Route\Parser
Extended by Alvine\Application\Web\Route\XmlParser
Namespace: Alvine\Application\Web\Route
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
Methods summary
public static Alvine\Types\Map\ObjectMap
# getParamterMap( Alvine\Xml\NodeList $parameterNodes )

ObjectMap erstellen

ObjectMap erstellen

Diese Methode erstellt eine ObjectMap von Parameter Objekten

<parameters>
  <parameter type="integer" name="name">myName</parameter>
  <parameter type="string" name="format">jpg</parameter>
</parameters>

Parameters

$parameterNodes
Paramter Nodes

Returns

Alvine\Types\Map\ObjectMap
ObjectMap mit Paramter Objekten

Throw

\Alvine\Core\ParseException Fehlerhafter Tag im XML
public Alvine\Application\Web\Router
# update( )

Routingtabelle einlesen

Routingtabelle einlesen

Diese Methode liesst eine Routingtabelle aus einer XML-Datei ein.

Returns

Alvine\Application\Web\Router
Übergebenes Router Objekt

Throws

Alvine\Core\ParseException
Eintrag kann nicht gelesen werden
Alvine\Core\ClassNotFoundException
Es wurde ein unbekannter Presenter definiert.
protected array
# getRouteFromXML( Alvine\IO\FileInputStream $file )

XML-Parsen

XML-Parsen

Parameters

$file

Returns

array
protected Alvine\Application\Web\Route\XmlParser
# initExceptionHandling( Alvine\Application\Web\Route $routeObject, Alvine\Xml\Element $route )

Exceptions initialisieren

Exceptions initialisieren

Parameters

$routeObject
$route

Returns

Alvine\Application\Web\Route\XmlParser

Throws

Alvine\Application\Web\RouteException
protected Alvine\Security\Authorization\DefaultAccessControlList|null
# getRouteAccessControlList( Alvine\Application\Web\Route $routeObject, Alvine\Xml\Element $route )

Zugangsberechtigung konfigurieren

Zugangsberechtigung konfigurieren

Parameters

$routeObject
$route

Returns

Alvine\Security\Authorization\DefaultAccessControlList|null
protected Alvine\Types\NodeList
# getRouteParameterMap( Alvine\Application\Web\Route $routeObject, Alvine\Xml\Element $route )

Parameterdefinition auslesen

Parameterdefinition auslesen

Parameters

$routeObject
$route

Returns

Alvine\Types\NodeList

Throws

Alvine\Core\ParseException
protected Alvine\Types\NodeList
# getRouteLinks( Alvine\Application\Web\Route $routeObject, Alvine\Xml\Element $route )

Links aus der Route auslesen

Links aus der Route auslesen

Parameters

$routeObject
$route

Returns

Alvine\Types\NodeList
protected Alvine\Types\NodeList
# getRouteConfiguration( Alvine\Application\Web\Route $routeObject, Alvine\Xml\Element $route )

Konfiguration auslesen

Konfiguration auslesen

Parameters

$routeObject
$route

Returns

Alvine\Types\NodeList
Methods inherited from Alvine\Application\Web\Route\Parser
__construct(), createRoute(), getParser()
Properties inherited from Alvine\Application\Web\Route\Parser
$file, $router
alvine.application API-Dokumentation 1.1.1 | © schukai GmbH | Impressum