Download the PHP package jhq0113/roach-orm without Composer
On this page you can find all versions of the php package jhq0113/roach-orm. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package roach-orm
roach-orm
roach-orm是一个简单高性能的PHP语言ORM框架,支持数据库的负载均衡、预防SQL注入、故障自动摘除、自动恢复以及读写分离等强大功能,整个代码文件不到20K。
我的官方网站
安装方式
1.使用Model
1.1 配置db
通过
composer下载完本依赖后,在您的项目中加载composer依赖(一般在您的项目入口文件中require上vendor/autoload.php即可),如果已经加载忽略此步骤。在使用
Model前需要将db组件注册到roach\Container中,配置是数组格式,可以放到配置文件中,注册方式如下
1.2 使用Model进行CRUD
假入您的数据库中有如下表
创建
UserModel类,使之继承roach\orm\Model,如下
- A.insert数据
插入单条数据
插入多条数据
- 查询
where条件可以是数组,也可以是字符串,当where条件为数组时,多个条件之间是AND关系,all、one、updateAll和deleteAll等方法中的where条件的表达式解析是一致的相等查询
IN查询
BETWEEN查询
范围查询(
>,>=,<,<=,><,!=)LIKE查询
多条件查询
GROUP BY查询
ORDER BY查询分页查询
-
更新操作
-
删除操作
- 使用事务
不支持跨库事务
普通方式
闭包方式
2.读写分离
-
默认情况下,查询使用从库进行查询,如果想使用主库查询,需要将
all、one方法的参数变为true即可 -
所有写操作都是走的主库
- 执行原生sql
读操作
写操作
3.切库
如果我们的项目使用的不是一个数据库集群,这样我们的项目就需要跨集群访问数据库,可以通过如下方式实现
Model类中
这样我们就完成切库,当我们使用TradeModel访问数据库是自动调用的是
tradeDb集群的数据库
4. 事件处理
roach-orm支持四种事件
| 事件名称 | 常量 | 触发机制 |
|---|---|---|
| db:connect:exception | roach\orm\Connection::EVENT_EXCEPTION_CONNECT | 在连接数据时,某个节点连接异常,此事件不会抛出异常,只有当所有连接都连接不上才会抛出异常 |
| db:query:before | roach\orm\Connection::EVENT_BEFORE_QUERY | 执行sql之前触发 |
| db:query:after | roach\orm\Connection::EVENT_AFTER_QUERY | 执行sql之后触发 |
| db:connect:lost | roach\orm\Connection::EVENT_EXCEPTION_CONNECT_LOST | 在执行sql时,连接断了,此事件不会抛出异常,只有当所有连接都连接不上才会抛出异常 |
我们可以在向
Container中注册数据库组件时监听这些事件,等事件触发时做相应的处理即可,绑定事件的方式有两种,第一种是注入方法方式绑定。第二种是手动绑定事件
我的主页