objectiveweb/db 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

objectiveweb/db

Composer 安装命令:

composer require objectiveweb/db

包简介

Database Abstraction Layer and Management Frontend

关键字:

README 文档

README

Getting Started

use Objectiveweb\DB;

$db = new DB('pdo uri', 'username', 'password');

// general queries
$db->query('create table ...')->exec();

// insert
$insert_id = $db->insert('table', array('field' => 'value', 'otherfield' => 'value'));

// update (table, values, conditions)
$affected_rows = $db->update('table', array('field' => 'newvalue', ...), array('field' => 'value'));

// select all rows
// returns array ( row1, row2, ...)
$rows = $db->select('table')->all();

// map results by field
// returns associative array { 'row1_field_value' => row1, 'row2_field_value' => row2, ...)
$rows = $db->select('table')->map('field');

// select IN
$rows = $db->select('table', array('ID' => array( 1, 2, 3))->all();

// fetch row by row
$query = $db->select('table');

while($row = $query->fetch()) {
    // process $row
}

// delete (table, conditions)
$db->delete('table', array('field' => 'value'));

// transactions
$db->transaction(function() use ($somevar) {
    $id = $db->insert(...);
    $db->update(...);

    if($condition) {
        throw new \Exception('Error - transaction rolled back');
    } else {
        return $id;
    }
});

CRUD Operations

use Objectiveweb\DB;

$db = new DB(...);

$table = $db->table('tablename', [
    'pk' => 'id',
    'join' => []
]);

// Insert
$id = $table->post(array('field' => 'value', ...);

// Select all rows (returns DB\Collection)
$table->index();

// Get parameters
$data = $table->index([ 
    'filter' => [ 'field' => 'value' ], 
    'sort' => ['id', 'asc'],
    'range' => [ 0, 4 ]
]);

// Number of results
count($data);

// Total number of results (when using range)
$data->total();

foreach($data as $item) {
    $item['field'];
}

// Update (key, values)
$affected_rows = $table->put(array('name' = 'new name'), array('name' => 'old name'));

// Update by ID
$affected_rows = $table->put(id, array('field' => 'new value'));

Extending DB\Table

class MyTable extends Objectiveweb\DB\Table {
    var $table = 'table_name';
    var $params = [
        'pk => 'id',
        'join' => []
    ];
}

// then, instantiate it
$table = $db->table('MyTable');

$table->post(array('name' => 'new item'));

objectiveweb/db 适用场景与选型建议

objectiveweb/db 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 400 次下载、GitHub Stars 达 1, 最近一次更新时间为 2014 年 12 月 19 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「sql」 「ui」 「db」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 objectiveweb/db 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 objectiveweb/db 我们能提供哪些服务?
定制开发 / 二次开发

基于 objectiveweb/db 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 400
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 24
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2014-12-19