Dragon's Web Engine:Starý návrh
Z Dragon's Wiki
Obsah |
Hlavní třídy
Object
Object je otcem všech instancovatelných objektů. Implementuje základní metody pro pokročilou práci s objekty, kterou PHP indisponuje. Ošetřuje výjimkami volání nedefinované metody a práci s neexistující vlastnosti (proměnnými).
<?php abstract class Object { /* Vrátí jméno třídy objektu */ final public function getClass(); /* Volání nedefinované metody */ protected function __call($name, $args); /* Volání nedefinované statické metody */ protected static function __callStatic($name, $args); /* Vrátí hodnotu vlastnosti */ protected function &__get($name); /* Nastaví hodnotu vlastnosti */ protected function __set($name, $value); /* Je vlastnost definovaná? */ protected function __isset($name); /* Přístup k nedeklarované vlastnosti */ protected function __unset($name); } ?>
Kernel
Načítá moduly a obstarává jejich vzájemnou komunikaci. Přichytává hooky jednotlivých modulů k jaderným událostem během provádění skriptu.
<?php class Kernel extends Object { /* Inicializace jádra */ public static function initialize(); } ?>
Config
Poskytuje nastavení jádra a jednotlivých modulů, které o to požádají, načítá a ukládá nastavení ze a do souboru.
<?php final class Config extends Object { /* Načte konfiguraci z daného souboru, případně jen určitou sekci */ public static function load($file, $section = NULL); /* Uloží konfiguraci do souboru, případně jen určitou sekci */ public static function save($config, $file, $section = NULL); } ?>
Module
Abstraktní předek všech modulů se společnými metodami.
<?php abstract class Module { /* Závislosti na jiných modulech */ public $depends = array(); /* Jméno modulu */ public $name = ''; /* Viditelné textové informace o modulu */ public $info = ''; /* Prázdný konstruktor */ final function __construct(); /* Vrátí jméno modulu */ final function getName(); /* Vrátí informace o modulu */ protected function getInfo(); } ?>
Datové struktury
Storage
Poskytuje základní úložiště klíčů a hodnot.
<?php abstract class Storage extends Object, ArrayObject { /* Pouze pro čtení */ protected $readOnly = FALSE; /* Nastaví pouze pro čtení */ public function setReadOnly(); /* Vrátí status read-only */ public function isReadOnly(); } ?>
Rozhraní
ModuleInterface
Rozhraní společné všem jaderným modulům.
<?php interface ModuleInterface { /* Hook: ihned po načtení modulu */ public function initialize(); /* Hook: těsně před výstupem */ public function preOutput(); /* Hook: po výstupu */ public function postOutput(); } ?>

