目前,PHP 5.3托管环境必须安装并使用“Zend Guard Loader”扩展来处理和执行Zend Guard编码文件。我无法让它执行编码用于Zend Optimizer(PHP 5.2)的文件。
对此有何解决方法?
答案 0 :(得分:0)
我不这么认为......因为这个原因,我也坚持使用php 5.2。
如果你想使用“Zend Guard Loader”运行zend编码的5.2脚本,你需要花更多钱并购买新版本来重新编码脚本......很遗憾。
答案 1 :(得分:0)
对我来说唯一有效的方法是包含php 5.2文件,而不是Zend Guards消息,当没有找到zend后卫加载器时,如果条件检查php版本,则显示该消息。脏,但工作,但仍然需要存在2个文件,但不需要让加载程序在不受保护的代码中切换它们。
答案 2 :(得分:0)
要回答Zend Guard / Optimizer / Loader上下文中的编码与运行时 - 它们应完全匹配。接受的答案是错误的 - 在PHP 5.2中加载的优化器中没有执行PHP 5.3编码文件的调整。
如果在进行代码更新时编写/批处理编码过程,则维护2个目标版本非常容易。您只需使用zendenc52执行一次源编码,然后使用zendenc53执行源编码,为它们提供不同的目标目录。
更多相关信息。 PHP 5.3代码与5.2不同,实际上您应该为与这些版本匹配的源提供2个不同的分支。 旧闻:http://php.net/manual/en/migration53.php
在测试/暂存Zend Guard编码的应用程序时,请确保测试编码版本(并根据需要调试开放源代码)。原因很简单 - 编码文件有一些处理混淆的数据表开销,并且可能会使用一些高级PHP语法更改PHP功能。如果在测试时在编码文件中发现任何问题 - 很容易找到并修复源代码。如果您只测试源版本,然后编码并部署到您的客户 - 结果是不可预测的。
对于部署,当您安装/ untar / git / svn部署PHP文件时,您可以将PHP目标版本粘贴到您的版本/下载/代码推送中,以便它们安装在正确的版本中,或者部署2个版本在不同的文档根位置,您可以符号链接/重写到与PHP目标版本5.2或5.3匹配的正确的受保护应用程序版本。
最后但并非最不重要。 Zend Guard支持的运行时是Zend Server。它有一个社区版本,任何人都可以通过DEB / RPM的本机包管理器或安装文件(Windows,Mac,不支持的其他Linux)免费安装(或购买许可的组件,如果需要额外增强和监控)在支持的操作系统上本地包管理器)。 Zend Server可选的Loader组件将处理编码的应用程序文件,它带有PHP 5.2和5.3分支,因此无需在PHP上手动安装Zend Optimizer或Loader。当应用程序(编码和开源)被正确迁移时,从PHP 5.2升级到5.3很容易并且是原生的。
希望这有帮助。