本文整理匯總了PHP中Psr\Http\Message\StreamInterface::setTemplate方法的典型用法代碼示例。如果您正苦於以下問題:PHP StreamInterface::setTemplate方法的具體用法?PHP StreamInterface::setTemplate怎麽用?PHP StreamInterface::setTemplate使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Psr\Http\Message\StreamInterface
的用法示例。
在下文中一共展示了StreamInterface::setTemplate方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: handle
/**
* @param DisplayPageCommand $command
*/
public function handle(DisplayPageCommand $command)
{
$id = $command->getId();
$this->vars = $command->getVars();
$this->request = $command->getRequest();
$this->output = $command->getStream();
$this->container = $command->getContainer();
$this->registerContentTypes();
/** @var RepositoryFactory $repositoryFactory */
$repositoryFactory = $this->container->get('Repository');
$repository = $repositoryFactory->forEntity(Page::class);
$page = $repository->getById($id);
$contentItems[] = $page->content->getAll();
for ($m = $page->layout; $m != null; $m = $m->parent) {
array_unshift($contentItems, $m->content->getAll());
}
$contentItems = $this->flatten($contentItems);
if (!isset($page->parent)) {
$page->parent = $page->layout;
}
$contentTree = $this->buildTree($contentItems);
$data = get_object_vars($page);
if ($data['title'][0] == ':') {
// @todo Retrieve the title
}
$templatePath = $page->layout->template->path;
$this->output->setTemplate($templatePath);
$template = $this->loadTemplate(JPATH_ROOT . '/' . $templatePath . '/index.php', $data);
$parts = preg_split('~</body>~', $template, 2);
$parts[1] = '</body>' . $parts[1];
$this->output->write($parts[0]);
foreach ($contentTree as $root) {
$root->accept($this->output);
}
$queryParams = $this->request->getQueryParams();
if (isset($queryParams['debug'])) {
$this->dumpSql();
}
$this->output->writeJavascript();
$this->output->writeCss();
$this->output->write($parts[1]);
}