1

目前 PHP 5.3 托管环境必须安装和使用“Zend Guard Loader”扩展来处理和执行 Zend Guard 编码文件。我无法让它执行编码用于 Zend Optimizer (PHP 5.2) 的文件。

有什么解决方法吗?

4

3 回答 3

0

我不这么认为......因此,我也坚持使用 php 5.2。

如果您想使用“Zend Guard Loader”运行zend 编码的5.2 脚本,您将需要花更多的钱购买新版本来再次对脚本进行编码......伤心。

于 2011-11-14T02:59:47.750 回答
0

对我有用的唯一方法是包含 php 5.2 文件而不是 Zend Guards 消息,如果条件检查 php 版本没有找到 zend 保护加载程序时会显示该消息。肮脏,但可以工作,但仍然需要存在 2 个文件,但不需要加载程序在未受保护的代码中切换它们。

于 2011-11-18T03:27:43.213 回答
0

要回答 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 很容易并且是原生的。

希望这可以帮助。

于 2012-03-12T12:40:37.807 回答