我已经使用 Oscommerce 2.3.4 实现了一个简单的模板系统。这样我就可以经营多家商店,并有可能在“网站”或“模板”的基础上改变商店的内容或外观。
核心 OSC 文件(模块文件、类等)仍位于应用根目录之外的目录中,但模板、语言文件和样式表位于“模板”和“站点”目录中。每个“模板”或“站点”目录结构都与 OSC 应用程序的标准结构相同。如果站点/模板文件夹中存在文件,则将使用该文件。
所有默认模板和语言文件都有一个默认模板目录。选择使用哪个文件的优先级如下:
- 查看是否有特定于站点的文件(sites/***/...)。
- 否则,查看是否有特定于模板的文件。(模板/***/...)
- 否则,使用默认模板目录中的文件。(模板/默认/...)
我正在考虑使用 set_include_path 函数列出上面提到的每个目录,以利用 php.net 上记录的 include_path 的行为:
在查找要包含的文件时,PHP 会分别考虑包含路径中的每个条目。它将检查第一个路径,如果找不到,则检查下一个路径,直到找到包含的文件或返回警告或错误。
这似乎对我的情况来说几乎是理想的,但是我找不到这是否被认为是“好”的做法。
如果使用它有任何陷阱,例如性能下降,我很感兴趣。考虑到很多包含现在将在 3 个目录中查找,然后最终在第 4 个位置找到默认模板。(尽管这比使用if(file_exists())
多次作为替代方法更糟糕。)
此外,有必要在应用程序顶部设置这些包含路径,因为路径使用当前站点的变量和来自应用程序的模板。所以我不能在 php.ini 中设置包含路径
非常感谢任何帮助或建议