One problem with using toPHP() is that method requires a driver, which feels silly. No subclass uses that $driver parameter, so I'm not sure why it is required. Perhaps I can change the marshall() function and remove the driver parameter in a separate set of changes?