X3 Framework

Adresářová struktura

/app - místo pro třídy vaší aplikace, modely, ...
/doc - tato dokumentace
/template - šablony (view)
/x3 - systémové třídy a různé utility
/x3/db.php - databázová aplikační vrstva
/x3/error.php - obsluha chyb
/x3/error_critical.php - šablona výpisu kritické chyby
/x3/error_runtime.php - šablona výpisu runtime chyb (E_WARNING, E_NOTICE)
/x3/io.php - třídy vstupu a výstupu, session handling
/x3/router.php - URL Router
/x3/templatecompiler.php - kompilátor šablon
/x3/tools.php - pomocné třídy a funkce
/.htaccess - nastavený .htaccess pro fungující URL Router
/boot.php - jádro frameworku, autoloader
/config.php - nastavení aplikace a prostředí
/index.php - spouštěcí skript
/routes.php - nastavení routování URL do tříd a metod

Postup provádění aplikace v X3 — černá skříňka

Typy výstupů z X3

Funkce Popis
function Template(string TemplateName) Na výstup je poslána šablona definovaná v TemplateName a nastaveným objektem view
function ErrorDocument(int HTTPStatus, string Template = NULL) Na výstup je poslána patřičný dokument (nastavení prefixu v config.php a nastaven HTTP status. Je-li nastaven parametr Template, je poslána specifická šablona. Opět je nastaven objekt view
function Redirect(string URL, int HTTPStatus = NULL) Přesměrování na jiné URL. Je-li nastaven HTTPStatus, bude přesměrování obsahovat příslušný HTTP stavový kód.
function Previous() Přesměrování na předchozí stránku (HTTP_REFERER)
function JSON(mixed JsonData) Odeslání JSON dat
function X3ON(string JScode = NULL, string JSdata = NULL) Odeslání X3ON dat

Nastavení aplikace — config.php

Parametr Výchozí Popis
defaultModule documents název výchozího modulu / třídy
defaultAction index název výchozí akce
defaultGlobalAction index název akce, která se provede pokud není akce definována z routeru
Base http:// výchozí adrese (používá se především v šablonách u HTML tagu )
X3Dir $_SERVER['DOCUMENT_ROOT'] Adresář s X3 frameworkem. Používá se v případě, že více webu / virtualhostů bude sdílet jedno jádro.
AjaxFlag ajax Pokud je nastavena GET proměná s tímto názvem, vrací funkce Input::IsAjax() hodnotu true. Test na AJAX je kombinace flagu v GET datech a hodnot v hlavičce HTTP_X_REQUESTED_WITH.
formIdentificator formID Identifikátor formuláře
rewriteVariable rewrite Název proměné předávané z rewrite modulu do routeru (v kombinaci s .htaccess)
DisableWarnings false Zakáže výpis upozornění X3. Neplatí pro PHP chyby.
AppClassDir app Umístění tříd vaší aplikace
ErrorDocumentName e Prefix jména šablon pro chybové dokumenty. Jméno je tvořeno prefixem a číslem chyby - např. e404 apod
UseHTMLCompiler true Povoluje kompilátor šablon. Při povoleném kompileru se nejdříve hledá šablona v adresáři TemplateSource, pokud je nalezena, provede se její překlad z HTML do PHP do adresáře TemplateOutput. Nový překlad proběhne v případě smazání PHP souboru nebo při zmeně HTML.
DB_host localhost Adresa databázového serveru
DB_name database Název databáze
DB_user root Jméno uživatele
DB_password root Heslo
DB_DEBUGMODE true Zapnutí debug režimu pro DB funkce. Ve výchozí DB třídě se logují všechny query do souboru application.log
AppDir $_SERVER['DOCUMENT_ROOT'] Fyzický adresář aplikace
TemplateSource AppDir + /html/ Zdrojové soubory šablon, je-li použit TemplateCompiler
TemplateOutput AppDir + /template/ Umístění zkompilovaných / PHP šablon
TemplateOutputCommon Umístění šablon v případě použití sdíleného jádra. Systém nejdřív hledá v lokálním umístění aplikace a poté ve společném (např. když více aplikací využívá jedno administrační rozhraní).
ParamModule mod Název GET proměné obsahující název modulu
ParamAction action Název GET proměné s akcí modulu

Třída Input

Umístění v souboru system/io.php. Je přístupná také přes alias In.

Metoda Popis
static string QueryString() synonymum k $_SERVER[QUERY_STRING]
static string RequestMethod() synonymum k $_SERVER[REQUEST_METHOD]
static bool IsPost() vrací true je li HTTP požadavek metodou POST
static bool IsGet() vrací true je li HTTP požadavek metodou GET
static bool IsAJAX() vrací true je li požadavek zaslán přes XML HTTP Request. Zjišťuje se na základě hlavičky HTTP-X-REQUESTED-WITH nebo je-li ve formuláři nastavena proměna definována v config.php jako AjaxFlag
static string Post(string $varname) synonymum k $_POST[$varname]
static string Get(string $varname) synonymum k $_GET[$varname]
static string Cookie(string $varname) synonymum k $_COOKIE[$varname]
static bool IsSubmited(string $formID) vrací true je li odeslán formulář s identifikátorem uvedeným ve $formID
static string Self() synonymum k $_SERVER[REQUEST_URI]
static bool IsFiles() vrací true jsou-li odeslány soubory (metoda POST)
static string Referer() synonymum k $_SERVER[HTTP_REFERER]
static string FilterSelf(string $remove) synonymum k $_SERVER[REQUEST_URI], ale umožňuje odfiltrovat parametry předávané v URL. Názvy parametrů jsou od sebe odděleny čárkou.

Příklady

FilterSelf

Je voláno URL /index.php?mod=test&action=select&page=3&setings=abcd.

$url = Input::FilterSelf('page,settings');

Proměná $url bude obsahovat řetězec /index.php?mod=test&action=select.

Třída Output

Umístění v souboru system/io.php. Je přístupná také přes alias Out. Třída je automaticky inicalizována v konstruktoru X3, takže je stále přístupná přes $this->view nebo $this->out. V celém systému reprezentuje výstup (View).

Metoda Popis
class Output __construct(string $content = 'text/html', string $charset = 'utf-8') Konstruktor, vytvoří nový objekt typu Output s příslušným typem a charsetem. Tyto hodnoty jsou odeslány v hlavičce, je*li výstup Template nebo ErrorDocument.
void __set(string $variable, mixed $value) Nastaví na výstup proměnou $variable na hodnotu $value.
void Assign(string $variable, mixed $value) Synonymum k __set. Zachováno kvůli kompatibilitě.
object / array GetAssigned(bool $as_array = false)
void AddHTTPHeader(string $name, string $value = NULL)
void File(string $filename, bool $exit = false)
string PassToFile(string $filename)
void SendHTTPHeaders()
object GetX3ONData(string $func = NULL, bool $data = NULL)
void Show(string $element)
void Hide(string $element)
void CSS(string $element, string $className)
void Content(string $element, string $content)

Třída Session

Umístění v souboru system/io.php. Třída je automaticky inicalizována v konstruktoru X3, takže je stále přístupná přes $this->session. Pokud chcete použít své session id, odstraňte inicializaci z konstruktoru X3.

Metoda Popis
class Session __construct(string $session_id = NULL) Konstruktor, zahájí session s uvedeným $session_id. Není-li zadáno, je použito výchozí (přiděluje PHP).
void __set(string $variable, mixed $value) Nastaví session proměnou $variable na hodnotu $value.
mixed __get(string $variable) Vrací hodnotu session proměné uvedené ve $variable.
bool destroy() Zničí aktuální session. Vrací true pokud vše proběhlo v pořádku.