-3

我有自己的 PHP CLI 实用程序,所以我需要 PHP 编译器。我发现在最后的 PHP 版本中没有任何工作,所以我现在使用的是 Phalanger,但它需要安装在客户端 mashine 上才能运行编译的脚本(!),并且它在 .NET 中编译文件(!!)。值得我见过的拐杖,但它正在工作并且有一个控制台版本(因为我正在使用 Notepad++ 进行开发)。我不知道为什么只值得拐杖工作)所以,我一直在寻找好的控制台 PHP 编译器,但此时什么也没找到。我发现的所有东西都非常古老。有一个列表和上次发布的年份:

  • phc: 2011
  • Roadsend PHP 编译器:2010
  • 班巴兰:2006
  • 二进制PHP:2003(!)

FB 发布了一个 HipHop,但是使用起来太可怕了,而且我认为它只是看起来像一个虚拟 mashine,实际上不是编译器。所以最后我决定编写自己的编译器来处理新版本的 PHP,并使用原生 bcompiler 来获取字节码,但发现 bcompiler 也死了,它的最后一个版本是在 2011 年!所以我可以问你,为什么所有的 PHP 编译器都死了?找到一个 bcompiler 源,例如为 Windows 的 PHP 构建一个新的 DLL 扩展,并将实际的 PHP DLL 版本放在其中是没有问题的,但是为什么有时,当惊人的 PHP 7 发布时,没有任何(任何! ) 轻量级和简单的实际 PHP 编译器?

还是我不明白什么?如果是这样 - 什么?非常感谢!

4

3 回答 3

0

这是一个永无止境的大项目,因为 php 一直在发展和成长(不像 C 这样的语言)。开源维护者会转向其他事情,比如与家人共度时光,或者找一份工作。

我认为这些项目死亡是因为它们通常不适用于现实生活中的项目。充其量你可以编译几个脚本,但大多数在某个大项目中都会失败。对于 Web 开发(我怀疑 98% 的应用程序),您嵌入了与编译不兼容的脚本和样式。因此,您必须以不同的方式编写代码才能使用编译器,这在某些方面首先违背了使用 PHP 的目的。

PHP 的版本太多了,编译器也远远落后于无用。你真的必须想出另一种方法来保护你的产品。每个商业编码器都有一个解码器,因此实际上没有办法保护您的代码不被想要获取它的人获取。我使用 ioncube 对我的脚本进行编码,但这只是为了防止客户破坏事物然后抱怨它不起作用。

于 2016-11-05T23:04:50.397 回答
0

对于编译非常简单的(单文件)工具,有PHPFlexer: http: //www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/PHPFlexer.shtml

(它基于 phc-win 但更易于使用)

于 2018-01-09T16:32:45.920 回答
0

在寻找解决方案一段时间后,我编写了自己的编译器,它支持 PHP 7.1+(!)。所以我的问题解决了。谢谢大家!

这是它:https ://sourceforge.net/projects/phpc/

于 2016-12-30T16:32:32.560 回答