Пути к шаблону могут быть найдены в классе ConfigProvider => __, вызывают метод, под 'шаблонами' => 'пути' или в getTemplates () метод. Там необходимо добавить новый путь:
/**
* Returns the templates configuration
*/
public function getTemplates(): array
{
return [
'paths' => [
'app' => [__DIR__ . '/../templates/app'],
'error' => [__DIR__ . '/../templates/error'],
'layout' => [__DIR__ . '/../templates/layout'],
'admin' => [__DIR__ . '/../templates/admin'],
],
];
}
затем Ваш обработчик должен выглядеть примерно так
public function handle(ServerRequestInterface $request) : ResponseInterface
{
$data = [
'admin' => 'layout::admin',
// or 'layout::admin',
// or 'layout::alternative',
];
$content = $this->template->render('admin::app/admin-page', $data);
return new HtmlResponse($content);
}
Согласно спецификации HTML 4.0 для основных типов :
токены ID и NAME должны начинаться с буква ([A-Za-z]) и может следовать на любое количество букв, цифр ([0-9]), дефисы ("-"), символы подчеркивания ("_"), двоеточия (":") и точки (".").
И даже если бы пробелы были допустимыми, атрибут id с пробелами был бы интерпретирован jQuery как селектор потомка предка с текущим синтаксисом селектора.
Это аргумент по аналогии.
Рассмотрим селектор CLASS. Не то же самое, что ID , но есть некоторые сходства.
Очевидно, у вас не может быть имени класса со встроенным пространством, потому что список классов
<p class='a b c'>some text</p>
не может быть отличается от одного имени с пробелами.
Хорошо, вы не можете иметь список имен идентификаторов, так что аналогия разваливается, но я думаю, что мы стали слишком быстро пытаться вставляйте пробелы там, где им не место.
Короткий ответ: нет. Только буквы, числа, символы подчеркивания, дефисы, точки и двоеточия.
(черт возьми, Карим опередил меня.)