Paket Application

  • Das Paket dient lediglich als Sammlung von allgemeinen Klassen die von verschiedenen DragonX Paketen verwendet werden

Klasse Accessor

  • Inspiriert durch das Feature der Eigenschaften aus C#
  • Kombiniert die Lesbarkeit und intuitive Nutzung von public Attributen mit der Kapselung durch protected Attribute und Setter/Getter Methoden
  • Public Attribute stehen wie gewohnt nach aussen hin zur Verfügung
  • Protected Attribute werden gekapselt, können aber wie public Attribute gesetzt (wenn eine Setter Methode definiert wurde) und gelesen (wenn eine Getter Methode definiert wurde) werden
  • Protected Setter/Getter Methoden verhindern das direkte Nutzen dieser, falls die Methoden im Nachhinein wieder entfernt werden
    class %packagenamespace%_%packagename%_%classname% extends DragonX_Application_Accessor_Abstract
    {
        public $string;
        protected $_integer = 0;
    
        protected function setInteger($integer)
        {
            $this->_integer = (int)$integer;
        }
    
        protected function getInteger()
        {
            return $this->_integer;
        }
    }
    $object = new %packagenamespace%_%packagename%_%classname%();
    $object->string = 'example';
    $object->integer += 1;
  • Der Konstruktur erlaubt das Setzen beliebiger Attribute durch ein Array oder eines anderen Eigenschaftobjektes. Alle Attribute werden durch die Setter Methoden gesetzt, wenn diese definiert wurden
    $first = new %packagenamespace%_%packagename%_%classname%(array('string' => 'example'));
    $second = new %packagenamespace%_%packagename%_%classname%($first);
  • 'toArray()' kann genutzt werden um alle Attribute als Array zurück zu geben. Alle Attribute werden durch die Getter Methoden gelesen, wenn diese definiert wurden
    $object = new %packagenamespace%_%packagename%_%classname%(array('string' => 'example'));
    $array = $object->toArray();
  • 'isset()' kann genutzt zur Prüfung auf Existenz bzw. Ungleichheit zu NULL und 'unset()' zum Setzen eines Attributes auf NULL genutzt werden
    $object = new %packagenamespace%_%packagename%_%classname%(array('string' => 'example'));
    $true = isset($object->string);
    unset($object->string);
    $false = isset($object->string);
  • Arrays werden unterstützt mit '_' sowohl beim einzelnen Setzen eines Wertes als auch beim Befüllen aus einem Array
    class %packagenamespace%_%packagename%_%classname% extends DragonX_Application_Accessor_Abstract
    {
        public $array = array('key' => 'value');
    }
    $object = new %packagenamespace%_%packagename%_%classname%();
    $object->array['key'] = 'value';
    $object->array_key = 'value';
    $object->fromArray(array('array' => array('key' => 'value')));
    $object->fromArray(array('array_key' => 'value'));