Я создаю страницу с помощью PHP и интенсивно использую шаблоны для разделения различных частей каждой страницы на повторно используемые компоненты, каждый из которых имеет свою собственную таблицу стилей, которая автоматически добавляется в заголовок скриптом.
Однако, чтобы сэкономить полосу пропускания и избежать конфликтов стилей в определенных ситуациях, я хотел бы связать только те таблицы стилей, которые фактически используются на данной странице. Поскольку голова идет первой на странице, а стили идут в голове, но нет возможности получить доступ к чему-то вроде get_included_files()
до конца страницы, мне (предположительно) нужен способ вернуться к голове и добавить связать теги позже, но я не знаю, как это сделать.
Единственный очевидный способ, который я могу придумать, - это создать массив реестра всех компонентов, которые будет использоваться будут, а затем использовать его для генерации тегов ссылок, но это не совсем жизнеспособно, потому что некоторые из компонентов включают другие компоненты, поэтому он потребуется вручную зарегистрировать не только компоненты, включенные в файл верхнего уровня, но и все компоненты, включенные в эти компоненты.
Я нашел решение. Я взял каждый из своих компонентов и в основном заключил их в класс и публичную статическую функцию этого класса, называемую output()
. Теперь я могу использовать include()
со всеми компонентами, которые хочу использовать в самом начале, а затем просто использовать Component::output()
в любом месте, где я хочу, чтобы он появился. Таким образом, все файлы включены и видны для get_included_files()
, когда я вызываю output()
в сценарии, генерирующем голову.