====== ScheduledPostService ====== **Layer:** ''Service'' · **Source:** ''lib/service/ScheduledPostService.php:25'' (lines 25–156) ---- class ScheduledPostService Promotes posts with the 'scheduled' status whose post_date has passed, using a lightweight per-request flip (WordPress-style "poor man's cron"). ======= Docblock Metadata ======= ^ Tag ^ Value ^ | ''@category'' | Service Class | | ''@author'' | Scriptlog | | ''@license'' | MIT | | ''@version'' | 1.0 | | ''@since'' | Since Release 1.0 | ======= Inheritance ======= //No parent, interface or trait. This is a root type.// ======= Constants (2) ======= ^ Visibility ^ Name ^ Value ^ Line ^ | ''private'' | ''ENABLED_SETTING'' | '''writing_scheduled_post_enabled';'' | 32 | | ''private'' | ''NEXT_RUN_SETTING'' | '''writing_scheduled_next_run';'' | 39 | ======= Properties (3) ======= ^ Visibility ^ Type ^ Name ^ Default ^ Line ^ | ''private'' | ''(untyped)'' | ''$postDao'' | | 46 | | ''private'' | ''(untyped)'' | ''$configDao'' | | 53 | | ''private'' | ''(untyped)'' | ''$sanitize'' | | 60 | ======= Methods (5) ======= ^ Visibility ^ Method ^ Summary ^ Line ^ | public | ''__construct()'' | Constructor. | 69 | | public | ''isEnabled()'' | Check whether scheduled posting is enabled globally. | 84 | | public | ''getNextRun()'' | Get the earliest scheduled post_date (next-run shortcut). | 100 | | public | ''setNextRun()'' | Persist the next-run shortcut. | 115 | | public | ''publishDuePosts()'' | Publish every scheduled post whose post_date has passed. | 138 | ======== __construct() ======== public function __construct(PostDao $postDao, ConfigurationDao $configDao, Sanitize $sanitize) //lines 69–74 (6)// Constructor. ^ Parameter ^ Type ^ Default ^ Description ^ | ''$postDao'' | [[scriptlog:lib:dao:postdao|''PostDao'']] | //required// | //none// | | ''$configDao'' | [[scriptlog:lib:dao:configurationdao|''ConfigurationDao'']] | //required// | //none// | | ''$sanitize'' | [[scriptlog:lib:core:sanitize|''Sanitize'']] | //required// | //none// | ======== isEnabled() ======== public function isEnabled(): bool //lines 84–93 (10)// Check whether scheduled posting is enabled globally. Defaults to enabled when the setting row is missing (fresh installs and existing blogs before the Writing settings page is first saved). //Takes no parameters.// **Returns:** ''bool'' — bool ======== getNextRun() ======== public function getNextRun(): ?string //lines 100–107 (8)// Get the earliest scheduled post_date (next-run shortcut). //Takes no parameters.// **Returns:** ''?string'' — string|null Next run datetime ('Y-m-d H:i:s'), or null when unset ======== setNextRun() ======== public function setNextRun(?string $when): void //lines 115–124 (10)// Persist the next-run shortcut. ^ Parameter ^ Type ^ Default ^ Description ^ | ''$when'' | ''?string'' | //required// | Next scheduled datetime, or null to clear it | **Returns:** ''void'' — void ======== publishDuePosts() ======== public function publishDuePosts(): int //lines 138–155 (18)// Publish every scheduled post whose post_date has passed. Short-circuits when the feature is disabled or when no post is due (next-run shortcut), so steady-state requests never touch the posts table. Recomputes the shortcut after each run. //Takes no parameters.// **Returns:** ''int'' — int Number of posts promoted to 'publish' ======= Imports ======= ^ Alias ^ Fully-qualified name ^ | ''Sanitize'' | [[scriptlog:lib:core:sanitize|''Scriptlog\Core\Sanitize'']] | | ''ConfigurationDao'' | [[scriptlog:lib:dao:configurationdao|''Scriptlog\Dao\ConfigurationDao'']] | | ''PostDao'' | [[scriptlog:lib:dao:postdao|''Scriptlog\Dao\PostDao'']] | ---- //This page is generated from source by 'tools/gendoc'. Edits will be overwritten.//