Home       Servicebereich  Projekte  Kontakt  

SPAF


SPAF - Simple PHP Application Framework

Das Simple PHP Application Framework unterstüzt den Entwickler bei der Implementierung von wartbaren Webapplikationen. Die Trennung von Programm- und Anzeigelogik wird durch den Einsatz der Template Engine Smarty erreicht. Die grundlegene Architetur der Applikation implementiert das Page Controller Pattern.

SPAF ist modular aufgebaut, so daß einzelne Komponenten relativ einfach durch individuell angepaßte Versionen ersetzt werden können. Das Framework implementiert die folgenden Rahmenfunktionen einer Webapplikation:

Download von SPAF hier.

Komponenten einer SPAF Applikation

Zentrales Applikationsscript

Das zentrale Applikationsscript (z.B. index.php) bindet SPAF.php ein und erzeugt eine Instanz der Klasse, die die Steuerung der Applikation uebernimmt. Die Applikationsklasse wird von SPAF abgeleitet.

    ##############################################################
    <?PHP
    $HOMEDIR = "/var/www/app";       # Global: homedir

    require 'global.php';
    require 'CustomApp.php';

    $spaf = new ServicePoint();
    $spaf->run();
    ?>
    ##############################################################

Die Methoden, die durch CA (current action) aufgerufen werden, sollten durch eine eigene Klasse implementiert werden, die von SPAF abgeleitet wird.

    ##############################################################
    <?PHP
    /**
     * file: CustomApp.php
     */
     
     require 'SPAF.php';
     require 'OtherClasses.php';
     class CustomApp extends SPAF
     {

         function CustomApp() {

             $spaf = new SPAF(&$this);
         }

         function login() {
             // process login action
         }

     }

     ...
    ?>
    ##############################################################

Templates

Die anzuzeigende Seite, die durch den Parameter "CP" (current page) festgelegt wird, ruft das Template file <CA>.tpl auf. Die Endung ".tpl" wird vor dem Aufruf von SPAF selbst angehaengt. Die Templates werden im Verzeichnis $HOMEDIR/templates gesucht.

Die Template-Engine Smarty erwartet eine Verzeichnis $HOMEDIR/templates_c, in dem die vorcompilierten Templates abgelegt werden. Der Webserver muss Schreibrechte in diesem Verzeichnis haben.

Konfiguration

Die Konfigurationen werden im Verzeichnis $HOMEDIR/configs gesucht. SPAF nutzt die Konfigurationsdateien:

  1. authz.conf
  2. Enthaelt die Zuordnungen vom Action/Seitenname zum Accesslevel in der Form

        <bezeichner> : <level>
    Der Zugriff auf eine Seite ist erst erlaubt, wenn die aktuelle Session einen Accesslevel von >= Page Accesslevel in authz.conf ist. Bei der Authentisierung wird der Accesslevel der Session mit der Methode
        $this->setAccess($level)
    gesetzt.



  3. error.msg
  4. Die Datei error.msg enthaelt die den Fehlernummern zugeordneten Fehlermeldungen in der Form:

        <num>: <message>

    Wichtig: Zeilenumbrueche sind in der Fehlermeldung nicht erlaubt.

    Fehlermeldungen werden mit der Methode $this->setError($number) gesetzt. Im Template steht die Meldung in den Variablen {$errorMSG} und {$MESSAGE} zur Verfuegung.



  5. messages.msg
  6. Die Datei messages.msg enthaelt allgemeine Meldungen, die in der Applikation mit setMessage($number) gesetzt werden koennen. Die Meldungstexte stehen im Template in der Templatevariable {$MESSAGE} zur Verfuegung.

    Die Zuordnung der Meldungen zu Meldungsnummern erfolgt in der Form:
        <num>: <message>

    Wichtig: Zeilenumbrueche sind in der Meldung nicht erlaubt.

Konstruktor

Wenn die eigene Applikations-Klasse einen Konstruktor definiert, muss dieser den Konstruktor der Klasse PHPApp aufrufen und sich selbst ($this) als Referenz uebergeben:

    function CustomApp(){
        // Constructor of CustomApp
        new PHPApp(&$this);
    }

Seitensteuerung

Die Seitensteuerung wird von den Klassenattributen 'CA' und 'CP' uebernommen.


< zurück  | weiter >