We are pleased to announce the availability of Scorpio Framework for PHP 0.4.3. This is mostly a maintenance release addressing further fixes in Smarty 3 and several improvements to the reporting system. This is a recommended update for all 0.4 users.
In the reporting system various fixes have been made to address memory usage when compiling reports. These changes include adding an FPDF plugin that generates PDF output page-by-page, hugely reducing memory usage. PHPExcel has been re-configured to use disk-caching for the worksheet data which is slower but reduces memory usage by up to half. Finally the reportData object instead of holding results in an internal array now uses an SQLite database. Depending on result set size this can reduce the memory foot-print considerably (in testing an 80MB result set required only 12.5MB).
With the switch to SQLite various other possibilities can be entertained such as SQL queries against the data for grouping or manipulating the data. As it is an SQLite database file it can be copied locally and used through any SQLite programme. One consideration though: adding to the revised reportData object can much slower if you do not use a transaction. It is strongly recommended to wrap the actual setting of results to the reportData object in a beginTransaction() commit() code block. In various testing scenarios, this reduced the build time from ~60 seconds to 2.3 seconds.
Finally: as always please report any issues or feature requests to the forums on Source Forge.
Changes since 0.4.2:
- + Upgraded to Smarty 3.0.5
- + Upgraded to FirePHP 0.4
- + Added file / directory count method to fileObject
- + Changed reportData to use SQLite as the data store; reduces memory requirements for report data collection
- + Updated reportColumn to add support for revised reportData
- + Updated reportBase and reportWriterBase to support reportData mods
- + Updated PDF output to use page-by-page disk writing; reduces memory usage by a very large amount
- + Updated Excel writers to use disk data caching to reduce memory usage, results vary depending on size but very large savings
- + Updated report test cases
- + Fixed a minor bug in utilityValidateAbstract