Scriptlog Docs

Scriptlog Documentation

Code reference for the Scriptlog codebase

User Tools

Site Tools


scriptlog:lib:core:handlerequest

This is an old revision of the document!


HandleRequest

Layer: Core · Source: lib/core/HandleRequest.php:30 (lines 30–595)


final class HandleRequest

Static facade used by Dispatcher to dispatch front-end requests when SEO-friendly (pretty) permalinks are disabled. It parses the request URI and query string, validates the requested path against a whitelist, and renders the matching template (or delegates to a registered FrontRequestHandler).

Docblock Metadata

^ Tag ^ Value ^
| ''@category'' | Core Class |
| ''@author'' | M.Noermoehammad |
| ''@license'' | MIT |
| ''@version'' | 1.1 |
| ''@since'' | Since Release 1.0 |

Inheritance

No parent, interface or trait. This is a root type.

Constants (0)

None.

Properties (0)

None declared.

Methods (22)

^ Visibility ^ Method ^ Summary ^ Line ^
| public static | ''setThemeRenderer()'' | Set the ThemeRendererInterface instance | 70 |
| public static | ''handleFrontHelper()'' | handleFrontHelper | 86 |
| public static | ''findRequestToRules()'' | findRequestToRules | 104 |
| private static | ''findRequestToPath()'' | findRequestToPath() | 134 |
| private static | ''isRequestToPathValid()'' | isRequestToPathValid() | 166 |
| public static | ''isMatchedUriRequested()'' | isMatchedUriRequested() | 187 |
| public static | ''isQueryStringRequested()'' | isQueryStringRequested() | 204 |
| public static | ''checkMatchUriRequested()'' | checkMatchUriRequested() | 226 |
| public static | ''allowedPathRequested()'' | allowedPathRequested | 247 |
| private static | ''renderTemplate()'' | renderTemplate | 269 |
| private static | ''deliverQuerySearch()'' | deliverQuerySearch | 293 |
| private static | ''handleDownloadRequest()'' | handleDownloadRequest | 333 |
| private static | ''handlePathBasedDownload()'' | handlePathBasedDownload | 356 |
| private static | ''getDownloadController()'' | (undocumented) | 382 |
| public static | ''deliverQueryString()'' | deliverQueryString | 398 |
| private static | ''deliverQueryPost()'' | deliverQueryPost | 450 |
| private static | ''deliverQueryCategory()'' | deliverQueryCategory | 473 |
| private static | ''deliverQueryPage()'' | deliverQueryPage | 496 |
| private static | ''deliverQueryArchive()'' | deliverQueryArchive | 519 |
| private static | ''deliverQueryTag()'' | deliverQueryTag | 535 |
| private static | ''deliverQueryDownload()'' | deliverQueryDownload | 551 |
| private static | ''deliverDefaultQuery()'' | deliverDefaultQuery | 569 |

setThemeRenderer()

public static function setThemeRenderer(?ThemeRendererInterface $renderer): void

lines 70–73 (4)

Set the ThemeRendererInterface instance

^ Parameter ^ Type ^ Default ^ Description ^
| ''$renderer'' | [[scriptlog:lib:core:themerendererinterface|''?ThemeRendererInterface'']] | //required// | //none// |

Returns: void

handleFrontHelper()

public static function handleFrontHelper()

lines 86–91 (6)

handleFrontHelper

Resolve the shared FrontService instance from the global registry. Returns null when the service has not been registered so callers can fail safely. The FrontHelper static facade is deprecated; front-end content is now accessed through this service.

Takes no parameters.

Returns: (none declared) — FrontService|null

findRequestToRules()

public static function findRequestToRules($rules)

lines 104–122 (19)

findRequestToRules

Match the current request URI against a list of route patterns and return the first match's captured parameters.

^ Parameter ^ Type ^ Default ^ Description ^
| ''$rules'' | ''(untyped)'' | //required// | List of route regex patterns. |

Returns: (none declared) — array The captured matches for the first matching rule, or an empty array when no rule matches.

findRequestToPath()

private static function findRequestToPath()

lines 134–156 (23)

findRequestToPath()

Resolve the raw request path (query string stripped) once per request and cache the result so repeat callers do no redundant work.

Takes no parameters.

Returns: (none declared) — string The request path without leading/trailing slashes, or a directory separator for the site root.

isRequestToPathValid()

private static function isRequestToPathValid($args)

lines 166–176 (11)

isRequestToPathValid()

^ Parameter ^ Type ^ Default ^ Description ^
| ''$args'' | ''(untyped)'' | //required// | Zero-based segment index into the request path. |

Returns: (none declared) — string|boolean The basename of the requested segment, or false when the segment does not exist.

isMatchedUriRequested()

public static function isMatchedUriRequested()

lines 187–192 (6)

isMatchedUriRequested()

Return the first path segment of the requested URI.

Takes no parameters.

Returns: (none declared) — string The first segment, or an empty string when no request URI is present.

isQueryStringRequested()

public static function isQueryStringRequested()

lines 204–215 (12)

isQueryStringRequested()

Parse the query string into a ['key' ⇒ …, 'value' ⇒ …] pair. The result is computed once per request and cached for all subsequent callers (templates, permalink helpers and theme utilities).

Takes no parameters.

Returns: (none declared) — array Associative array with 'key' and 'value' entries.

checkMatchUriRequested()

public static function checkMatchUriRequested()

lines 226–235 (10)

checkMatchUriRequested()

Compare the first URI segment with the first sanitized RequestPath segment to detect a canonical (matching) request.

Takes no parameters.

Returns: (none declared) — bool True when both segments are identical, false otherwise.

allowedPathRequested()

public static function allowedPathRequested($path)

lines 247–258 (12)

allowedPathRequested

Check whether the first path segment of the request URI is present in the whitelist, or the request targets the site root.

^ Parameter ^ Type ^ Default ^ Description ^
| ''$path'' | ''(untyped)'' | //required// | Whitelist of allowed first path segments. |

Returns: (none declared) — bool True when the request may proceed, false otherwise.

renderTemplate()

private static function renderTemplate($template, $statusCode = 200)

lines 269–284 (16)

renderTemplate

Render a template through the injected ThemeRenderer, or fall back to the legacy global theme functions when no renderer is available.

^ Parameter ^ Type ^ Default ^ Description ^
| ''$template'' | ''(untyped)'' | //required// | Template name (without .php extension). |
| ''$statusCode'' | ''(untyped)'' | ''200'' | HTTP status code used by the legacy fallback. |

Returns: (none declared)

deliverQuerySearch()

private static function deliverQuerySearch()

lines 293–322 (30)

deliverQuerySearch

Render the search template. When the keyword is too short the search globals are emptied; otherwise a SearchFinder query is run and its results exposed through $GLOBALS for the theme template.

Takes no parameters.

Returns: (none declared)

handleDownloadRequest()

private static function handleDownloadRequest($identifier)

lines 333–343 (11)

handleDownloadRequest

Dispatch a download request read from the query string. When the request URI also contains a '/file' segment the download controller streams the file; otherwise the download landing page is rendered.

^ Parameter ^ Type ^ Default ^ Description ^
| ''$identifier'' | ''(untyped)'' | //required// | Download identifier (UUID). |

Returns: (none declared)

handlePathBasedDownload()

private static function handlePathBasedDownload($firstSegment)

lines 356–380 (25)

handlePathBasedDownload

Handle '/download/{identifier}' style paths when permalinks are disabled. Renders the download landing page or streams the file for an additional '/file' path segment.

^ Parameter ^ Type ^ Default ^ Description ^
| ''$firstSegment'' | ''(untyped)'' | //required// | First path segment of the request. |

Returns: (none declared) — bool True when the request was handled as a download, false otherwise so the caller can continue dispatching.

getDownloadController()

private static function getDownloadController()

lines 382–389 (8)

Takes no parameters.

Returns: (none declared)

deliverQueryString()

public static function deliverQueryString()

lines 398–443 (46)

deliverQueryString

Dispatch a query-string request to its handler, its dedicated delivery method, or the default (home) renderer.

Takes no parameters.

Returns: (none declared)

deliverQueryPost()

private static function deliverQueryPost()

lines 450–466 (17)

deliverQueryPost

Render a single post from the 'p' query-string key.

Takes no parameters.

Returns: (none declared)

deliverQueryCategory()

private static function deliverQueryCategory()

lines 473–489 (17)

deliverQueryCategory

Render a category archive from the 'cat' query-string key.

Takes no parameters.

Returns: (none declared)

deliverQueryPage()

private static function deliverQueryPage()

lines 496–512 (17)

deliverQueryPage

Render a static page from the 'pg' query-string key.

Takes no parameters.

Returns: (none declared)

deliverQueryArchive()

private static function deliverQueryArchive()

lines 519–528 (10)

deliverQueryArchive

Render the monthly archive from the 'a' query-string key.

Takes no parameters.

Returns: (none declared)

deliverQueryTag()

private static function deliverQueryTag()

lines 535–544 (10)

deliverQueryTag

Render the tag archive from the 'tag' query-string key.

Takes no parameters.

Returns: (none declared)

deliverQueryDownload()

private static function deliverQueryDownload()

lines 551–560 (10)

deliverQueryDownload

Dispatch a download request from the 'download' query-string key.

Takes no parameters.

Returns: (none declared)

deliverDefaultQuery()

private static function deliverDefaultQuery()

lines 569–594 (26)

deliverDefaultQuery

Fallback dispatch for requests without a recognized query-string key. Renders the home template for the root, whitelisted legacy entry points and matched URIs; otherwise renders a 404.

Takes no parameters.

Returns: (none declared)

Imports

^ Alias ^ Fully-qualified name ^
| ''DownloadController'' | [[scriptlog:lib:controller:downloadcontroller|''Scriptlog\Controller\DownloadController'']] |
| ''MediaDao'' | [[scriptlog:lib:dao:mediadao|''Scriptlog\Dao\MediaDao'']] |
| ''HandlerRegistry'' | [[scriptlog:lib:handler:handlerregistry|''Scriptlog\Handler\HandlerRegistry'']] |
| ''DownloadModel'' | [[scriptlog:lib:model:downloadmodel|''Scriptlog\Model\DownloadModel'']] |
| ''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.

scriptlog/lib/core/handlerequest.1790413762.txt.gz · Last modified: by admin