正在使用的组件只有 link 个样式表

Only link stylesheets for components in use

我正在使用 PHP 构建一个页面,并大量使用模板将每个页面的各个部分拆分为可重用的组件,每个组件都有自己的样式表,该样式表会自动添加到头部通过脚本。

但是,为了节省带宽并避免在某些情况下出现样式冲突,我只想 link 那些在给定页面上实际使用的样式表。由于头部在页面中排在第一位并且样式在头部,但是在页面末尾之前无法访问 get_included_files() 之类的内容,我(大概)需要一种方法来返回到head 并稍后添加 link 标签,但我不确定该怎么做。

我能想到的唯一明显的方法是需要 使用的所有组件的注册表数组,然后使用它来生成 link标签,但这并不可行,因为某些组件包含其他组件,因此不仅需要手动注册顶级文件中包含的组件,还需要手动注册这些组件包含的所有组件。

我想出了一个解决办法。我拿走了我的每个组件,基本上将它们包装在 class 和 class 的 public 静态函数中,称为 output()。我现在可以 include() 我想在开始时使用的所有组件,然后 Component::output() 我希望它出现的任何地方。这样,当我在生成头部的脚本上调用 output() 时,所有文件都包含在内,并且对 get_included_files() 可见。