Reddot использует довольно хорошо сконструированную MVC-подобную систему. Кроме того, из моего ограниченного опыта, Reddot следует , есть только один способ достичь философии Foo .
Приходя в Drupal, особенно как разработчик внешнего интерфейса, вы будете разочарованы, потеряете много волос и, возможно, несколько раз проклянетесь, когда поймете, что все должно быть сделано снова и снова.
Придя в Drupal, вы полюбите гигантское количество (к сожалению, неорганизованное) документирования, его гибкость и огромное количество новых возможностей.
Когда люди приходят из правильно сконструированных систем в Drupal, я советую им сделать одно: стать прагматиками-экстремистами. Никогда не пытайтесь сделать вещи правильными, чистыми или продуманными. Вы сможете сделать это только после того, как по-настоящему влюбитесь в Drupal. И это только с большим опытом. Просто поиграйте, пока он не сработает, закройте код и никогда больше не смотрите на него .
Первое, что вам нужно изучить, это движок Drupals PHPTemplate, который довольно сильно отличается от Reddots, но имеет много общего. Где Reddot использует RenderTags, Drupals PHPTemplate использует простой старый PHP.
<%!! Context:CurrentPage.Template.Name !!%>
становится
<?php print $name ?>
И да, $name
полностью глобально ограничен. Помните? Я сказал вам, чтобы быть прагматизмом-экстремистом. Даже не думайте о пространствах имен, объектах и т. Д.
Хотите знать, какие переменные у вас есть? Просто сделайте <?php print get_defined_vars() ?>
.
Хотите новые переменные в вашем шаблоне? Вам необходимо препроцессировать их.
Хотите изменить, изменить, удалить или изменить существующие переменные? Вам нужно либо препроцесс , либо переопределение шаблона , либо даже написать новые модули, которые делают новые или разные переменные доступными?
Знание того, что выбрать, когда выполнять предварительную обработку, когда создавать модули, когда переопределять, когда применять перехватчики для изменения содержимого, - это опыт.
Drupal никогда не задумывался об этом ясно, нет общего правила или наилучшей практики, кроме последних одиннадцати раз, когда Foo-концепция не сработала, возможно, Бар доказал лучшее .