Represents one database table row. The framework ensures that there's all time only one single instance of InfoBase class for one data row, even after repeated retry.
InfoBase class is located in the file /libraries/pj/data/InfoBase.php.
The key property is the member array $data, which is dynamically filled by fields from the underlying database table row when retrieved and written to the row when inserted or updated. The __get ($name) and __set ($name) functions access named elements of this array. Further more, the setter function checks whether the new value differs from the current one and sets the $isDirty flag if so.
Classes extending InfoBase typically serve as representations of one database table row. Basically, they don't need to implement any code but an empty class declaration.
It is necessary to register associations between the class and the underlying table before first database operation occurs, preferably at application start-up. Class instances can be retrieved from the database individually by their ID or in batch by queries passed either as a string or as a SearchKey structure.
See InfoBase API and InfoBase Examples for further details.