tyrion / simple-pdo-orm
v2.0.4
2024-06-17 19:01 UTC
Requires
- php: >=8.0.1
- ext-pdo: *
README
这是一个有用的库,可以帮助您使用查询访问数据库实体,并将其转换为作为参数传递的对象。
SELECT * FROM car
将返回您可以使用PDO操作的所有实体。
使用示例
$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 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 }
完整示例包含在此包的Example文件夹中,其中包含简单的自动加载器。