Этот дает Вам местное время:
$year = date('Y'); // 2008
И этот UTC:
$year = gmdate('Y'); // 2008
Я бы сказал, что представление не должно содержать много программирования (или вообще ничего). Идея использования АОП (или а-ля АОП) в месте, где запрещена буква Р., выглядит не очень привлекательной
. Давайте спроектируем ее по-другому. Обычно в представлениях есть несколько управляющих ключевых слов для выполнения основных задач: условия и циклы. Больше интеллекта, и я бы сказал, что вы смешиваете здесь роль контроллера.
Итак, if (user.CanSeeSomeData)
вы поместили туда, если это на самом деле простой флаг. Так должны быть представления.
Когда вы строили объект представления модели (контейнер, в который вы помещали информацию для представления). Вы могли бы использовать АОП для инициализации / установки этой информации, например, с помощью хорошего атрибута в этом свойстве.
Вы можете запросить атрибуты вместо "