====== Bootstrap ====== **Layer:** ''Core'' · **Source:** ''lib/core/Bootstrap.php:79'' (lines 79–737) ---- class Bootstrap Central orchestrator for this blog. This class handles the sequential loading of configurations, utility functions, core services, and global security policies. ======= Docblock Metadata ======= ^ Tag ^ Value ^ | ''@category'' | Core | | ''@author'' | M.Noermoehammad | | ''@license'' | MIT | | ''@version'' | 1.0.0 | | ''@since'' | 1.0.0 | ======= Inheritance ======= //No parent, interface or trait. This is a root type.// ======= Constants (0) ======= //None.// ======= Properties (3) ======= ^ Visibility ^ Type ^ Name ^ Default ^ Line ^ | ''private static'' | ''static'' | ''$config'' | ''[]'' | 84 | | ''private static'' | ''static'' | ''$services'' | ''[]'' | 89 | | ''private static'' | ''static'' | ''$allowedExportVars'' | ''[ 'db_host', 'db_user', 'db_pwd', 'db_name', 'db_port', 'db…'' | 91 | ======= Methods (24) ======= ^ Visibility ^ Method ^ Summary ^ Line ^ | public static | ''initialize()'' | Initializes the application environment. | 134 | | private static | ''loadConfiguration()'' | Loads the configuration file and extracts required environment variables. | 164 | | private static | ''initializeServices()'' | Orchestrates service instantiation and global registry setup. | 201 | | private static | ''createDatabaseConnection()'' | (undocumented) | 249 | | private static | ''defineRoutingRules()'' | (undocumented) | 277 | | private static | ''initializeRegistry()'' | (undocumented) | 296 | | private static | ''createBaseDaos()'' | (undocumented) | 306 | | private static | ''createSession()'' | (undocumented) | 327 | | private static | ''createAuthenticator()'' | (undocumented) | 355 | | private static | ''createThemeRenderer()'' | (undocumented) | 368 | | private static | ''createFrontService()'' | (undocumented) | 381 | | private static | ''createDownloadChain()'' | (undocumented) | 398 | | private static | ''createContentDaos()'' | (undocumented) | 418 | | private static | ''storeInRegistry()'' | (undocumented) | 433 | | private static | ''createDispatcher()'' | (undocumented) | 447 | | private static | ''buildServiceMap()'' | | 461 | | private static | ''buildHandlerRegistry()'' | (undocumented) | 486 | | private static | ''buildAdminActionRegistry()'' | Build the admin action command registry and register known commands. | 516 | | private static | ''initializeI18n()'' | (undocumented) | 648 | | private static | ''applySecurity()'' | Configures HTTP response headers and global security handlers. | 665 | | private static | ''defineCspNonce()'' | (undocumented) | 677 | | private static | ''sendSecurityHeaders()'' | (undocumented) | 684 | | private static | ''sendContentSecurityPolicy()'' | (undocumented) | 706 | | private static | ''initializePostSecurity()'' | (undocumented) | 717 | ======== initialize() ======== public static function initialize(string $appRoot): AppContext //lines 134–156 (23)// Initializes the application environment. \* Performs the full bootstrap sequence: configuration, utilities, service containerization, and security header enforcement. ^ Parameter ^ Type ^ Default ^ Description ^ | ''$appRoot'' | ''string'' | //required// | The absolute path to the application root directory. | **Returns:** [[scriptlog:lib:core:appcontext|''AppContext'']] — AppContext Merged collection of configuration variables and service instances. ======== loadConfiguration() ======== private static function loadConfiguration(string $appRoot): array //lines 164–189 (26)// Loads the configuration file and extracts required environment variables. ^ Parameter ^ Type ^ Default ^ Description ^ | ''$appRoot'' | ''string'' | //required// | Path to search for config.php. | **Returns:** ''array'' — array Array containing db_host, app_url, cipher_key, etc. ======== initializeServices() ======== private static function initializeServices(array $core_vars): array //lines 201–247 (47)// Orchestrates service instantiation and global registry setup. \* Note: Registry must be populated before DAOs are instantiated to ensure data access objects have access to the active database connection. ^ Parameter ^ Type ^ Default ^ Description ^ | ''$core_vars'' | ''array'' | //required// | //none// | **Returns:** ''array'' — array Collection of ready-to-use services. ======== createDatabaseConnection() ======== private static function createDatabaseConnection(array $core_vars) //lines 249–275 (27)// ^ Parameter ^ Type ^ Default ^ Description ^ | ''$core_vars'' | ''array'' | //required// | //none// | **Returns:** ''(none declared)'' ======== defineRoutingRules() ======== private static function defineRoutingRules(): array //lines 277–294 (18)// //Takes no parameters.// **Returns:** ''array'' ======== initializeRegistry() ======== private static function initializeRegistry($dbc, array $core_vars, array $rules): void //lines 296–304 (9)// ^ Parameter ^ Type ^ Default ^ Description ^ | ''$dbc'' | ''(untyped)'' | //required// | //none// | | ''$core_vars'' | ''array'' | //required// | //none// | | ''$rules'' | ''array'' | //required// | //none// | **Returns:** ''void'' ======== createBaseDaos() ======== private static function createBaseDaos($dbc): array //lines 306–325 (20)// ^ Parameter ^ Type ^ Default ^ Description ^ | ''$dbc'' | ''(untyped)'' | //required// | //none// | **Returns:** ''array'' ======== createSession() ======== private static function createSession(array $core_vars) //lines 327–353 (27)// ^ Parameter ^ Type ^ Default ^ Description ^ | ''$core_vars'' | ''array'' | //required// | //none// | **Returns:** ''(none declared)'' ======== createAuthenticator() ======== private static function createAuthenticator($dbc, $userDao, $userToken, $validator) //lines 355–366 (12)// ^ Parameter ^ Type ^ Default ^ Description ^ | ''$dbc'' | ''(untyped)'' | //required// | //none// | | ''$userDao'' | ''(untyped)'' | //required// | //none// | | ''$userToken'' | ''(untyped)'' | //required// | //none// | | ''$validator'' | ''(untyped)'' | //required// | //none// | **Returns:** ''(none declared)'' ======== createThemeRenderer() ======== private static function createThemeRenderer($dbc) //lines 368–379 (12)// ^ Parameter ^ Type ^ Default ^ Description ^ | ''$dbc'' | ''(untyped)'' | //required// | //none// | **Returns:** ''(none declared)'' ======== createFrontService() ======== private static function createFrontService() //lines 381–396 (16)// //Takes no parameters.// **Returns:** ''(none declared)'' ======== createDownloadChain() ======== private static function createDownloadChain($dbc): array //lines 398–416 (19)// ^ Parameter ^ Type ^ Default ^ Description ^ | ''$dbc'' | ''(untyped)'' | //required// | //none// | **Returns:** ''array'' ======== createContentDaos() ======== private static function createContentDaos($dbc): array //lines 418–431 (14)// ^ Parameter ^ Type ^ Default ^ Description ^ | ''$dbc'' | ''(untyped)'' | //required// | //none// | **Returns:** ''array'' ======== storeInRegistry() ======== private static function storeInRegistry($mediaDao, $downloadService, $downloadController, $postDao, $pageDao, $topicDao): void //lines 433–445 (13)// ^ Parameter ^ Type ^ Default ^ Description ^ | ''$mediaDao'' | ''(untyped)'' | //required// | //none// | | ''$downloadService'' | ''(untyped)'' | //required// | //none// | | ''$downloadController'' | ''(untyped)'' | //required// | //none// | | ''$postDao'' | ''(untyped)'' | //required// | //none// | | ''$pageDao'' | ''(untyped)'' | //required// | //none// | | ''$topicDao'' | ''(untyped)'' | //required// | //none// | **Returns:** ''void'' ======== createDispatcher() ======== private static function createDispatcher($dbc, $themeRenderer) //lines 447–458 (12)// ^ Parameter ^ Type ^ Default ^ Description ^ | ''$dbc'' | ''(untyped)'' | //required// | //none// | | ''$themeRenderer'' | ''(untyped)'' | //required// | //none// | **Returns:** ''(none declared)'' ======== buildServiceMap() ======== private static function buildServiceMap($sessionMaker, $sanitizer, $userDao, $userToken, $validator, $configDao, $configService, $authenticator, $dispatcher, $themeRenderer, $mediaDao, $downloadService, $downloadController, $frontService, $postDao, $pageDao, $topicDao): array //lines 461–484 (24)// ^ Parameter ^ Type ^ Default ^ Description ^ | ''$sessionMaker'' | ''(untyped)'' | //required// | //none// | | ''$sanitizer'' | ''(untyped)'' | //required// | //none// | | ''$userDao'' | ''(untyped)'' | //required// | //none// | | ''$userToken'' | ''(untyped)'' | //required// | //none// | | ''$validator'' | ''(untyped)'' | //required// | //none// | | ''$configDao'' | ''(untyped)'' | //required// | //none// | | ''$configService'' | ''(untyped)'' | //required// | //none// | | ''$authenticator'' | ''(untyped)'' | //required// | //none// | | ''$dispatcher'' | ''(untyped)'' | //required// | //none// | | ''$themeRenderer'' | ''(untyped)'' | //required// | //none// | | ''$mediaDao'' | ''(untyped)'' | //required// | //none// | | ''$downloadService'' | ''(untyped)'' | //required// | //none// | | ''$downloadController'' | ''(untyped)'' | //required// | //none// | | ''$frontService'' | ''(untyped)'' | //required// | //none// | | ''$postDao'' | ''(untyped)'' | //required// | //none// | | ''$pageDao'' | ''(untyped)'' | //required// | //none// | | ''$topicDao'' | ''(untyped)'' | //required// | //none// | **Returns:** ''array'' ======== buildHandlerRegistry() ======== private static function buildHandlerRegistry($themeRenderer): void //lines 486–509 (24)// ^ Parameter ^ Type ^ Default ^ Description ^ | ''$themeRenderer'' | ''(untyped)'' | //required// | //none// | **Returns:** ''void'' ======== buildAdminActionRegistry() ======== private static function buildAdminActionRegistry(): void //lines 516–646 (131)// Build the admin action command registry and register known commands. //Takes no parameters.// **Returns:** ''void'' — void ======== initializeI18n() ======== private static function initializeI18n(): void //lines 648–657 (10)// //Takes no parameters.// **Returns:** ''void'' ======== applySecurity() ======== private static function applySecurity(): void //lines 665–675 (11)// Configures HTTP response headers and global security handlers. \* Uses utility functions to set CSP, XSS protection, and frame options. Also initializes error handling (Whoops) and HTML purification. \* @return void //Takes no parameters.// **Returns:** ''void'' ======== defineCspNonce() ======== private static function defineCspNonce(): void //lines 677–682 (6)// //Takes no parameters.// **Returns:** ''void'' ======== sendSecurityHeaders() ======== private static function sendSecurityHeaders(): void //lines 684–704 (21)// //Takes no parameters.// **Returns:** ''void'' ======== sendContentSecurityPolicy() ======== private static function sendContentSecurityPolicy(): void //lines 706–715 (10)// //Takes no parameters.// **Returns:** ''void'' ======== initializePostSecurity() ======== private static function initializePostSecurity(): void //lines 717–736 (20)// //Takes no parameters.// **Returns:** ''void'' ======= Imports ======= ^ Alias ^ Fully-qualified name ^ | ''DownloadController'' | [[scriptlog:lib:controller:downloadcontroller|''Scriptlog\Controller\DownloadController'']] | | ''ConfigurationDao'' | [[scriptlog:lib:dao:configurationdao|''Scriptlog\Dao\ConfigurationDao'']] | | ''MediaDao'' | [[scriptlog:lib:dao:mediadao|''Scriptlog\Dao\MediaDao'']] | | ''PageDao'' | [[scriptlog:lib:dao:pagedao|''Scriptlog\Dao\PageDao'']] | | ''PostDao'' | [[scriptlog:lib:dao:postdao|''Scriptlog\Dao\PostDao'']] | | ''TopicDao'' | [[scriptlog:lib:dao:topicdao|''Scriptlog\Dao\TopicDao'']] | | ''UserDao'' | [[scriptlog:lib:dao:userdao|''Scriptlog\Dao\UserDao'']] | | ''UserTokenDao'' | [[scriptlog:lib:dao:usertokendao|''Scriptlog\Dao\UserTokenDao'']] | | ''DeleteCommentCmd'' | [[scriptlog:lib:handler:deletecommentcmd|''Scriptlog\Handler\Admin\Comment\DeleteCommentCmd'']] | | ''EditCommentCmd'' | [[scriptlog:lib:handler:editcommentcmd|''Scriptlog\Handler\Admin\Comment\EditCommentCmd'']] | | ''ListCommentsCmd'' | [[scriptlog:lib:handler:listcommentscmd|''Scriptlog\Handler\Admin\Comment\ListCommentsCmd'']] | | ''DeleteTopicCmd'' | [[scriptlog:lib:handler:deletetopiccmd|''Scriptlog\Handler\Admin\Topic\DeleteTopicCmd'']] | | ''EditTopicCmd'' | [[scriptlog:lib:handler:edittopiccmd|''Scriptlog\Handler\Admin\Topic\EditTopicCmd'']] | | ''ListTopicsCmd'' | [[scriptlog:lib:handler:listtopicscmd|''Scriptlog\Handler\Admin\Topic\ListTopicsCmd'']] | | ''NewTopicCmd'' | [[scriptlog:lib:handler:newtopiccmd|''Scriptlog\Handler\Admin\Topic\NewTopicCmd'']] | | ''DeletePostCmd'' | [[scriptlog:lib:handler:deletepostcmd|''Scriptlog\Handler\Admin\Post\DeletePostCmd'']] | | ''EditPostCmd'' | [[scriptlog:lib:handler:editpostcmd|''Scriptlog\Handler\Admin\Post\EditPostCmd'']] | | ''ListPostsCmd'' | [[scriptlog:lib:handler:listpostscmd|''Scriptlog\Handler\Admin\Post\ListPostsCmd'']] | | ''NewPostCmd'' | [[scriptlog:lib:handler:newpostcmd|''Scriptlog\Handler\Admin\Post\NewPostCmd'']] | | ''DeletePageCmd'' | [[scriptlog:lib:handler:deletepagecmd|''Scriptlog\Handler\Admin\Page\DeletePageCmd'']] | | ''EditPageCmd'' | [[scriptlog:lib:handler:editpagecmd|''Scriptlog\Handler\Admin\Page\EditPageCmd'']] | | ''ListPagesCmd'' | [[scriptlog:lib:handler:listpagescmd|''Scriptlog\Handler\Admin\Page\ListPagesCmd'']] | | ''NewPageCmd'' | [[scriptlog:lib:handler:newpagecmd|''Scriptlog\Handler\Admin\Page\NewPageCmd'']] | | ''DeleteUserCmd'' | [[scriptlog:lib:handler:deleteusercmd|''Scriptlog\Handler\Admin\User\DeleteUserCmd'']] | | ''EditUserCmd'' | [[scriptlog:lib:handler:editusercmd|''Scriptlog\Handler\Admin\User\EditUserCmd'']] | | ''ListUsersCmd'' | [[scriptlog:lib:handler:listuserscmd|''Scriptlog\Handler\Admin\User\ListUsersCmd'']] | | ''NewUserCmd'' | [[scriptlog:lib:handler:newusercmd|''Scriptlog\Handler\Admin\User\NewUserCmd'']] | | ''DeleteMediaCmd'' | [[scriptlog:lib:handler:deletemediacmd|''Scriptlog\Handler\Admin\Media\DeleteMediaCmd'']] | | ''EditMediaCmd'' | [[scriptlog:lib:handler:editmediacmd|''Scriptlog\Handler\Admin\Media\EditMediaCmd'']] | | ''ListMediaCmd'' | [[scriptlog:lib:handler:listmediacmd|''Scriptlog\Handler\Admin\Media\ListMediaCmd'']] | | ''NewMediaCmd'' | [[scriptlog:lib:handler:newmediacmd|''Scriptlog\Handler\Admin\Media\NewMediaCmd'']] | | ''ActivatePluginCmd'' | [[scriptlog:lib:handler:activateplugincmd|''Scriptlog\Handler\Admin\Plugin\ActivatePluginCmd'']] | | ''DeactivatePluginCmd'' | [[scriptlog:lib:handler:deactivateplugincmd|''Scriptlog\Handler\Admin\Plugin\DeactivatePluginCmd'']] | | ''DeletePluginCmd'' | [[scriptlog:lib:handler:deleteplugincmd|''Scriptlog\Handler\Admin\Plugin\DeletePluginCmd'']] | | ''InstallPluginCmd'' | [[scriptlog:lib:handler:installplugincmd|''Scriptlog\Handler\Admin\Plugin\InstallPluginCmd'']] | | ''ListPluginsCmd'' | [[scriptlog:lib:handler:listpluginscmd|''Scriptlog\Handler\Admin\Plugin\ListPluginsCmd'']] | | ''ActivateThemeCmd'' | [[scriptlog:lib:handler:activatethemecmd|''Scriptlog\Handler\Admin\Theme\ActivateThemeCmd'']] | | ''DeactivateThemeCmd'' | [[scriptlog:lib:handler:deactivatethemecmd|''Scriptlog\Handler\Admin\Theme\DeactivateThemeCmd'']] | | ''DeleteThemeCmd'' | [[scriptlog:lib:handler:deletethemecmd|''Scriptlog\Handler\Admin\Theme\DeleteThemeCmd'']] | | ''EditThemeCmd'' | [[scriptlog:lib:handler:editthemecmd|''Scriptlog\Handler\Admin\Theme\EditThemeCmd'']] | | ''InstallThemeCmd'' | [[scriptlog:lib:handler:installthemecmd|''Scriptlog\Handler\Admin\Theme\InstallThemeCmd'']] | | ''ListThemesCmd'' | [[scriptlog:lib:handler:listthemescmd|''Scriptlog\Handler\Admin\Theme\ListThemesCmd'']] | | ''NewThemeCmd'' | [[scriptlog:lib:handler:newthemecmd|''Scriptlog\Handler\Admin\Theme\NewThemeCmd'']] | | ''AdminActionRegistry'' | [[scriptlog:lib:handler:adminactionregistry|''Scriptlog\Handler\AdminActionRegistry'']] | | ''ArchiveHandler'' | [[scriptlog:lib:handler:archivehandler|''Scriptlog\Handler\ArchiveHandler'']] | | ''BlogHandler'' | [[scriptlog:lib:handler:bloghandler|''Scriptlog\Handler\BlogHandler'']] | | ''CategoryHandler'' | [[scriptlog:lib:handler:categoryhandler|''Scriptlog\Handler\CategoryHandler'']] | | ''DownloadHandler'' | [[scriptlog:lib:handler:downloadhandler|''Scriptlog\Handler\DownloadHandler'']] | | ''HandlerRegistry'' | [[scriptlog:lib:handler:handlerregistry|''Scriptlog\Handler\HandlerRegistry'']] | | ''PageHandler'' | [[scriptlog:lib:handler:pagehandler|''Scriptlog\Handler\PageHandler'']] | | ''PostHandler'' | [[scriptlog:lib:handler:posthandler|''Scriptlog\Handler\PostHandler'']] | | ''PrivacyHandler'' | [[scriptlog:lib:handler:privacyhandler|''Scriptlog\Handler\PrivacyHandler'']] | | ''TagHandler'' | [[scriptlog:lib:handler:taghandler|''Scriptlog\Handler\TagHandler'']] | | ''DownloadModel'' | [[scriptlog:lib:model:downloadmodel|''Scriptlog\Model\DownloadModel'']] | | ''ConfigurationService'' | [[scriptlog:lib:service:configurationservice|''Scriptlog\Service\ConfigurationService'']] | | ''DownloadService'' | [[scriptlog:lib:service:downloadservice|''Scriptlog\Service\DownloadService'']] | | ''FrontService'' | [[scriptlog:lib:service:frontservice|''Scriptlog\Service\FrontService'']] | ---- //This page is generated from source by 'tools/gendoc'. Edits will be overwritten.//