# abstract class \SmartModExtLib\Webdav\ControllerAdmCardDavFs
extends \SmartAbstractAppController
{ } @->

DAV / CardDAV FileSystem :: Admin Controller
It supports only the Admin area (admin.php) so it can be used only to implement SmartAppAdminController
It does a direct output so it needs to set in controller: SMART_APP_MODULE_DIRECT_OUTPUT = TRUE

- Language: PHP
- Located at: modules/mod-webdav/libs/ControllerAdmCardDavFs.php
- Package: development:modules:Webdav
- Namespace: \SmartModExtLib\Webdav\
- Class Name: ControllerAdmCardDavFs
- Version: 20240116
- Inheritance Chart:
  class \SmartModExtLib\Webdav\ControllerAdmCardDavFs →
  - ↳ class \SmartAbstractAppController

## class Methods

final public function DavFsRunServer ( string $dav_fs_root_path, bool $show_usage_quota = false, string $nfo_title = "DAV@webAddressBook", string $nfo_signature = "Smart.Framework::CardDAV", string $nfo_prefix_crrpath = "DAV:", string $nfo_lnk_welcome = "", string $nfo_txt_welcome = "CardDAV :: Home", string $nfo_svg_logo = "modules/mod-webdav/libs/img/abook.svg" ) {} -> VOID
final public function __construct ( string $y_module_path, string $y_controller, string $y_url_page, string $y_hardcoded_area = "" ) {} @
inherited from \SmartAbstractAppController
@param: {STRING} $y_module_path: The Relative Path (followed by a trailing slash) to the current module containing the current Controller to be served by the Middleware Service ; Ex: 'modules/mod-mytest/'
@param: {STRING} $y_controller: The Controller to serve the action for the Middleware Service ; Ex: 'mytest.some-controller', referring the file 'modules/mod-mytest/some-controller.php' as the real controller to be served
@param: {STRING} $y_url_page: The URL Parameter 'page' as it comes from URL ; Ex: 'mytest.some-controller' | 'some-controller' (if 'mytest' is set as default module) | 'mytest.some-controller.html' or anything that can refere by URL to the current controller when using Apache Rewrite
@param: {STRING} $y_hardcoded_area: *OPTIONAL* If this is provided will supply a hard-coded Area for the Middleware Service, otherwise is detected from current script.php
Class constructor.
This is used to construct a middleware controller service
final public function __destruct ( ) {} @
inherited from \SmartAbstractAppController
Class Destructor.
This is used to destruct a middleware controller service
NOTICE: Use the ShutDown() function as custom destructor, it will be called after Run() safely prior to destruct this class.
The class destructors are not safe in controller instances.
See the comments from ShutDown() function in this class !
final public function IsRawPage ( ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOLEAN} TRUE if 'rawpage' is 'yes' or true ; FALSE otherwise
Test if Raw Page in ON
final public function IfDevMode ( ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOLEAN} TRUE if 'dev' environment is ON, FALSE if not (FALSE if 'prod')
Test if Development Environment is On
final public function IfDebug ( ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOLEAN} TRUE if DEBUG is ON, FALSE if not
Test if Debug is On
final public function forceRawDebug ( bool $show_output = false ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOLEAN} TRUE if Debug is ON, FALSE if not
@param: {BOOLEAN} $show_output: *Optional* ; Default is FALSE ; If set to TRUE will try to output the contents as HTML ; BEWARE, if the content is binary it should not ...
Force Debug View Over Raw Output or DownloadPacket Output Pages
The output of this pages is not displayed by default in the Debug Profiler because is not a common HTML Page
To debug this type of pages this function should be called (ONLY IN DEBUG MODE) at the end (or before return) of the controller Run() method
This is not available for direct Direct Output pages (which can be integrated in Debug Profiler only if called as sub-request in an Ajax call from any HTML page)
final public function SetDebugData ( string $title, MIXED $debug_msg ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOLEAN} TRUE if successful, FALSE if not
@param: {STRING} $title: A title for the debug message.
@param: {MIXED} $debug_msg: The data for the debug message. Ex: STRING / ARRAY
Set Custom Debug Data
If Debug is turned on, this area of Debug messages will be displayed in Modules section
final public function ControllerGetParam ( string $param ) {} -> STRING
inherited from \SmartAbstractAppController
@return: {STRING} The value for the selected parameter
@param: {ENUM} $param: The selected parameter
Get the value for a Controller parameter
The valid param values are:
app-env :: ex: dev | prod ; based on: SmartEnvironment::ifDevMode()
app-namespace :: ex: smartframework.default (the app namespace as defined in etc/init.php)
app-domain :: ex: 127.0.0.1|localhost|sdom.dom.ext|dom.ext (the domain set in configs, that may differ by area: $configs['app']['index-domain'] | $configs['app']['admin-domain'])
release-hash :: ex: 29bp3w (the release hash based on app framework version, framework release and modules version)
module-area :: ex: index / admin
module-name :: ex: mod-samples
module-path :: ex: modules/mod-samples/
module-view-path :: ex: modules/mod-samples/views/
module-model-path :: ex: modules/mod-samples/models/
module-lib-path :: ex: modules/mod-samples/libs/
module-tpl-path :: ex: modules/mod-samples/templates/
module-plugins-path :: ex: modules/mod-samples/plugins/
module-translations-path :: ex: modules/mod-samples/translations/
module :: ex: samples (1st part from controller, before .)
action :: ex: test (2nd part from controller, after .)
controller :: ex: samples.test
url-proto :: ex: http | https (the current server protocol)
url-proto-addr :: ex: http:// | https:// (the current server protocol address)
url-basedomain :: ex: 127.0.0.1|localhost|dom.ext (the curent server base domain, or IP)
url-domain :: ex: 127.0.0.1|localhost|sdom.dom.ext (the curent server domain, or IP)
url-port :: ex: 80 | 443 | 8080 ... (the current server port)
url-port-addr :: ex: '' | '' | ':8080' ... (the current server port address ; empty for port 80 and 443 ; for the rest of ports will be :portnumber)
url-script :: ex: index.php | admin.php | task.php
url-path :: ex: /sites/smart-framework/
url-addr :: ex: http(s)://127.0.0.1|localhost/sites/smart-framework/
url-page :: ex: samples.test | test (if samples is the default module) ; this is returning the URL page variable as is in the URL (it can be the same as 'controller' or if rewrite is used inside framework can vary
url-query :: ex: ?page=test&ofs=10
url-uri :: ex: /sites/smart-framework/index|admin.php{/some/path/}?page=test&ofs=10
uri-path :: ex: {/some/path/}
lang :: ex: en
charset :: ex: UTF-8
timezone :: ex: UTC
final public function ConfigParamGet ( string $param, string $type = "" ) {} -> MIXED
inherited from \SmartAbstractAppController
@return: {MIXED} The value for the selected parameter. If the Config parameter does not exists, will return an empty string
@param: {ENUM} $param: The selected configuration parameter ; Examples: 'app.info-url' will get value from $configs['app']['info-url'] ; 'regional.decimal-separator' will get the value (string) from $configs['regional']['decimal-separator'] ; 'regional' will get the value (array) from $configs['regional']
@param: {ENUM} $type: The type to pre-format the value: 'array', 'string', 'boolean', 'integer', 'numeric' OR '' to leave the value as is (raw)
Get the value for a Config parameter from the app $configs array
final public function RequestMethodGet ( ) {} -> STRING
inherited from \SmartAbstractAppController
@return: {STRING} The value of the REQUEST_METHOD HTTP Variable (from server-side)
Get the HTTP Request Method (REQUEST_METHOD) in a controller
final public function RequestPathGet ( ) {} -> STRING
inherited from \SmartAbstractAppController
@return: {STRING} The value of the PATH_INFO Request if Set or Empty String
Get the Path Request Variable (PATH_INFO) in a controller
final public function RequestVarsGet ( ) {} -> ARRAY
inherited from \SmartAbstractAppController
@return: {ARRAY} Associative Array of Request Variables
Get all the Request Variables from (GET/POST) in a controller
final public function RequestVarGet ( string $key, MIXED $defval = null, ENUM $type = "" ) {} -> MIXED
inherited from \SmartAbstractAppController
@return: {MIXED} The value of the choosen Request (GET/POST) variable
@param: {STRING} $key: The name (key) of the GET or POST variable (if the variable is set in both GET and POST, the GPC as set in PHP.INI sequence will overwrite the GET with POST, thus the POST value will be get).
@param: {MIXED} $defval: The default value (if a type is set must be the same type) of that variable in the case was not set in the Request (GET/POST). By default it is set to null.
@param: {ENUM} $type: The type of the variable ; Default is '' (no enforcing). This can be used to enforce a type for the variable as: ['enum', 'list', 'of', 'allowed', 'values'], 'array', 'string', 'boolean', 'integer', 'integer+', 'integer-', 'decimal1', 'decimal2', 'decimal3', 'decimal4', 'numeric'.
Get a Request Variable (GET/POST) in a controller
final public function IsAjaxRequest ( ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOLEAN} TRUE if HTTP_X_REQUESTED_WITH is xmlhttprequest, FALSE otherwise
Return TRUE if the Request was made via AJAX
final public function CookieVarGet ( string $name ) {} -> MIXED
inherited from \SmartAbstractAppController
@return: {MIXED} The value of the choosen Cookie variable or null if not set
@param: {STRING} $name: The cookie name from COOKIES variable.
Get a Cookie Variable (COOKIES) in a controller
final public function CookieVarSet ( string $name, string $data, int $expire = 0, string $path = "/", string $domain = "@", string $samesite = "@", bool $secure = false, bool $httponly = false ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOLEAN} TRUE if Set, FALSE if Not
@param: {STRING} $name: The cookie name
@param: {STRING} $data: The cookie data
@param: {STRING} $expire: The cookie expire time in seconds since now (zero for session cookies) ; default is zero to set as session cookie (expires with browser session, will be unset after browser is closed)
@param: {STRING} $path: The cookie path ; default is /
@param: {STRING} $domain: The cookie domain ; default is @ (will get as it is set in SMART_FRAMEWORK_COOKIES_DEFAULT_DOMAIN if defined or '') ; can be explicit set
@param: {ENUM} $samesite: The cookie SameSite policy ; default is @ (will get as it is set in SMART_FRAMEWORK_COOKIES_DEFAULT_SAMESITE if defined or '') ; valid values: '', 'Lax', 'Strict', 'None' ; if '' will use the old behaviour ; if 'None' will enforce $secure=true as the new browsers are requiring and will work only over https secure connections
@param: {BOOL} $secure: The cookie secure policy ; if set to TRUE will send cookies only via https secure connections ; default is FALSE ; if the SameSite is set to 'None' this parameter is enforced to be TRUE
@param: {BOOL} $httponly: The cookie httponly policy ; if set to TRUE this cookies will not be available to Javascript (or any other client-side access) but only to server-side scripts
Set a Cookie Variable (COOKIES) in a controller
final public function CookieVarUnset ( string $name, string $path = "/", string $domain = "@", string $samesite = "@", bool $secure = false, bool $httponly = false ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOLEAN} TRUE if Set, FALSE if Not
@param: {STRING} $name: The cookie name
@param: {STRING} $path: The cookie path ; default is /
@param: {STRING} $domain: The cookie domain ; default is @ (will get as it is set in SMART_FRAMEWORK_COOKIES_DEFAULT_DOMAIN if defined or '') ; can be explicit set
@param: {ENUM} $samesite: The cookie SameSite policy ; default is @ (will get as it is set in SMART_FRAMEWORK_COOKIES_DEFAULT_SAMESITE if defined or '') ; valid values: '', 'Lax', 'Strict', 'None' ; if '' will use the old behaviour ; if 'None' will enforce $secure=true as the new browsers are requiring and will work only over https secure connections
@param: {BOOL} $secure: The cookie secure policy ; if set to TRUE will send cookies only via https secure connections ; default is FALSE ; if the SameSite is set to 'None' this parameter is enforced to be TRUE
@param: {BOOL} $httponly: The cookie httponly policy ; if set to TRUE this cookies will not be available to Javascript (or any other client-side access) but only to server-side scripts
Unset a Cookie Variable (COOKIES) in a controller
final public function PageViewGetData ( ) {} -> ARRAY
inherited from \SmartAbstractAppController
@return: {ARRAY} an associative array as: [ heads => PageViewGetRawHeaders() ; cfgs => PageViewGetCfgs() ; vars => PageViewGetVars() ]
Get all the current controller PageView Data: (Raw) Headers, Cfgs and Vars
The general purpose of this function is to get all Page Data at once to export into persistent cache.
final public function PageViewSetData ( ARRAY $data ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
@param: {ARRAY} $data: an associative array as: [ heads => PageViewGetRawHeaders() ; cfgs => PageViewGetCfgs() ; vars => PageViewGetVars() ]
Set all the current controller PageView Data: (Raw) Headers, Cfgs and Vars
The general purpose of this function is to set all Page Data at once when imported from persistent cache.
final public function PageViewGetRawHeaders ( ) {} -> ARRAY
inherited from \SmartAbstractAppController
@return: {ARRAY} an associative array with all controller Page View (Raw) Headers currently set
Get all the current controller PageView Headers (Raw) that will be mapped to Raw HTTP Header(s)
final public function PageViewSetRawHeaders ( ARRAY $entries ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
@param: {ARRAY} $entries: an associative array to be set with elements for each raw header entry [ 'Header Key 1' => 'Header Entry One', 'Header Key 2' => 'Header Entry Two', ..., 'Header Key n' => 'Header Entry N' ]
Set a list with multiple values for RawHeaders into the current controller as PageView Headers (Raw) that will be mapped to Raw HTTP Header(s)
final public function PageViewSetRawHeader ( string $param, string $value ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
@param: {STRING} $param: the header key (Ex: 'X-XSS-Protection')
@param: {STRING} $value: the header value (Ex: '1; mode=block')
Set a single value for settings into the current controller as PageView Headers (Raw) that will be mapped to Raw HTTP Header(s)
final public function PageViewResetRawHeaders ( ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
Reset all variables for the current controller into PageView Headers (Raw) that will be mapped to Raw HTTP Header(s)
final public function PageViewGetCfg ( STRING $param ) {} -> STRING
inherited from \SmartAbstractAppController
@return: {STRING} The value currently set in CFGs if any or an empty string
@param: {STRING} $param: the parameter to be get
Get a specific value of the current controller from PageView Settings (Cfgs)
final public function PageViewGetCfgs ( ) {} -> ARRAY
inherited from \SmartAbstractAppController
@return: {ARRAY} an associative array with all controller Page View Cfgs. (Settings) currently set
Get all the current controller PageView Settings (Cfgs)
final public function PageViewSetCfgs ( ARRAY $params ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
@param: {ARRAY} $params: an associative array to be set as [ 'param1' => 'value1', ..., 'param-n' => 'val-n' ]
Set a list with multiple values for settings into the current controller as PageView Settings (Cfgs)
final public function PageViewSetCfg ( STRING $param, STRING $value ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
@param: {STRING} $param: the parameter to be set
@param: {STRING} $value: the value
Set a single value for settings into the current controller as PageView Settings (Cfgs)
final public function PageViewResetCfgs ( ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
Reset all variables for the current controller into PageView Settings (Cfgs)
final public function PageViewGetErrorMessage ( bool $errhtml = false ) {} -> STRING
inherited from \SmartAbstractAppController
@return: {STRING} the ERROR Message if Any
@param: {BOOL} $errhtml: *Optional* ; Default is FALSE ; If TRUE will return the HTML Error Message instead of default plain HTML Message
Get ERROR Message for a controller page
final public function PageViewGetStatusCode ( ) {} -> INT
inherited from \SmartAbstractAppController
@return: {ENUM} the HTTP Status Code: 2xx, 3xx, 4xx, 5xx, ... (consult middleware documentation to see what is supported) ; if an invalid error status code is used then 200 will be used instead
Get STATUS Code for a controller page
final public function PageViewSetOkStatus ( int $code ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
@param: {ENUM} $code: the HTTP OK Status Code: 200, 202, 203, 208, ... (consult middleware documentation to see what is supported) ; if an invalid error status code is used then 200 will be used instead
Set OK (2xx) STATUS Code for a controller page
final public function PageViewSetErrorStatus ( int $code, STRING/ARRAY $msg = null, string $logtype = "" ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
@param: {ENUM} $code: the HTTP Error Status Code: 400, 403, 404, 500, 503, ... (consult middleware documentation to see what is supported) ; if an invalid error status code is used then 500 will be used instead
@param: {STRING/ARRAY} $msg: The detailed message that will be displayed public near the status code ; can be string or array [ 0 => message ; 1 => htmlmessage ]
@param: {ENUM} $logtype: *Optional* ; Default is '' ; available values: '' | 'WARN' | 'NOTICE'
Set Error Status and Optional Message for a controller page
The Controller should stop the execution after calling this function using 'return;' or ending the 'Run()' main function
final public function PageViewSetRedirectUrl ( string $url, int $code ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
@param: {STRING} $url: The absolute URL to redirect the page to (Ex: http://some-domain.ext/some-page.html)
@param: {ENUM} $code: the HTTP Error Status Code: 301, 302, ... (consult middleware documentation to see what is supported) ; if an invalid error status code is used then 302 will be used instead
Set Redirect URL for a controller page
The Controller should stop the execution after calling this function using 'return;' or ending the 'Run()' main function
final public function PageViewCreateSemaphores ( array $semaphores ) {} -> STRING
inherited from \SmartAbstractAppController
@return: {STRING} The list of Semaphores: ex: '<semaphore1>,<semaphore2>'
@param: {ARRAY} $semaphores: Ex: [ 'semaphore1', 'semaphore2' ]
Create a Page View Semaphores List from an Array
This creates a semaphores list for templating, that can be used with a special variable 'semaphore' to signal templates different semaphore conditions (ex: if a semaphore contains a certain <value> load or not a portion of tpl code)
final public function PageViewGetVar ( STRING $param ) {} -> MIXED
inherited from \SmartAbstractAppController
@return: {MIXED} the content of the specific PageView variable currently set
@param: {STRING} $param: the variable to be get
Get the current controller PageView specific Var
final public function PageViewGetVars ( ) {} -> ARRAY
inherited from \SmartAbstractAppController
@return: {ARRAY} an associative array with all the controller Page View variables currently set
Get all the current controller PageView Vars
final public function PageViewSetVars ( ARRAY $params ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
@param: {ARRAY} $params: an associative array to be set as [ 'variable1' => 'value1', ..., 'variable-n' => 'val-n' ]
Set a list with multiple values for variables into the current controller into PageView Vars
final public function PageViewSetVar ( STRING $param, STRING $value, bool $overwrite = true ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
@param: {STRING} $param: the variable to be set
@param: {STRING} $value: the value
@param: {BOOL} $overwrite: overwrite (default is TRUE) ; set to FALSE to set only if value is empty
Set a single value for the current controller into PageView Vars, with Optional OverWrite (if not empty) parameter
final public function PageViewPrependVar ( STRING $param, STRING $value ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
@param: {STRING} $param: the variable to prepend value to
@param: {STRING} $value: the value
Prepend a single value to a variable for the current controller into PageView Vars
final public function PageViewAppendVar ( STRING $param, STRING $value ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
@param: {STRING} $param: the variable to append value to
@param: {STRING} $value: the value
Append a single value to a variable for the current controller into PageView Vars
final public function PageViewResetVars ( ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
Reset all variables for the current controller into PageView Vars and unset all keys
final public function PageViewResetVar ( STRING $param ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if OK, FALSE if not
@param: {STRING} $param: the variable to be reset (unset)
Reset a single variable value for the current controller into PageView Vars and unset the key
final public function PageCacheisActive ( ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if Active, FALSE if not
Test if the Page Cache (system) is active or not
This is based on PersistentCache
final public function PageCacheSafeKey ( string $y_key_or_realm ) {} -> STRING
inherited from \SmartAbstractAppController
@return: {STRING} The safe prepared Key or Realm
Prepare a Page Cache SAFE Key or Realm
This is based on PersistentCache
final public function PageGetFromCache ( string $storage_namespace, string $unique_key ) {} -> MIXED
inherited from \SmartAbstractAppController
@return: {MIXED} If the PersistentCache is active and value was set will return a single (STRING) or multiple (ARRAY) Page Settings / Page Values ; otherwise will return a NULL value.
@param: {STRING} $storage_namespace: the cache storage namespace, used to group keys
@param: {STRING} $unique_key: the unique cache key
Get a Page from the (Persistent) Cache
final public function PageSetInCache ( string $storage_namespace, string $unique_key, MIXED $content, int $expiration ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if the PersistentCache is active and value was set ; FALSE in the rest of the cases
@param: {STRING} $storage_namespace: the cache storage namespace, used to group keys
@param: {STRING} $unique_key: the unique cache key
@param: {MIXED} $content: the cache content as a STRING or an ARRAY with Page Value(s) / Page Setting(s)
@param: {INTEGER} $expiration: The page cache expiration in seconds ; 0 will not expire
Set a Page into the (Persistent) Cache
final public function PageUnsetFromCache ( string $storage_namespace, string $unique_key ) {} -> BOOL
inherited from \SmartAbstractAppController
@return: {BOOL} TRUE if the PersistentCache is active and value was unset ; FALSE in the rest of the cases
@param: {STRING} $storage_namespace: the cache storage namespace, used to group keys
@param: {STRING} $unique_key: the unique cache key
Unset a Page from the (Persistent) Cache
public function Initialize ( ) {} -> MIXED
inherited from \SmartAbstractAppController
@return: {MIXED} *OPTIONAL* If an ERROR occurs during initialize it can return FALSE or any valid and supported HTTP ERR Status Codes as 4xx / 5xx to avoid continue and dissalow calling the Run() method ; otherwise it can return TRUE or VOID ; or it can return any SUCCESS or REDIRECT HTTP Status Codes 2xx / 3xx and this will also prevent executing Run() method (but in this situation an output, at least 'main' or 'redirect-url' must be set)
This is a pre Run() function
This function will be called before Run()
public function ShutDown ( ) {} -> VOID
inherited from \SmartAbstractAppController
This is the post Initialize() / post Run() function
This function will be called after Initialize() and Run() wether or not Run() is executed (Initialize() may prevent Run() to be executed but in any case Shutdown() will be executed ...)
This function is the (real) Controller Destructor - This function is optional and can be re-defined in controllers where a destructor is required.
It will replace the class destructor __destruct() which is NOT SAFE in all cases (see php bug #31570).
NOTICE:
Sometimes __destruct() for classes is not 100% safe ; example: the PHP Bug #31570 (not fixed since a very long time).
Instead of __destruct() use ShutDown() method for controllers in framework modules (which is always executed after Run() and is 100% safe).
WARNING:
Modifications for Page Settings or Page Variables are not allowed in this function, after Run() has been completed !
If controller variables are modified after Run() has completed it can produce unexpected results ...
EXAMPLE / SCENARIO:
This function (by replacing __destruct()) can be used if you have to cleanup a temporary folder (tmp/) after Run().
Because of the PHP Bug #31570, the __destruct() can't operate on relative paths and will produce wrong and unexpected results !!!
abstract public function Run ( ) {} -> MIXED
inherited from \SmartAbstractAppController
@return: {MIXED} *OPTIONAL* The HTTP Status Code: by default it does not return or it must returns 200 which is optional ; other supported HTTP Status Codes are: 202/203/204/208 (OK with notice/warning/error messages - used only for REST/APIs), 301 (Permanent Redirect), 302 (Temporary Redirect), 400 (Bad Request), 401 (Authentication Required), 403 (Forbidden), 404 (Not Found), 405 (Method Not Allowed), 410 (Gone), 422 (Unprocessable Content) / (Unprocessable Entity), 429 (Too many Requests), 500 (Internal Error), 501 (Not Implemented), 502 (Bad Gateway), 503 (Service Unavailable), 504 (Gateway Timeout) ; 204 (No Content) and 304 (Not Modified) are reserved ; if the HTTP status code is in the range of 4xx - 5xx, an extra notification message can be set as: ##EXAMPLE: $this->PageViewSetCfg('error', 'Access to this page is restricted'); return 403; ## - to have also a detailed error message to be shown near the HTTP status code) ; It also can return VOID or TRUE as HTTP Status 200 or return FALSE as HTTP Status 500
The Controller Runtime - This function is required to be re-defined in all controllers

## class Properties

## class Constants

documentation generated on: 2024-12-16 17:02:30 +0000

Smart.Framework © 2009-2024 unix-world.org