Over the last few days, I finally decided to revisit the old OSInet PHP library, to dust it off somehow, and convert the class-based parts to PSR0 and the whole to what seems to be liable to become PSR1 at some point.
This library contains a zoo of function helping with PHP-GTK development, and three packages with their demo application:
- Class Grapher
- Build a graph of inheritance and interface implementations on a directory (and subdirectories) of PHP code
- This package uses the Drupal Grammar Paser to parse code, and includes a Drush 5 plugin for easy use within a Drupal site, but can also be used to parse non-Drupal code, as long as the Grammar Parser - which does not depend on Drupal either - is installed in the include path.
- It is a more complete version of the Drupal-only Class Grapher sandbox on drupal.org.
- In the current version, graphs are generated using GraphViz. An extension to a client-side visualization tool like the Infovis toolkit should come someday. Suggestions for other client-side libraries welcome (please comment!).
- Open Document Calc reader
- This package provides a few classes and methods to extract the content of OpenDocument (LibreOffice, OpenOffice.org, ...) spreadsheets.
- Finite State Machine
- This package is used to build applications designed around a finite state machine, and is mostly intended for use in PHP-GTK applications, to provide asynchronous processing.
- The demo application uses the PHP FTP extension to expose its asynchronous notifications in a PHP-GTK UI
It feels somehow disturbing to revisit this code 5 years later, remember how taxing it was to write at the time and how complex it seemed then, opposed to how simple and limited it appears today. This must be the effect of practice...