目前 PHP 5.3 托管环境必须安装和使用“Zend Guard Loader”扩展来处理和执行 Zend Guard 编码文件。我无法让它执行编码用于 Zend Optimizer (PHP 5.2) 的文件。
有什么解决方法吗?
目前 PHP 5.3 托管环境必须安装和使用“Zend Guard Loader”扩展来处理和执行 Zend Guard 编码文件。我无法让它执行编码用于 Zend Optimizer (PHP 5.2) 的文件。
有什么解决方法吗?
我不这么认为......因此,我也坚持使用 php 5.2。
如果您想使用“Zend Guard Loader”运行zend 编码的5.2 脚本,您将需要花更多的钱购买新版本来再次对脚本进行编码......伤心。
对我有用的唯一方法是包含 php 5.2 文件而不是 Zend Guards 消息,如果条件检查 php 版本没有找到 zend 保护加载程序时会显示该消息。肮脏,但可以工作,但仍然需要存在 2 个文件,但不需要加载程序在未受保护的代码中切换它们。
要回答 Zend Guard/Optimizer/Loader 上下文中的 Encoding vs. Runtime - 它们应该完美匹配。接受的答案是不正确的 - 在 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 很容易并且是原生的。
希望这可以帮助。