phc logo

Contributors needed

phc is looking for contributors to help complete the compiler, add new features, and further test existing functionality. Developers who are familiar with (or willing to learn) the PHP C API are particularly desired, but anybody with a knowledge of C++, C or PHP are appreciated. See the Developers and Contributors for more details.

Downloads

Source

phc is getting ready for a new release. We recommend the use of phc-0.2.0-beta1.tar.gz (gzip compressed) or phc-0.2.0-beta1.tar.bz2 (bzip2 compressed). Older versions can be found in the archive. We do not recommend using older versions. For a history of the changes, see ChangeLog (release notes will be written soon). Check the Installation Instructions for system requirements.

SVN Repository

Our latest work is available in our SVN repository. Follow the instructions on the front page to do an anonymous checkout. It is also possible to browse the repository online. To build phc, follow the installation instructions.

Packages

While we do not provide any binaries or packages of phc, several people have contributed packages for their OSes.

Dries Verachtert has RPMs for phc in DAG RPM repositories. x86_64, i386 and source RPMs are all supported.

Conor McDermottroe has created a port for the FreeBSD ports collection.

If your OS isn't here, you might be interested in more information on how to port and package phc.

Documentation

Please see Documentation for documentation downloads.

Legalities

phc is an open source project, but we intend for it to be freely used in any project (including commercial projects). Please contact us if licencing issues prevent your use of phc.

phc is released under the BSD license. It makes use of the Zend Engine, which is freely available from www.zend.com and comes with its own license. More detailed information on licensing issues, see the directory license/ in the source distribution.

Projects using phc

PHT

Written by Daniel Barreiro, PHT embeds HTML/XML into PHP to ensure that the XML or HTML output by PHP scripts is well-formed and (although this has not yet been implemented) valid. Details and source can be found at http://www.satyam.com.ar/pht/.

Plumhead

Plumhead is written by Bernhard Schmalhofer and attempts to implement PHP on Parrot by taking the XML output from phc and transforming it (using XSLT) to the Parrot internal representation. See http://www.perlfoundation.org/parrot/index.cgi?plumhead for more information.

Rose

Rose is source-to-source compiler infrastructure supporting C, C++, Fortran, and now, PHP. phc parses PHP source code into an AST, which is then folded into the Rose AST. It is intended that standard Rose static analyses can then be applied to PHP. Rose was developed by Dan Quinlan at Lawrence Livermore National Laboratories, and phc was integrated with it by Ryan Stutsman. It is available from http://rosecompiler.org (see "Enabling PHP Support" in the Rose User Manual for instructions).