/ www.portalsuite.de / Support / Portunity Portalsuite / Handbuch / 9 Einführung in die Portalsuite Objects / 9.4 Portalsuite Objects ableiten


Alle dokumentierten Objete der „Portalsuite Objects“ Bibliothek können Sie auch in eigenen Klassen ableiten und davon dann wiederum Instanzen bilden.

Beim Ableiten haben Sie wie üblich die Möglichkeit, Funktionen zu überschreiben und damit abzuändern. Dies möchten wir einmal anhand eines kleinen Beispieles mit der Klasse PTemplate zeigen:

Templateauszug: <? Class MeinEigenesTemplate extends PTemplate {      var $MeinTemplateValue;      function MeinEigenesTemplate ()      {           $this->MeinTemplateValue = "";           parent::PTemplate ();      }      function Field ($Feld)      {           if ($Feld=="TemplateValue")                return ($this->MeinTemplateValue);      }      function WriteField ($Feld,$Inhalt)      {           if ($Feld=="TemplateValue")                $this->MeinTemplateValue = $Inhalt;      }      function Valid ()      {           return (1);      } } $EinTestTemplate = new MeinEigenesTemplate; $EinTestTemplate->WriteField ($Feld," <? echo (\"Dies ist ein Testtemplate ;-)\"); ?> "); $EinTestTemplate->Output (); ?>

In diesem Beispiel wird von „PTemplate“ eine neue Klasse namens „MeinEigenesTemplate“ abgeleitet. Diese Klasse erbt natürlich alle Eigenschaften und Funktionen der „Portalsuite Objects“ Klasse „PTemplate“. Einige der Funktionen werden von uns jedoch überschrieben und damit ändern wir das ererbte Verhalten. Wir überschreiben die „Field“ und „WriteField“-Funktionen und biegen das Feld „TemplateValue“ auf eine von uns selbst definierte lokale Objektvariable um. Hierdurch haben wir eine Klasse generiert, welche unabhängig von der Portalsuite-Datenbank lauffähig ist und dort keine Templatedatensätze mehr repräsentiert. Aus diesem Grund wurde auch die Valid-Funktion überschrieben: Da die neue Klasse keine Datensätze der Datenbank mehr repräsentiert, sind instanzierte Objekte quasi immer gültig.

Beim Instanzieren brauchen wir dem Konstruktor keinen Templatenamen mehr übergeben und können anschließend trotzdem die WriteField zum Beschreiben unserer internen Objektvariable und die übernommene Outputfunktion zur Ausgabe und Interpretierung des „Templates“ verwenden.



[zurück] - [bookmarken] - [Druckversion] - [Weiterempfehlen] - [Kontakt] - [Impressum]





Providing unter: http://portunity.net

DSL, ENUM, Hosting, Server,...



unter: enum-center.de