/** * @param Knit $knit * @param string $tpl * @param string $param * @throws \Comely\Framework\KernelException */ public function knit(Knit $knit, string $tpl, string $param = "body") { // Get CSRF token $csrfToken = $this->app->security()->csrf()->getToken(); if (!$csrfToken) { // Set new CSRF token as it is not already set $csrfToken = $this->app->security()->csrf()->setToken(); } // Set "csrfToken" prop in Page object $this->page->setProp("csrfToken", $csrfToken); // Assign variables to Knit $knit->assign("errors", $this->app->errorHandler()->fetchAll()); $knit->assign("page", $this->page->getArray()); $knit->assign("config", ["site" => $this->app->config()->getNode("site")]); // Prepare template and set in Response object $template = $knit->prepare($tpl); $this->response->set($param, $template->getOutput()); }