Профессиональное программирование на PHPСтраница 112 из 591 |
||
|
116 Глава 4 Реализация средствами РНР: шаблоны и Web Реализация схемы MVC в Web-среде обычно осуществляется посредством шаблонов. В системе шаблонов HTML-теги и логика представления содержатся в шаблоне (template). Код приложения, который не содержит логики представления, осуществляет разбор запросов, выполняет необходимые операции, а затем передает неоформленные данные шаблону, чтобы последний отформатировал их для отображения. Существует множество решений на основе шаблонов для РНР. В данной главе рассматривается система Smarty, одно из наиболее популярных и гибких решений. Также в данной главе показано, как реализовать специальное решение на основе шаблонов в том случае если Smarty не подходит. Как чистый язык шаблонов Smarty прост. Однако по мере того как с его помощью начинает реализовываться управляющая логика, нестандартные функции и модификаторы, язык Smarty может оказаться весьма сложным. Любой дизайнер, который может реализовать сложную логику в Smarty, смог бы сделать то же самое и в РНР. И это не всегда плохо. РНР сам по себе является великолепным языком шаблонов, предоставляющим инструменты для простой интеграции форматирования и логики представления в HTML-код. Если в коллектив входят дизайнеры, которые свободно работают в РНР, а вся команда (как дизайнеры, так и разработчики) поддерживают дисциплину, необходимую для отделения бизнес-логики от логики представления, то формальный язык шаблонов может оказаться излишним. Часто разработчики страдают от проблем интеграции с дизайнерскими коллективами, которые не могут разобраться с РНР-кодом, встроенным в созданные ими страницы. Smarty позволяет решить подобного рода организационные проблемы. Даже если команда дизайнеров свободно работает с РНР, решение на основе шаблонов все равно полезно, поскольку оно пытается усилить отделение отображения данных от управления приложением. Кроме формального разделения между логикой представления и бизнес-логикой наилучшим обоснованием для использования решения на основе шаблонов, такого как Smarty, — предоставить неблагонадежным конечным пользователям возможность писать динамические страницы без необходимости доверять им доступ к РНР-коду. Подобная ситуация может возникнуть при поставке виртуальных магазинов, настраиваемых персональных страниц или поставке шаблонных решений для создания email-сообщений. Smarty Smarty — одна из наиболее популярных и широко внедряемых систем шаблонов для РНР. Язык Smarty был написан Монти Ортом (Monte Ohrt) и Андреем Змиевски (Andrei Zmievski) как быстрая и гибкая система шаблонов для поддержки отделения логики представления от логики приложения. Работа Smarty заключается в разборе специальной разметки в файлах шаблонов и ее преобразовании в кэшированный РНР-сценарий. Такое преобразование прозрачно и делает систему приемлемо быстрой. Smarty содержит большое количество излишних функций, которые, возможно, лучше не использовать. Как и многие системы шаблонов, Smarty разросся благодаря множеству опрометчивых подходов, которые позволяют использовать в шаблонах сложную логику. Естественно, функции можно игнорировать или запретить на основе определенных правил. Подробнее эта тема рассматривается далее в настоящей главе. |
| |
|
В начало ←предыдущая следующая→ ... 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 ... | ||