taeluf/rdb
Composer 安装命令:
composer require taeluf/rdb
包简介
Custom property getters on beans, better error reporting, sql-verbs as an API. And some other quality of life stuff.
README 文档
README
Custom property getters on beans, better error reporting, sql-verbs as an API. Additional convenienence functions.
Getting Started
Install: composer require taeluf/rdb 0.2.* or v0.2.x-dev or {"require":{"taeluf/rdb": "0.2.*"}}
We use \RDB:: instead of \R::. See Redbean docs for things not covered here.
1. Setup your connection
// \RDB::setup('mysql:host=localhost;dbname=mydatabase', 'user', 'password' );
\RDB::setup('sqlite:'.__DIR__.'/testdb.sqlite');
//empty our recipe table at start of each test
\RDB::delete('recipe',[]);
2. Write Some Data
\RDB::insert('recipe', ['name'=>'Tofu Scramble']);// <- convenience method in RDB
\RDB::insert('recipe', ['name'=>'Vege Stirfry']);
$loMein = \RDB::insert('recipe', ['name'=>'Lo Mein']);//also returns a bean
$loMein->description = "A non-authentic Chinese noodle dish";
// \RDB::store($loMein); // <- The redbean way
$loMein->save(); // <- Convenience method in RDB
\RDB::update('recipe', ['id'=>$loMein->id,'name'=>'Veggie Lo Mein']); //<-- Convenience method in RDB. Updates based on the id
\RDB::update('recipe', ['name'=>'Veggie Stirfry'], ['name'=>'Vege Stirfry']); //<-- 2nd array is used as WHERE params for the update
$list = \RDB::select('recipe', ['name'=>'Veggie Lo Mein']);
$loadedLoMein = $list[0];
$list2 = \RDB::select('recipe', ['name'=>'Veggie Stirfry']);
$loadedStirfry = $list2[0];
3. Create a Model (if you need)
Custom Redbean Models let you add functionality to redbean. RDB simplifies some things.
// RDBModel namespace is required
namespace RDBModel;
class Recipe extends \RedBeanPHP\SimpleModel {
//Custom property getters MUST start with &get
public function &getSlug(){
$name = strtolower($this->name);
$parts = explode(' ', $name);
$slug = implode('-', $parts);
return $slug;
}
}
& Use that model:
$tofu = \RDB::select('recipe', ['name'=>'Tofu Scramble'])[0];
$slug = $tofu->slug; // <- not stored in db
$url = '/recipe/'.$slug.'/';
return true
&& $this->compare('tofu-scramble', $slug)
;
Other Stuff
$bean->props()to get all properties (just the ones from the database)$bean->export()adds_typeto the exported array.- (untested) Call
$bean->import($exported)and your exported array will load into the database, thanks to the_typeaddition
- (untested) Call
- Table names (types) are made lower-case, and non alpha non-underscore characters are removed, so you don't have to be so careful about the type you pass into
RDB::find()
taeluf/rdb 适用场景与选型建议
taeluf/rdb 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 35 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 02 月 06 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 taeluf/rdb 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 taeluf/rdb 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 35
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-02-06