Download the PHP package binsuper/moon without Composer
On this page you can find all versions of the php package binsuper/moon. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package moon
Moon
简介
Moon是一个以ORM模式实现的Mysql数据库操作组件。
特点
Moon支持以下功能:
- 轻量级的ORM组件,性能好,效率高;
- 面向对象编程,轻松的对数据库进行操作,不需要拼接SQL语句(支持原生SQL,但不推荐);
- 安全性良好,防SQL注入,模型操作防止全表更新和删除;
- 良好的扩展性,快速实现个性化需求;
- 支持主从模式,内部隐式完成切换;
需求
Moon需要以下内容:
- PHP7.0以上版本
- php-pdo扩展
- catfan/medoo1.6以上版本
安装
Moon目前仅有一种安装方式:
- 通过 Composer 安装
通过 Composer 安装
- 确认Packagist上支持Moon
-
作为项目的依赖项进行安装
$ composer require binsuper/moon
之后,您就可以在项目中使用Moon。
使用教程
注意:下面的代码或配置只是为了教学编写的简单示例,不应该直接用于生产环境
1. 安装Moon
不再赘述
2. 参数配置
-
单库模式的配置信息
- 主从模式的配置信息
3. 连接数据库
默认为单例模式,所以需要提前初始化配置信息。
注意:一般不需要显示的获取Moon实例,推荐使用模型对数据库进行操作(下面会介绍模型的使用)。
4. 数据库操作
一个模型对应数据库的一个表,使用模型可以对数据表进行增删改查等操作。 Moon的模型对数据表结构有一个要求:必须包含一个“主键ID”字段,字段默认名称为“id”, 该名称可以通过修改模型的属性“primary_key”来适配不同的场景。
-
获取模型
有以下两种方式实例化模型:
通用模型
自定义模型
-
单条记录的模型操作
主要使用到三个函数load()、save()和remove()对数据执行增删改查操作
-
查询记录
- where条件
函数 | 返回值 | 说明 |
---|---|---|
where(key, val) | Model | 等于 |
whereNot(key, val) | Model | 不等于 |
whereGT(key, val) | Model | 大于 |
whereGE(key, val) | Model | 大于等于 |
whereLT(key, val) | Model | 小于 |
whereLE(key, val) | Model | 小于等于 |
whereIn(key, array) | Model | 在列表中 |
whereNotIn(key, array) | Model | 不在列表中 |
whereNull(key) | Model | 为空 |
whereNotNull(key) | Model | 不为空 |
whereBetween(key, val1, val2) | Model | 介于...之间 |
whereNotBetween(key, val1, val2) | Model | 不在...之间 |
whereLike(key, val) | Model | 匹配模糊搜索 |
whereNotLike(key, val) | Model | 匹配模糊搜索 |
whereFunc(key, function_name) | Model | 条件为系统函数 |
whereAnd(callable $func) | Model | 条件的关联关系 - and, 最外层所有的where条件默认使用and连接,不需要显示调用 |
whereOr(callable $func) | Model | 条件的关联关系 - or |
-
- Join联表
参数table可以是一个模型,也可以是一个表名字符串 如果无特殊说明,后续所有table都是模型
函数 | 返回值 | 说明 |
---|---|---|
join(table, callable func) | Model | 内联查询 - inner join |
joinLeft(table, callable func) | Model | 左联查询 - left join |
joinRight(table, callable func) | Model | 右联查询 - right join |
joinFull(table, callable func) | Model | 外联查询 - outer join |
*
- Group
函数 | 返回值 | 说明 |
---|---|---|
groupBy(key) | Model | 组合查询 |
*
- Order
函数 | 返回值 | 说明 |
---|---|---|
orderBy(key, sort) | Model | 排序 |
*
- Having
函数 | 返回值 | 说明 |
---|---|---|
having(callable func) | Model | 组合筛选 通常配合Group使用 |
havingRaw(raw) | Model | 组合筛选 通常配合Group使用 |
*
- limit
函数 | 返回值 | 说明 |
---|---|---|
limit(len, offset) | Model | 限制获取的数据条目 offset:默认为0 |
*
- 设置查询字段
函数 | 返回值 | 说明 |
---|---|---|
select(fieds, alias) | Model | 添加要查询的字段 |
selectStruct(array) | Model | 自定义数据返回结构 |
selectInt(fieds, alias) | Model | 添加要查询的字段并输出为int类型 |
selectBool(fieds, alias) | Model | 添加要查询的字段并输出为bool类型 |
selectNumber(fieds, alias) | Model | 添加要查询的字段并输出为number类型 |
selectJson(fieds, alias) | Model | 添加要查询的字段并输出为json类型 |
*
- 执行更新操作查询动作
函数 | 返回值 | 说明 |
---|---|---|
count() | int | 查询符合条件的数据条目 |
first() | array | 返回第一条数据 |
all() | array | 返回所有符合条件的数据 |
- 新增/更新记录
函数 | 返回值 | 说明 |
---|---|---|
value(key, value) | Model | 新增,修改数据 |
valueJson(key, array) | Model | 修改数据 - json格式 |
valueAdd(key, value) | Model | 修改数据 - 自加 |
valueSub(key, value) | Model | 修改数据 - 自减 |
valueMul(key, value) | Model | 修改数据 - 自乘 |
valueDiv(key, value) | Model | 修改数据 - 自除 |
valueFunc(key, raw) | Model | 修改数据 - 自定义 |
insert() | Model | 执行新增操作 成功返回自增主键ID,失败返回false |
update() | Model | 执行更新操作 执行成功后返回修改的数据总条数 注意:必须包含查询语句,否则直接返回false |
- 删除记录
函数 | 返回值 | 说明 |
---|---|---|
value(key, value) | Model | 删除记录 注意:必须包含查询语句,否则直接返回false |
- 事务
函数 | 返回值 | 说明 |
---|---|---|
transaction(callable action) | mixed | 事务处理 |
基于pdo实现的事务处理,可以嵌套使用,只有最外层事务有效。 事务在函数执行完成后会自动提交,只有两种情况会导致事务回滚:
1) action函数的返回值为布尔值false; 2) action函数抛出异常
- 调试模式
函数 | 返回值 | 说明 |
---|---|---|
debug() | Model | 开启DEBUG |
开启了debug模式,所有的数据库操作都不会抵达数据库,而是打印 处将要执行的sql语句,并且操作的返回值统一为布尔值false
联系方式
- Github: https://github.com/binsuper/Moon
- E-mail: [email protected]