Details
-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 3.6.0-b1
-
Component/s: None
-
Labels:None
Description
The ReportType interface, used in generating reports, should return an implementation of Iterator (currently documented as PDOStatement). This isn't a problem since PDOStatement implements Iterator.
Additionally, the ReportManager, which uses reports of the ReportType interface must be updated to iterate using foreach instead of while, with no PDOStatment specific method calls, and support returning an Iterator object instead of PDOStatement.
This will allow reports to be generated using any iteratable object, whether they be PDOStatement or ArrayObject, etc. This vastly improves the capabilities of the report system.
To recap:
- Update ReportType interface doc to use Iterator instead of PDOStatement
- Update ReportManager::fetchAll doc to use Iterator instead of PDOStatement
- Update ReportManager::fetchAll to use foreach instead of while
Note that PDOStatement isn't technically an Iterator. It's Traversable.
So we really should convert all reports to return instances of Iterator by converting PDOStatement using IteratorIterator.