erusev/base
Composer 安装命令:
composer require erusev/base
包简介
Simple Database Interface
README 文档
README
Base is a simple library that makes it easier to work with databases in PHP.
I have been using it since 2012 and I felt like it is about time I share it.
Features
- Simple
- Intuitive
- Independent
- Secure
- Tested in 5.3, 5.4, 5.5, 5.6, 7 and HHVM
Installation
Include both Base.php and Collection.php or install the composer package.
Examples
Connect to a database:
# the constructor takes the same parameters as the PDO constructor $Base = new \Base\Base('mysql:host=localhost;dbname=example', 'username', 'password');
Work with records:
# read user 1 $Base->readItem('user', 1); # update the username of user 1 $Base->updateItem('user', 1, ['username' => 'john.doe']); # create a user $Base->createItem('user', ['username' => 'jane.doe', 'email' => 'jane@example.com']); # delete user 1 $Base->deleteItem('user', 1);
Work with collections:
# read all users $Base->find('user')->read(); # read the users that are marked as verified in a desc order $Base->find('user')->whereEqual('is_verified', 1)->orderDesc('id')->read(); # read the user with the most reputation $Base->find('user')->limit(1)->orderDesc('reputation')->readRecord(); # mark users 1 and 3 as verified $Base->find('user')->whereIn('id', [1, 3])->update(['is_verified' => 1]); # count the users that don't have a location $Base->find('user')->whereNull('location')->count(); # plain sql conditions are also supported $Base->find('user')->where('is_verified = ?', [1])->read();
Handle relationships:
# read the users that have a featured post $Base->find('user')->has('post')->whereEqual('post.is_featured', 1)->read(); # read the posts of user 1 $Base->find('post')->belongsTo('user')->whereEqual('user.id', 1)->read(); # read the posts that are tagged "php" $Base->find('post')->hasAndBelongsTo('tag')->whereEqual('tag.name', 'php')->read(); # unconventional FK names are also supported $Base->find('user')->has('post', 'author_id')->whereEqual('user.id', 1)->read();
Execute queries:
# read all users $Base->read('SELECT * FROM user'); # read user 1 $Base->readRecord('SELECT * FROM user WHERE id = ?', [1]); # read the username of user 1 $Base->readField('SELECT username FROM user WHERE id = ?', [1]); # read all usernames $Base->readFields('SELECT username FROM user'); # update all users $Base->update('UPDATE user SET is_verified = ?', [1]);
Notes
- Not tested on other RDBMSs than MySQL
- Relationship methods assume that table names are singular - ex:
userinstead ofusers - Relationship methods assume that FK names end in
_id- use$fkEndingto customize
erusev/base 适用场景与选型建议
erusev/base 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 170 次下载、GitHub Stars 达 266, 最近一次更新时间为 2015 年 01 月 26 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「database」 「orm」 「pdo」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 erusev/base 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 erusev/base 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 erusev/base 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Dibi is Database Abstraction Library for PHP
Kinikit - PHP Application development framework MVC component
Store your language lines in the database, yaml or other sources
PHP Database ORM for Symfony1. Do NOT use for new projects: please move to a newest Symfony release and Doctrine2
A package for automatically encrypting and decrypting Eloquent attributes in Laravel 5.5+, based on configuration settings.
A PSR-7 compatible library for making CRUD API endpoints
统计信息
- 总下载量: 170
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 267
- 点击次数: 11
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-01-26