我正在用PHP构建一个页面,并大量使用模板将每个页面的各个部分拆分为可重用的组件,每个组件都有自己的样式表,这些样式表会通过脚本自动添加到头部。
但是,为了节省带宽并避免在某些情况下出现样式冲突,我只想链接那些在给定页面上实际使用的样式表。由于页眉排在页面的首位,样式排在页眉,但是直到页面末尾都无法访问get_included_files()
之类的内容,我(大概)需要一种方法来回到页面头,然后再添加链接标签,但我不确定该怎么做。
我能想到的唯一明显的方法是必须使用将要使用的所有组件的注册表数组,然后使用该组件来生成链接标签,但这实际上并不可行,因为其中一些组件包括其他组件,因此不仅需要手动注册顶级文件中包括的组件,还需要手动注册这些组件包括的所有组件。
答案 0 :(得分:0)
我想出了一个解决方案。我采用了每个组件,并基本上将它们包装在一个类和该类的一个公共静态函数中,该函数称为output()
。现在,我可以一开始就include()
我要使用的所有组件,然后只要在我希望它出现的地方进行Component::output()
。这样,当我在生成头文件的脚本中调用get_included_files()
时,所有文件都被包含进output()
并对其可见。