【发布时间】:2011-12-26 02:06:52
【问题描述】:
目前 PHP 5.3 托管环境必须安装和使用“Zend Guard Loader”扩展来处理和执行 Zend Guard 编码文件。我无法让它执行编码用于 Zend Optimizer (PHP 5.2) 的文件。
有什么解决方法吗?
【问题讨论】:
标签: php zend-optimizer zend-guard
目前 PHP 5.3 托管环境必须安装和使用“Zend Guard Loader”扩展来处理和执行 Zend Guard 编码文件。我无法让它执行编码用于 Zend Optimizer (PHP 5.2) 的文件。
有什么解决方法吗?
【问题讨论】:
标签: php zend-optimizer zend-guard
我不这么认为......因此,我也坚持使用 php 5.2。
如果您想使用“Zend Guard Loader”运行zend 编码的 5.2 脚本,您将需要花更多的钱购买新版本来再次编码脚本......伤心。
【讨论】:
对我有用的唯一方法是包含 php 5.2 文件而不是 Zend Guards 消息,如果条件检查 php 版本没有找到 zend 保护加载程序时会显示该消息。脏,但可以工作,但仍然需要存在 2 个文件,但无需加载程序在未受保护的代码中切换它们。
【讨论】:
要回答 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 很容易,而且是原生的。
希望这会有所帮助。
【讨论】: