26require_once __DIR__ .
'/dbxApi.php';
83 if (is_object($owner)) {
84 $this->_callback_owner = $owner;
114 $this->_callbacks[$event] = $callback;
125 $id = preg_replace(
'/[^A-Za-z0-9_]+/',
'_', $id);
126 $id = trim((
string) $id,
'_');
128 if ($id !==
'' && preg_match(
'/^[0-9]/', $id)) {
149 if (isset($this->_callbacks[$event]) && $this->_callbacks[$event] !==
'') {
150 return $this->_callbacks[$event];
153 if ($this->_callback_id ===
'') {
157 return $this->_callback_id .
'_' . $event;
169 if (is_object($this->_callback_owner)) {
170 return $this->_callback_owner;
173 if (function_exists(
'dbx')) {
174 return dbx()->get_current_owner();
191 protected function callback(
string $event, mixed $value): mixed {
194 if ($callback ===
'') {
198 $owner = $this->get_callback_owner();
200 if (!is_object($owner)) {
204 if (is_callable(array($owner, $callback))) {
205 return $owner->$callback($this, $value);
208 if (!method_exists($owner, $callback)) {
213 $method =
new ReflectionMethod($owner, $callback);
214 }
catch (ReflectionException $e) {
218 if ($method->isStatic()) {
222 return $method->invoke($owner, $this, $value);
246 public function set_property($name,$value,$section=
'',$modul=
'modul') {
247 if (!$section) $section=$this->_section;
248 if ( $modul==
'modul') $modul=
dbx()->get_system_var(
'dbx_activ_modul');
250 $this->_properties[$name]=$value;
252 dbx()->set_session_var($name,$value,$section,$modul);
266 public function get_property($name,$default=
'',$section=
'',$modul=
'modul') {
267 if (!$section) $section=$this->_section;
269 if (isset($this->_properties[$name])) {
270 $value=$this->_properties[$name];
275 if ($modul==
'modul') $modul=
dbx()->get_system_var(
'dbx_activ_modul');
276 $value=
dbx()->get_session_var($name,$default,$section,$modul);
294 if (!$section) $section=$this->_section;
297 if (isset($this->_properties[$name])) unset($this->_properties[$name]);
299 $this->_properties=array();
303 if ($modul==
'modul') $modul=
dbx()->get_system_var(
'dbx_activ_modul');
304 dbx()->delete_session_var($name,$section,$modul);
321 if (!$process) $process=
dbx()->get_session_var(
'dbx_process',0);
324 $oProcess=
dbx()->get_system_obj(
'dbxProcess');
325 $next=$oProcess->run($process);
326 $pos =$oProcess->get_property(
'stepp');
330 if ($mode==
'append') $content.=$next;
331 if ($mode==
'insert') $content =$next.$content;
332 if ($mode==
'replace') $content =$next;
348 $class =
dbx()->get_system_var(
'dbx_modul');
349 return "The Modul Classfile <b>$class</b> is undef!";
358 $url =
dbx()->get_base_url();
360 $action=
dbx()->get_modul_var(
'dbx_run1');
361 $class =
dbx()->get_system_var(
'dbx_modul');
362 $inc =
dbx()->get_system_var(
'dbx_inc');
363 $master=
dbx()->get_system_var(
'dbx_master_modul');
364 $mact =
dbx()->get_system_var(
'dbx_master_action');
365 return "Aktion=($action) Modul Inc-Classfile <b>$inc</b> from <b>$class</b> is undef!<br> Master=($master) Action=($mact)<br>Base-Url=($url)";
Gemeinsame Basisklasse fuer dbXapp-System-, Modul- und Include-Objekte.
normalize_callback_id(string $id)
Normalisiert Callback-IDs auf gueltige PHP-Methodenbestandteile.
set_callback_id(string $id)
Setzt den Namenspraefix fuer konventionelle Callback-Methoden.
get_property($name, $default='', $section='', $modul='modul')
Liest eine Objekt- oder Session-Property.
get_callback_name(string $event)
Liefert den Methodennamen fuer ein Event.
set_callback(string $event, string $callback)
Ordnet einem Event einen konkreten Methodennamen zu.
get_callback_owner()
Liefert das aktuelle Owner-Objekt fuer Callback-Aufrufe.
set_property($name, $value, $section='', $modul='modul')
Speichert eine Objekt- oder Session-Property.
set_callback_owner($owner)
Setzt ein explizites Owner-Objekt fuer Callback-Aufrufe.
dbx_next_process($content, $process='', $mode='append')
Fuegt den naechsten dbxProcess-Schritt in eine Ausgabe ein.
del_property($name, $section='', $modul='modul')
Loescht eine Objekt- oder Session-Property.
callback(string $event, mixed $value)
Fuehrt einen Callback aus und gibt dessen Rueckgabewert zurueck.
Fallback fuer nicht vorhandene Include- oder Systemklassen.
Fallback fuer nicht vorhandene Modulklassen.
dbx_get_base_dir($cut_Data=0)
DBX schema administration.