Skip to content
Dominik del Bondio edited this page Jan 19, 2014 · 1 revision

HipHop-PHP + Agavi

Issues / Workarounds

Agavi

Missing ArrayObject class

ArrayObject hasn't been implemented yet, but we can probably do that in PHP and have it compiled to C++ for us.

Changesets ad0ef5b

Finding correct path

HPHP has trouble resolving relative config path names passed to AgaviConfigCache::checkConfig. Wrapping realpath() around the path solves the problem.

Update: This is more of an issue to do with how HPHP stores its internal file structure and is dependant on the files.list we pass. If the files.list file contains full path names, HPHP will choke when a relative one is to be found and vice versa.

Changesets 0c4fd6c
HPHP ticket http://github.com/facebook/hiphop-php/issues/80

create_function dependence

HPHP is likely to never support this.

Changesets 882f0ea

Compiling

Read: http://wiki.github.com/facebook/hiphop-php/running-hiphop

We need to compile all of the XML files to PHP that Agavi requires during runtime. (A script to do this will eventually be provided)

We then need to generate a list of all files we want compiled by HPHP, excluding the generated "compile.xml" files, to avoid duplicate classes. (The script mentioned above can do this for us, too)

Other excluded files (for now) include:

  • /translation/* (Optional)
  • /config/util/*
  • /vendor/*
  • /build/*
  • /testing/*
  • /database/*
  • /renderer/ezctemplate/*
  • /renderer/AgaviSmartyRenderer.class.php
  • /renderer/AgaviEzctemplateRenderer.class.php
  • /renderer/AgaviPhptalRenderer.class.php
  • /util/AgaviRecursiveDirectoryFilterIterator.class.php