bronsted / orm
PHP的一个简单ORM
v4.2
2024-01-28 13:49 UTC
Requires
- php: ^7.4 || ~8.0
- ext-pdo: *
Requires (Dev)
- fakerphp/faker: ^1.15
- phpunit/phpunit: ^9.5
README
这是一个简单的ORM数据库映射器,提供了一些便捷方法来查询、创建和更新对象。它不支持关联。相反,我使用约定,外键是表名后追加 '_uid'。另一个约定是,一个对象必须有一个名为 'uid' 的属性,当你调用 save 并且 uid == 0 时,它将被转换为插入语句,否则它将被转换为更新语句。
它基于我较旧的类似包,但现在你可以使用类型化属性。
安装
此包可以通过Composer安装
`composer install bronsted\orm`
示例
以下是定义的一个示例类
class Sample extends DbObject { protected int $uid = 0; protected ?string $name = null; protected ?DateTime $created = null; }
此类将对应一个名为 sample 的表,其中属性是列。
如你所见,属性由类型描述,这意味着当对象从表行加载时,列会被转换为属性类型。这样,日期就不是字符串,而是一个具有有意义操作的日期对象。
创建对象并持久化
$sample = new Sample(); $uid = $sample->save();
查找一个或多个对象
// returns a single object $sample = Sample::getByUid($uid); // returns 0 or more objects $samples = Sample::getBy(['name' => 'something%']);
更改属性并持久化
$sample = Sample::getByUid($uid); $sample->name = 'Hello'; $sample->save();
删除对象
$sample = Sample::getByUid($uid); $sample->delete();
您还可以访问DB类中较低级别的数据库函数,该函数提供DbObject到sql的转换,或者您可以自己编写sql。
配置
连接是通过纯PHP PDO完成的。
$pdo = new PDO('sqlite::memory:'); $dbCon = new DbConnection($pdo); Db::setConnection($dbCon);