我正在维护一个在wiki网站之间共享的PHP代码库。我的意思是,有一个目录/web/wiki
包含PHP脚本,可以为多个网站提供服务,例如wiki-devs.domain.com
,wiki-public.domain.com
等。这是用这种方式编写的,因为所有的wiki看起来都一样,并自动修复其中一个错误(或添加功能)意味着所有错误都得到相同的修复/功能。 PHP代码使用$_SERVER['HTTP_HOST']
来更改wiki的徽标并选择正确的数据库等,但所有其他代码对于所有wiki都保持不变。
我正在重写这个Web项目以使用Smarty模板,但是我不太明白如何让Smarty避免为sidebar.template.html
编译为wiki-devs.domain.com
的模板(比方说wiki-public.domain.com
) {1}},因为它不知道有多个域访问相同的代码。
我希望你理解我的意思。只是为了重新迭代:当“wiki-devs”访问该站点时,Smarty为“wiki-devs”生成模板,但是如果“wiki-public”稍后访问该站点,则相同的模板将被提供给他们。
答案 0 :(得分:0)
您应该为Smarty
模板使用一个目录,为每个站点使用不同的编译目录。这样就可以避免编译问题。
例如,你可以使用类似的东西:
$sitename=$_SERVER['HTTP_HOST'];
$smarty->template_dir='themes/themename/';
$smarty->compile_dir='files/compile/'.$sitename.'/';