我正在使用Smarty处理旧的旧版PHP应用程序。我不熟悉Smarty。因此我的问题。Smarty是否使用APC(或其他缓存解决方案)?
我知道Smarty模板已经编译到PHP中。然后,他们被调用一些数据来生成输出。生成的PHP将作为此过程的一部分进行编译。
APC(和其他缓存解决方案)避免在用户请求之间重新编译PHP。 i)如果我用一个原始模板调用Smarty,它会先将它编译成PHP,然后再编译成操作码,对不对?
二)如果一个高速缓存系统,如APC在我的PHP应用程序已启用,如果模板已经被调用(即,在过去的编译):
一)将Smarty的足够聪明,不重新编译每个用户请求将模板导入PHP?
b)编译模板的PHP的操作码是否会通过APC重新使用?
为什么我会问这些问题?这个遗留应用程序早已实施(2010年之前的一些部分)。他们已经实现了所有Smarty模板的预编译系统,并将它们复制到应用程序的某个目录中,以直接调用生成的PHP代码。
我相信它可能在性能方面有意义,但现在,由于操作码缓存解决方案仍然可用,它仍然有意义吗?我们可以摆脱这种预编译过程吗?
好吧,所以我猜PHP会像对待任何其他PHP文件一样对待生成的Smarty PHP。正确? – JVerstry
是的,PHP引擎(以及它的APC或OpCache扩展)不会知道Smarty写这个文件,而不是你或者打印机上的一千个猴子。 – IMSoP