tyrion / simple-pdo-orm
v2.0.4
2024-06-17 19:01 UTC
Requires
- php: >=8.0.1
- ext-pdo: *
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Usefull library that help you access to database entities using queries and transfer into Object you pass as parameter.
| id | Model | Brand | Price |
|---|---|---|---|
| 1 | 500 | Fiat | 45000 |
| 2 | Punto | Fiat | 32000 |
| 3 | Octavia | Skoda | 28000 |
SELECT * FROM car
Will return you all entities that you are able to work with using PDO.
Example of usage
$dbWrapper = new DbWrapper($config); // Create connection from config data $dbStatement = new DbStatement($dbWrapper->getConnection()); // get DB manager that run queries // SELECT all entities from `car` table $cars = $dbStatement ->setRowItemInstance(new Car()) // Set Class we want to generate using reflection form entities ->setQuery("SELECT * FROM {$dbStatement->getModelTableName()}") // set sql Query ->findResult(); // return DbTableRowIterator while ($cars->hasNextItem()) { // Iterate selected entities $car = $cars->getNextItem(); echo $car->getModel() . "<br/>"; } // SELECT specific car entity $car = $dbStatement ->setRowItemInstance(new Car()) ->setQuery("SELECT * FROM {$dbStatement->getModelTableName()} WHERE id = ?") ->setArguments(array(1)) ->findOne(); // SELECT unspecified model item: ClearPDOItem $data = $dbStatement ->setQuery("SELECT * FROM `car` WHERE `brand` LIKE '%?%'") ->setArguments(array("Fiat")) ->findResult()
Car class:
class Car implements DbTableRowItem { private const DB_TABLE = "car"; private $id; private $brand; private $year_of_production; private $price; private $model; /** * Support for property annotation for ignore unrelated columns * @tyrion-orm-ignore */ private $test; public function getId():int { return $this->id; } public function getBrand():String { return $this->brand; } ... // No setter necessary, only if you need to for UPDATE / INSERT }
Full example is included in Example folder of this package with simple autoloader included.