. namespace core\task; /** * This file defines a trait to assist with unit tests in tasks. * * @package core * @copyright 2024 Huong Nguyen * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ trait task_trait { /** * Helper to execute a particular task. * * @param string $taskclass The task class. */ protected function execute_task(string $taskclass): void { // Run the scheduled task. $this->start_output_buffering(); $task = manager::get_scheduled_task($taskclass); $task->execute(); $this->stop_output_buffering(); } /** * Helper to start output buffering. */ protected function start_output_buffering(): void { ob_start(); } /** * Helper to stop output buffering. * * @return string|null The output buffer contents or null if output buffering is not active. */ protected function stop_output_buffering(): ?string { $output = ob_get_contents(); ob_end_clean(); return $output; } }