lfphp / porm
PHP 数据库ORM抽象库,用于PHP程式独立使用数据库时,方便以ORM方式进行设计。
0.0.58
2024-03-28 07:46 UTC
Requires
- php: >=5.6
- ext-json: *
- ext-mbstring: *
- ext-mysqli: *
- ext-pdo: *
- lfphp/func: ^1.1
- lfphp/logger: ^1.1
- lfphp/pdodsn: ^0.0.12
Requires (Dev)
- phpunit/phpunit: ^9.5
- dev-master
- 0.0.58
- 0.0.57
- 0.0.56
- 0.0.55
- 0.0.54
- 0.0.53
- 0.0.52
- 0.0.51
- 0.0.50
- 0.0.49
- 0.0.48
- 0.0.47
- 0.0.46
- 0.0.45
- 0.0.44
- 0.0.43
- 0.0.42
- 0.0.41
- 0.0.40
- 0.0.39
- 0.0.38
- 0.0.37
- 0.0.36
- 0.0.35
- 0.0.34
- 0.0.33
- 0.0.32
- 0.0.31
- 0.0.30
- 0.0.29
- 0.0.28
- 0.0.27
- 0.0.26
- 0.0.25
- 0.0.24
- 0.0.23
- 0.0.22
- 0.0.21
- 0.0.20
- 0.0.19
- 0.0.18
- 0.0.17
- 0.0.16
- 0.0.15
- 0.0.14
- 0.0.13
- 0.0.12
- 0.0.11
- 0.0.10
- 0.0.9
- 0.0.8
- 0.0.7
- 0.0.6
- 0.0.5
- 0.0.4
- 0.0.2
- 0.0.1
This package is auto-updated.
Last update: 2024-05-28 08:32:35 UTC
README
PORM基于PHP5.6以上环境开发测试
PHP 数据库ORM抽象库,用于PHP程式独立使用数据库时,方便以ORM方式进行编码。PORM当前仅支持MySQL,且以MySQLi或PDO方式进行链接(建议使用PDO),请用户确保PHP中正确安装相应扩展。
1. 快速安装
composer require lfphp/porm
2. 方法调用
PORM 支持通过定义ORM Model类方式进行调用,也支持直接链接数据库方式进行调用。
2.1 ORM方式
<?php use LFPhp\PORM\ORM\Model; class User extends Model { static public function getTableName(){ // TODO: Implement getTableName() method. } static public function getAttributes(){ // TODO: Implement getAttributes() method. } static protected function getDBConfig($operate_type = self::OP_READ){ // TODO: Implement getDBConfig() method. }} //查询对象 $user = UserTable::findOneByPK(1); var_dump($user); //更改对象 $user->name = 'Jack'; $user->save(); //新增对象 $user = new UserTable(); $user->name = 'Michel'; $user->save(); echo $user->id;
2.2 数据库操作
<?php //创建数据库配置 $cfg = new MySQL([ 'host'=>'localhost', 'user'=>'root', 'password'=>'123456', 'database'=>'database' ]); //创建数据库链接实例 $ins = DBAbstract::instance($config); //创建查询对象(查询语句) $query = (new Query())->select()->field('id', 'title')->from('blog_article'); //获取结果 $ret = $ins->getPage($query); //获取计数 $count = $ins->getCount($query);
3. 其他
3.1 注解规则
通过在Model中引入使用
AttributeAnnotation
类,可自动根据当前类注释,生成DBAttribute
注解。
此时,需保证类注释规则包含以下类型注解:
- @property string $name 名称(名称备注)
3.2 数据库重连支持
在数据库配置中添加 max_reconnect_count
项目,可以设置数据库在丢失连接时(非首次连接)自动重新连接数据库。
<?php //创建数据库配置 $cfg = new MySQL([ 'host'=>'localhost', 'user'=>'root', 'password'=>'123456', 'database'=>'database', 'max_reconnect_count' => 10, //设置最大重连次数 ]); $ins = DBAbstract::instance($config); //...