Dragon's Web Engine:Starý návrh

Z Dragon's Wiki

Přejít na: navigace, hledání

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();
}
?>
soukromý prostor