В прошлом у меня был такой же вопрос при работе с разными системами шаблонов на разных языках, поэтому сначала
Общий вопрос
Я хочу использовать подшаблон для включения определенного компонента пользовательского интерфейса, который может появляться в разных местах на нескольких разных страницах. Этот компонент пользовательского интерфейса требует определенных файлов CSS и JS.
Я хочу поступить правильно с ресурсами CSS и JS, которые, насколько я знаю и в общих чертах, заключаются в том, чтобы: а) объединить как можно больше б) минимизировать как можно больше и, возможно, в) поставить что Я могу сделать это в конце своей разметки, чтобы браузеру не пришлось ждать, пока они загрузятся, перед отображением контента.
Итак, если у меня есть различные компоненты пользовательского интерфейса, а также разные заголовки и боковые панели в разных разделах сайта, для которых всем требуются свои собственные специальные CSS и JS для правильной работы, то каков лучший способ для меня управлять их через систему шаблонов, чтобы окончательная разметка была как можно меньше и организована?
Особенности моей ситуации
Я работаю над большим унаследованным PHP-сайтом, на котором, чтобы дать первоначальным авторам преимущество в сомнениях, разработка могла начаться до того, как MVC стал действительно массовым, и до того, как было так много вариантов использования фреймворков. , Таким образом, нет единой инфраструктуры MVC, нет маршрутизации, нет шаблонов (также нет ORM, но это конкретное проклятие здесь не так актуально).
Мне нужно будет продолжать работать, исправлять ошибки и добавлять несколько новых функций до тех пор, пока не будет готово полное переписывание, поэтому я пытаюсь вдохнуть в это здравый смысл.
Казалось, что самым простым местом для начала является слой видов, для которого я использую TinyButStrong . Пример их под-шаблонов можно найти здесь , но, как я уже сказал, я думаю, что это очень общий вопрос.
Вещи, которые я рассмотрел
С более интегрированной платформой я хотел бы иметь возможность делать что-то вроде $view->add_js($foo)
, но переход на полноценную платформу - это то, что делают другие люди, пока я стараюсь поддерживать существующую кодовую базу в мореходном состоянии. Нет даже достаточно последовательной организации файлов, чтобы можно было свернуть что-то подобное вручную.
На данный момент лучшее, что я могу придумать, - это сделать DOMDocument из поля зрения непосредственно перед его выводом и манипулировать тегами <link>
и <script>
в этой точке. Я не знаю, если это немного сумасшедший, хотя. Учитывая общность проблемы, я хотел бы думать, что есть известный разумный способ решить эту проблему.
Большое спасибо за ваш вклад.