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
中注册数据库组件时监听这些事件,等事件触发时做相应的处理即可,绑定事件的方式有两种,第一种是注入方法方式绑定。第二种是手动绑定事件
我的主页