xml version="1.0" encoding="UTF-8" ?>
These VO (Value Object) classes act like "smart" arrays that know the names of your table's columns and their constraints. They also contain a location (in the child classes) to put "convenience" methods for various operations that may be called on for a row of data. For instance: Concatenating strings (like getFullName() returns "_lastName, _firstName") or a calculation (like getRating() returns _ratingsTotal/_numRatings)
The collection classes are designed to act as strongly typed arrays for a single type of table's Value Object ( {Table}VO ). They implement the built in PHP Iterator interface and can be used in foreach loops. They also have several methods for manipulating the objects they contain.
These classes are also aware of the columns available in a table and can be used to construct SQL queries and retrieve the results using a fluent interface.
These classes know the basic SQL queries to perform CRUD operations using Mysqli prepared statements. The classes are also responsible for converting raw query data into object instances.
Tracks Value Objects and their current state. When objects are marked for updating, deleting, etc. this class keeps tabs on all of the objects registered with it. This allows all operations to be performed en masse and in a single method call, rather than similar operations called separately throughout script execution.
A singleton class that holds the single Mysqli connection to {DatabaseName} and the single DbExchange that is used to track data moving in and out of {DatabaseName}.