Я создал класс Template
, который реализует ArrayAccess
, Iterator
и Countable
.Это позволяет мне использовать вложенные шаблоны объектов, действующих как массивы.Например, мое представление может выглядеть так:
<h1><?php echo $template['title']; ?></h1>
<?php foreach($template->post as $post): ?>
<h2><?php echo $post['title']; ?></h2>
<p><?php echo $post['body'] ?></p>
<?php endforeach; ?>
Я даже могу вызывать новые страницы, в зависимости от того, какие файлы представления связаны с различными шаблонами:
<?php if($template->canRender('comments')): $template->comments->render(); endif; ?>
Это очень полезнопуть.Я даже начал добавлять методы форматирования, заставляя все данные в объекте Template
действовать как объекты TemplateData
, которые для простоты имеют различные методы форматирования:
<?php echo $template['secret_code']->asHash('md5'); ?>
<?php echo $template['title']->asCase('capitalize'); ?>