"Crudités, it's a cup of carrots sticks"
Create - Retrieve - Update - Delete - Introspection, Transaction, Errors & Schema
CRUDITES
C CRUD
R Relations
U Uniques as PK
D Disable, Don't Delete
I Introspect & Inspect
T Transactions and Tracking
E Errors
S Security
Crudites is a PHP PDO wrapper
CruditeException
extends \Exception
and is thrown by all Crudites components
The Source object stores and validates a DSN (Data Source Name)
It is created using a DSN string, the constructor will extract and validates all the required information
mysql:host=localhost;dbname=testdb
mysql:host=localhost;port=3307;dbname=testdb
If the database's name or a proper driver cannot be found, a CruditesException
is thrown with the message
_DSN_NO_DBNAME_
_DSN_NO_DRIVER_
_DSN_UNAVAILABLE_DRIVER_
The object stores
The object validates the driver's name (extracted from DSN string) by calling \PDO::getAvailableDrivers()
When instantiated, the object provides two methods:
DSN()
, returns the DSN string (string)name()
, returns the database name (string)The Connection object relies on PDO to connect to a database.
It is created using
The DSN string is validated using the Source object, and may throw CruditesException
A PDO object is created and may throw a PDOException
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, // the one option you cannot change
\PDO::ATTR_CASE => \PDO::CASE_NATURAL,
\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC
The PDO::ATTR_ERRMODE is the only option that cannot be overridden
The object stores:
When instantiated, the object provides the following methods:
The object represent a SQL database, handles connection and introspection.
Introspection is a two step process:
INFORMATION_SCHEMA
is queried and FK and UNIQUE constraints are stored in the object properties upon instantiationinspect(table_name)
and the results are stored in the table cache property. Inspection uses introspection to create a complete representation of a table: fields, data type, defaults & constraintsIt is created using a Connection
object. The connection is stored and the database instrospection is executed.
Connection
objectWhen instantiated, the object provides the following methods:
Connection
object