dbxapp 4.1.3
CMS, Shop, Workflows und modulare Geschäftsanwendungen
Loading...
Searching...
No Matches
dbxWebApp Class Reference

Bereitet den aktuellen HTTP-Request fuer dbXapp vor. More...

Inheritance diagram for dbxWebApp:
myWebApp

Public Member Functions

 get_base_url (string $uri)
 Ermittelt die Basis-URL des Servers und gibt sie zurück.
 create_new_cfg ($modul='dbx')
 Erstellt eine minimale Default-Konfiguration fuer ein Modul.
 check_uri ()
 Zerlegt REQUEST_URI in Pfad und Query-Parameter.
 parse_route_url ($url)
 Parst Permalink- und Standard-URLs in Pfad + Query-Parameter.
 build_route_url ($permalink, $params=array(), $fragment='')
 Baut eine kanonische Route-URL aus Permalink, Query-Parametern und Fragment.
 append_route_params ($url, $params=array())
 Haengt Parameter an eine vorhandene Route-URL an.
 action_scope_for_url ($url, $action, $bindings=array())
 Baut den kanonischen Scope einer Link-Aktion.
 action_policy_for_url ($url)
 Liefert die Action-Policy einer URL.
 current_action_policy ()
 Liefert die automatisch erkannte Policy des aktuellen Requests.
 current_action_request_is_valid (array $policy=array())
 Prueft den Action-Token des aktuellen Requests ohne Modulcode auszufuehren.
 route_param_prefix ($url)
 Prefix fuer Template-Links wie {self}dbx_design=desktop.
 get_request_route_string ($baseUri='')
 Liefert den Routen-Teil des aktuellen Requests (Permalink + Query).
 strip_unwanted_route_params ($params, $unwanted='')
 Entfernt unerwuenschte Parameter aus einem Param-Array.
 get_self_url ($permalink, $unwanted)
 Baut die aktuelle Self-URL ohne unerwuenschte DBX-Steuerparameter.
 memory_switch_params ()
 Liefert die Remember-/Memory-Schalter, die nicht in Permalinks haengen duerfen.
 normalize_self_url ($url)
 Bereinigt eine Self-/Menu-URL von Memory-Schaltern in Pfad und Query.
 peel_glued_params_from_path ($path, &$params=array())
 Entfernt angeklebte Query-Parameter aus einem Permalink-Pfad.
 normalize_route_params ($params)
 Normalisiert Query-Parameter auf string-Werte.
 get_base_uri ()
 Liefert das Basisverzeichnis des Entry Points als URI.
 get_permalink ($uri)
 Ermittelt den Permalink-Anteil hinter der Basis-URI.
 setRequestUriToGet ()
 Spiegelt Query-Parameter aus REQUEST_URI nach $_GET.
 check_request ()
 Normalisiert den aktuellen HTTP-Request fuer den Kernel.
 canonical_home_redirect_target ()
 Ermittelt das 301-Ziel fuer den historischen Startseiten-Permalink.
 apply_canonical_home_redirect ()
 Sendet den kanonischen Startseiten-Redirect, sofern er fuer den Request gilt.
 content_permalink_redirect_target ()
 Liefert das Ziel einer sprachabhängigen Content-Weiterleitung.
 apply_content_permalink_redirect ()
 Sendet eine konfigurierte permanente Content-Weiterleitung.
 get_is_resorce ($ext)
 Prueft, ob eine Dateiendung als direkt auslieferbare Ressource gilt.
 check_config ()
 Stellt die zentrale dbx-Konfiguration sicher.
 check_missing ()
 Behandelt fehlende statische Ressourcen.
 check_remember ()
 Uebernimmt persistente UI-/Systemwerte aus Remember in den Request.
 check_perma ()
 Loest Permalink, Home, Admin und explizite Modulrouten auf.
 check_modul ()
 Prueft das aktive Modul und setzt bei fehlendem Modul dbxHome.
 check_design ()
 Bestimmt das aktive Design fuer den Request.
 check_lng ()
 Prueft und speichert die aktive Sprache.
 translate ($content, $lng='')
 Wendet die globale dbx/translate.php auf Inhalt an.
 del_add_css ($content)
 Ersetzt [dbx:add_css] durch im Request gesammelte CSS-Fragmente.
 del_add_js ($content)
 Ersetzt [dbx:add_js] durch im Request gesammelte JS-Fragmente.
 out_filter ($content)
 Fuehrt den zentralen Ausgabe-Filter aus.
 add_norep ($content)
 Setzt geschuetzte norep-Platzhalter am Ende wieder ein.
 get_session_rec ($fld, $default='')
 design_load ($modul_content)
 add_editor_files_data ($content)
 run ()

Detailed Description

Bereitet den aktuellen HTTP-Request fuer dbXapp vor.

Die Klasse ist kein Router im SPA-Sinn. Sie normalisiert den klassischen PHP-Request fuer den Single Entry Point index.php:

  • Basis-URL und Self-URL bestimmen
  • Permalink und Query-Parameter aufloesen
  • Modul, Design, Sprache und Content-Kontext setzen
  • statische Ressourcen ausliefern
  • Design-Templates und Outputfilter vorbereiten

Beispiel aus dem Frontcontroller-Kontext:

$web = dbx()->get_system_obj('dbxWebApp');
$web->check_request();
$web->check_modul();
$web->check_design();
DBX schema administration.

Definition at line 26 of file dbxWebApp.class.php.

Member Function Documentation

◆ action_policy_for_url()

dbxWebApp::action_policy_for_url ( $url)

Liefert die Action-Policy einer URL.

Reine Navigation ergibt ein leeres Array und wird von dbxApi::action_url() unveraendert zurueckgegeben.

Parameters
string$urlZu pruefende URL.
Returns
array

Definition at line 812 of file dbxWebApp.class.php.

References $url, and parse_route_url().

◆ action_scope_for_url()

dbxWebApp::action_scope_for_url ( $url,
$action,
$bindings = array() )

Baut den kanonischen Scope einer Link-Aktion.

Der Scope bindet Modul, Run-Kontext, Aktionsname und deklarierte IDs. Transportparameter wie Ajax, Fensterziel oder das Token selbst sind absichtlich nicht enthalten. Dadurch funktioniert derselbe Link als normaler GET und als Ajax-POST innerhalb eines Reports.

Parameters
string$urlZiel-URL.
string$actionKanonischer Aktionsname.
array$bindingsParameterliste oder konkrete Binding-Werte.
Returns
string Kompakter Scope fuer dbxApi::action_token().

Definition at line 507 of file dbxWebApp.class.php.

References $url, and parse_route_url().

◆ add_editor_files_data()

dbxWebApp::add_editor_files_data ( $content)

Definition at line 2121 of file dbxWebApp.class.php.

References $content, $file, $files, and $json.

◆ add_norep()

dbxWebApp::add_norep ( $content)

Setzt geschuetzte norep-Platzhalter am Ende wieder ein.

Parameters
string$contentAusgabeinhalt mit [norep_*]-Markern.
Returns
string Inhalt mit wieder eingesetzten Fragmenten.

Definition at line 2059 of file dbxWebApp.class.php.

References $_SESSION, and $content.

◆ append_route_params()

dbxWebApp::append_route_params ( $url,
$params = array() )

Haengt Parameter an eine vorhandene Route-URL an.

Vorhandene Query-Parameter bleiben erhalten und werden mit den neuen Werten ueberschrieben, wenn derselbe Key erneut gesetzt wird.

Beispiel:

$url = dbx()->append_route_params('kontakt?dbx_lng=de', ['dbx_edit' => 1]);

Ergebnis: kontakt?dbx_lng=de&dbx_edit=1

Parameters
string$urlVorhandene Route-URL.
array$paramsZusaetzliche Query-Parameter.
Returns
string Normalisierte Route-URL.

Definition at line 392 of file dbxWebApp.class.php.

References $url, $value, build_route_url(), and parse_route_url().

◆ apply_canonical_home_redirect()

dbxWebApp::apply_canonical_home_redirect ( )

Sendet den kanonischen Startseiten-Redirect, sofern er fuer den Request gilt.

Returns
bool true, wenn eine Redirect-Response gesetzt wurde.

Definition at line 1279 of file dbxWebApp.class.php.

References $target, and canonical_home_redirect_target().

◆ apply_content_permalink_redirect()

dbxWebApp::apply_content_permalink_redirect ( )

Sendet eine konfigurierte permanente Content-Weiterleitung.

Returns
bool true, wenn die Redirect-Response gesetzt wurde.

Definition at line 1351 of file dbxWebApp.class.php.

References $target, and content_permalink_redirect_target().

◆ build_route_url()

dbxWebApp::build_route_url ( $permalink,
$params = array(),
$fragment = '' )

Baut eine kanonische Route-URL aus Permalink, Query-Parametern und Fragment.

Beispiel:

$url = dbx()->build_route_url('kontakt', ['dbx_lng' => 'de'], '#form');

Ergebnis: kontakt?dbx_lng=de#form

Parameters
string$permalinkRelativer Permalink ohne fuehrenden Slash.
array$paramsQuery-Parameter als Key/Value-Array.
string$fragmentOptionales Fragment inklusive #.
Returns
string Zusammengesetzte Route-URL.

Definition at line 355 of file dbxWebApp.class.php.

References normalize_route_params().

Referenced by append_route_params(), get_self_url(), normalize_self_url(), and route_param_prefix().

◆ canonical_home_redirect_target()

dbxWebApp::canonical_home_redirect_target ( )

Ermittelt das 301-Ziel fuer den historischen Startseiten-Permalink.

home bleibt intern der Permalink des konfigurierten Content-Datensatzes, ist extern aber nur ein Alias der Basis-URL. Explizite Modul- und Aktionsrouten werden nicht umgedeutet.

Returns
string Kanonische Basis-URL oder leer, wenn kein Redirect gilt.

Definition at line 1241 of file dbxWebApp.class.php.

References $_SERVER, and $method.

Referenced by apply_canonical_home_redirect().

◆ check_config()

dbxWebApp::check_config ( )

Stellt die zentrale dbx-Konfiguration sicher.

Returns
void

Definition at line 1503 of file dbxWebApp.class.php.

References $config, $ok, and create_new_cfg().

◆ check_design()

dbxWebApp::check_design ( )

Bestimmt das aktive Design fuer den Request.

Admin-Module duerfen ins Admin-Design wechseln, normale Benutzer bleiben im User-Design. Installations-/Intro-Zustaende koennen das Zielmodul und Design explizit umschalten.

Returns
void

Definition at line 1891 of file dbxWebApp.class.php.

References $admin, $ajax, $config, $design, $ok, $page, and is_design().

◆ check_lng()

dbxWebApp::check_lng ( )

Prueft und speichert die aktive Sprache.

Returns
void

Definition at line 1967 of file dbxWebApp.class.php.

References $config, $lng, $ok, and get_remember_var().

◆ check_missing()

dbxWebApp::check_missing ( )

Behandelt fehlende statische Ressourcen.

Existiert die Ressource doch im Projektpfad, wird sie direkt ausgeliefert. Andernfalls wird der Fehlzugriff in dbxMissing gezaehlt.

Returns
bool True, wenn der Request als fehlende Ressource behandelt wurde.

Definition at line 1535 of file dbxWebApp.class.php.

◆ check_modul()

dbxWebApp::check_modul ( )

Prueft das aktive Modul und setzt bei fehlendem Modul dbxHome.

Returns
void

Definition at line 1875 of file dbxWebApp.class.php.

References is_modul().

◆ check_perma()

dbxWebApp::check_perma ( )

Loest Permalink, Home, Admin und explizite Modulrouten auf.

Reihenfolge:

  • explizite dbx_modul/dbx_run1 Route gewinnt
  • cid/dbx_cid kann direkt Content setzen
  • Home-Route nutzt dbxHome-Konfiguration
  • admin schaltet auf dbxAdmin
  • sonst live im Modul dbxContent aufloesen
  • unbekannte Permalinks mit HTTP 404 auf der konfigurierten Home-Seite zeigen
Returns
void

Definition at line 1716 of file dbxWebApp.class.php.

References $home, $lng, $resolved, dbx_accessible_lngs(), load_content_cache_classes(), and dbx\dbxContent\dbxContentPermalinkIndex\resolve().

◆ check_remember()

dbxWebApp::check_remember ( )

Uebernimmt persistente UI-/Systemwerte aus Remember in den Request.

Betroffen sind Design, Edit-Modus, Sprache und Farbschema.

Returns
void

Definition at line 1579 of file dbxWebApp.class.php.

References $design, and $lng.

◆ check_request()

dbxWebApp::check_request ( )

Normalisiert den aktuellen HTTP-Request fuer den Kernel.

Diese Methode ist einer der ersten Frontcontroller-Schritte. Sie liest JSON-Body, klassische GET/POST-Parameter, DBX-Ajax-Hilfsfelder und Permalink-Kontext ein und schreibt daraus die zentralen Systemvariablen: dbx_permalink, dbx_self_url, dbx_base_url, dbx_base_uri, dbx_window, dbx_ajax und dbx_go.

Beispiel:

$web = dbx()->get_system_obj('dbxWebApp');
$web->check_request();
Returns
void

Definition at line 1139 of file dbxWebApp.class.php.

References $_GET, $_POST, $ajax, get_base_uri(), get_base_url(), get_permalink(), get_request_route_string(), get_self_url(), and parse_route_url().

◆ check_uri()

dbxWebApp::check_uri ( )

Zerlegt REQUEST_URI in Pfad und Query-Parameter.

Returns
string Request-Pfad ohne Querystring.

Definition at line 254 of file dbxWebApp.class.php.

References $_GET, $_SERVER, $value, and parse_url().

◆ content_permalink_redirect_target()

dbxWebApp::content_permalink_redirect_target ( )

Liefert das Ziel einer sprachabhängigen Content-Weiterleitung.

Die Weiterleitungen werden redaktionell im Modul dbxContent gepflegt. Erlaubt sind ausschließlich die Basis-URL oder gültige interne Flat-Permalinks. Explizite Modul- und Aktionsrouten bleiben unberührt.

Returns
string Absolute Ziel-URL oder leer.

Definition at line 1298 of file dbxWebApp.class.php.

References $_SERVER, and $method.

Referenced by apply_content_permalink_redirect().

◆ create_new_cfg()

dbxWebApp::create_new_cfg ( $modul = 'dbx')

Erstellt eine minimale Default-Konfiguration fuer ein Modul.

Parameters
string$modulModulname.
Returns
array Erzeugte Konfiguration.

Definition at line 223 of file dbxWebApp.class.php.

References $config.

Referenced by check_config().

◆ current_action_policy()

dbxWebApp::current_action_policy ( )

Liefert die automatisch erkannte Policy des aktuellen Requests.

Returns
array

Definition at line 843 of file dbxWebApp.class.php.

Referenced by current_action_request_is_valid(), and run().

◆ current_action_request_is_valid()

dbxWebApp::current_action_request_is_valid ( array $policy = array())

Prueft den Action-Token des aktuellen Requests ohne Modulcode auszufuehren.

Requests ohne Action-Policy sind normale Navigation bzw. normale dbxForm-POSTs und gelten hier als gueltig. Deren eigener Formularschutz wird weiterhin ausschliesslich von dbxForm ausgewertet.

Parameters
array$policyOptional bereits ermittelte Policy.
Returns
bool

Definition at line 857 of file dbxWebApp.class.php.

References current_action_policy(), and if.

Referenced by run().

◆ del_add_css()

dbxWebApp::del_add_css ( $content)

Ersetzt [dbx:add_css] durch im Request gesammelte CSS-Fragmente.

Parameters
string$contentAusgabeinhalt.
Returns
string Inhalt mit eingesetztem CSS.

Definition at line 2009 of file dbxWebApp.class.php.

References $_SESSION, $content, and $css.

◆ del_add_js()

dbxWebApp::del_add_js ( $content)

Ersetzt [dbx:add_js] durch im Request gesammelte JS-Fragmente.

Parameters
string$contentAusgabeinhalt.
Returns
string Inhalt mit eingesetztem JavaScript.

Definition at line 2027 of file dbxWebApp.class.php.

References $_SESSION, and $content.

◆ design_load()

dbxWebApp::design_load ( $modul_content)

Definition at line 2092 of file dbxWebApp.class.php.

References $ajax, $content, $design, $lng, and $page.

◆ get_base_uri()

dbxWebApp::get_base_uri ( )

Liefert das Basisverzeichnis des Entry Points als URI.

Returns
string URI-Pfad, z.B. /dbxapp/.

Definition at line 1067 of file dbxWebApp.class.php.

References $_SERVER, and parse_url().

Referenced by check_request(), get_request_route_string(), get_self_url(), and setRequestUriToGet().

◆ get_base_url()

dbxWebApp::get_base_url ( string $uri)

Ermittelt die Basis-URL des Servers und gibt sie zurück.

Diese Funktion bestimmt das Protokoll, die Host-Adresse und den Port, um eine vollständige URL zu generieren. Falls der Port 4221 ist, wird die Basis-URL aus einer Konfigurationsdatei gelesen.

Die URL wird für Performance-Zwecke zwischengespeichert und kann über dbx_get_Remember aus dem Cache abgerufen werden.

Parameters
string$uriDer URI, der an die Basis-URL angehängt wird.
Returns
string Die vollständige URL mit angehängtem URI.

Definition at line 152 of file dbxWebApp.class.php.

References $_SERVER, and get_remember_var().

◆ get_is_resorce()

dbxWebApp::get_is_resorce ( $ext)

Prueft, ob eine Dateiendung als direkt auslieferbare Ressource gilt.

Parameters
string$extDateiendung ohne Punkt.
Returns
int 1 = Ressource, 0 = keine Ressource.

Definition at line 1368 of file dbxWebApp.class.php.

◆ get_permalink()

dbxWebApp::get_permalink ( $uri)

Ermittelt den Permalink-Anteil hinter der Basis-URI.

Parameters
string$uriBasis-URI.
Returns
string Permalink ohne fuehrenden Slash.

Definition at line 1100 of file dbxWebApp.class.php.

References get_request_route_string(), and parse_route_url().

Referenced by check_request().

◆ get_request_route_string()

dbxWebApp::get_request_route_string ( $baseUri = '')

Liefert den Routen-Teil des aktuellen Requests (Permalink + Query).

Parameters
string$baseUri
Returns
string

Definition at line 903 of file dbxWebApp.class.php.

References $_SERVER, get_base_uri(), and parse_url().

Referenced by check_request(), get_permalink(), get_self_url(), and setRequestUriToGet().

◆ get_self_url()

dbxWebApp::get_self_url ( $permalink,
$unwanted )

Baut die aktuelle Self-URL ohne unerwuenschte DBX-Steuerparameter.

Parameters
string$permalinkAktueller Permalink/Pfad.
string$unwantedKommagetrennte Zusatzparameter, die entfernt werden.
Returns
string Bereinigte Self-URL.

Definition at line 969 of file dbxWebApp.class.php.

References build_route_url(), get_base_uri(), get_request_route_string(), parse_route_url(), and strip_unwanted_route_params().

◆ get_session_rec()

dbxWebApp::get_session_rec ( $fld,
$default = '' )

Definition at line 2080 of file dbxWebApp.class.php.

References $_SESSION, and $value.

◆ memory_switch_params()

dbxWebApp::memory_switch_params ( )

Liefert die Remember-/Memory-Schalter, die nicht in Permalinks haengen duerfen.

Returns
array<int,string>

Definition at line 985 of file dbxWebApp.class.php.

Referenced by strip_unwanted_route_params().

◆ normalize_route_params()

dbxWebApp::normalize_route_params ( $params)

Normalisiert Query-Parameter auf string-Werte.

Parameters
array$paramsUnnormalisierte Query-Parameter.
Returns
array Query-Parameter mit string-Werten.

Definition at line 1040 of file dbxWebApp.class.php.

References $normalized, and $value.

Referenced by build_route_url(), and parse_route_url().

◆ normalize_self_url()

dbxWebApp::normalize_self_url ( $url)

Bereinigt eine Self-/Menu-URL von Memory-Schaltern in Pfad und Query.

Parameters
string$url
Returns
string

Definition at line 995 of file dbxWebApp.class.php.

References $url, build_route_url(), parse_route_url(), and strip_unwanted_route_params().

◆ out_filter()

dbxWebApp::out_filter ( $content)

Fuehrt den zentralen Ausgabe-Filter aus.

Parameters
string$contentAusgabeinhalt.
Returns
string Gefilterter Inhalt.

Definition at line 2047 of file dbxWebApp.class.php.

References $content.

◆ parse_route_url()

dbxWebApp::parse_route_url ( $url)

Parst Permalink- und Standard-URLs in Pfad + Query-Parameter.

Unterstuetzt:

  • home/seite?dbx_modul=x
  • home/seite&dbx_design=test
  • ?dbx_modul=x
  • angeklebte dbx_* / key_value-Parameter im Pfad
Parameters
string$url
Returns
array{permalink:string,params:array<string,string>,fragment:string}

Definition at line 289 of file dbxWebApp.class.php.

References $url, normalize_route_params(), and peel_glued_params_from_path().

Referenced by action_policy_for_url(), action_scope_for_url(), append_route_params(), check_request(), get_permalink(), get_self_url(), normalize_self_url(), route_param_prefix(), and setRequestUriToGet().

◆ peel_glued_params_from_path()

dbxWebApp::peel_glued_params_from_path ( $path,
& $params = array() )

Entfernt angeklebte Query-Parameter aus einem Permalink-Pfad.

Parameters
string$pathPermalink-Pfad, der angeklebte Parameter enthalten kann.
array$paramsZielarray, in das gefundene Parameter geschrieben werden.
Returns
string Bereinigter Pfad ohne angeklebte Query-Parameter.

Definition at line 1008 of file dbxWebApp.class.php.

Referenced by parse_route_url().

◆ route_param_prefix()

dbxWebApp::route_param_prefix ( $url)

Prefix fuer Template-Links wie {self}dbx_design=desktop.

Parameters
string$url
Returns
string

Definition at line 882 of file dbxWebApp.class.php.

References $url, build_route_url(), and parse_route_url().

◆ run()

dbxWebApp::run ( )

◆ setRequestUriToGet()

dbxWebApp::setRequestUriToGet ( )

Spiegelt Query-Parameter aus REQUEST_URI nach $_GET.

Sinnvoll fuer Permalink-/Rewrite-Situationen, in denen PHP die Parameter nicht bereits normal in $_GET bereitstellt.

Returns
void

Definition at line 1114 of file dbxWebApp.class.php.

References $_GET, get_base_uri(), get_request_route_string(), and parse_route_url().

◆ strip_unwanted_route_params()

dbxWebApp::strip_unwanted_route_params ( $params,
$unwanted = '' )

Entfernt unerwuenschte Parameter aus einem Param-Array.

Parameters
array$paramsQuery-Parameter als Key/Value-Array.
string$unwantedKommagetrennte Zusatzparameter, die entfernt werden.
Returns
array Bereinigte Query-Parameter.

Definition at line 944 of file dbxWebApp.class.php.

References $remove, and memory_switch_params().

Referenced by get_self_url(), and normalize_self_url().

◆ translate()

dbxWebApp::translate ( $content,
$lng = '' )

Wendet die globale dbx/translate.php auf Inhalt an.

Parameters
string$contentInhalt.
string$lngSprache; leer nutzt aktive Sprache.
Returns
string Uebersetzter Inhalt.

Definition at line 1991 of file dbxWebApp.class.php.

References $content, and $lng.


The documentation for this class was generated from the following file: