phc php,phc: phc(phpcompiler))是一个 PHP 编译器,可以用来将 PHP 代码编译成可执行程序,将 PHP Web 程序编译成 Zend 扩展,或者将多个 PHP 文件合...

PHC

phc is an open source compiler for PHP with support for plugins. In addition, it

can be used to pretty-print or obfuscate PHP code, as a framework for developing

applications that process PHP scripts, or to convert PHP into XML and back,

enabling processing of PHP scripts using XML tools.

Note: phc is unmaintained. It does compile some programs, and has an advanced

optimization framework. However, these are not for production use (notably they

lack support for objects!). It has an excellent program transformation framework

though, which unfortunately was last updated for PHP 5.2, and does not support

newer features. PRs will likely still be read, and if they pass the CircleCI

build, I may merge them.

the docs or

the website source for the info

that used to be there.

Building from source

After checking out via git, run

$ touch src/generated/* Makefile.in configure Makefile libltdl/aclocal.m4 libltdl/Makefile.in libltdl/configure libltdl/Makefile

$ ./configure

$ make

$ make install

For more detail, see (the manual)(doc/manual).

OSX

There's a little bit of work to get it building on OSX:

$ brew install homebrew/versions/boost155 xerces-c boehmgc

$ LDFLAGS="-L/usr/local/opt/boost155/lib -L/usr/local/Cellar/bdw-gc/7.6.0/lib" CPPFLAGS="-I/usr/local/opt/boost155/include -I/usr/local/Cellar/bdw-gc/7.6.0/include" ./configure --disable-static --disable-gc

Testing

The tests are held in test/framework/, but tests should be run

from this directory. test/support_files/ are files used by the tests, for

example for regression. test/subjects/ are the files used to

test phc. Most are designed to test some feature or tickle some bug.

test/subjects/labels controls what tests are run on which subjects. test/logs/

contains logs of failed tests. test/dependencies are used to avoid running a

test if we know it wont work because a previous test failed. test/working

contains the working directory for each test run.

To run tests:

$ make test # aka make check

or

$ make installcheck

or

$ make long-test

or

$ php test/framework/driver.php

The latter allows command line options, and limiting the tests with regular

expressions. Run driver.php with the -h flag for details.

In order to run tests on your own php files, add the files to

test/subjects/3rdparty/, and list them in test/subjects/3rdparty/labels. In

order to generate the support files, for example if you'd like the regression

tests to succeed rather than be skipped, run

$ make generate-test-files

By default, 3rdparty tests are treated as 'long', so need to be run with

$ make long-test

Its also straight-forward to test PHP's phpt test files:

run the test suite on PHP (in PHP's directory: $ TEST_PHP_EXECUTABLE=./sapi/cli/php --keep=php). This creates .php files from the .phpt files

link the PHP phpt directory from test/subjects/3rdparty.

update test/subjects/3rdparty/labels

Run the tests using the .php files.

This doesnt provide the EXPECT functionality etc, but we dont really need that in the majority of cases.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值