swap/bmodel
Composer 安装命令:
composer require swap/bmodel
包简介
Binah Model
README 文档
README
Binah Model
Instalação
php composer require jonassilva/bmodel
Configuração inicial - (Conexão com banco)
<?php // Arquivo config.php use Bmodel\Connection; // Definir conexao com banco de dados Connection::setConnection( 'banco', // Database null, // Conexao ID 'localhost', // Hostname NULL, // Port 'usuario', // Username 'senhaMuitoDificil' // password ); Connection::setModelPath('Model'); // pasta
Exemplos de uso
Trazer um registro(como objeto)
<?php use Bmodel\Query; $objCliente = Query::getTable('cliente')->find($id); if (!$objCliente) { throw new \Exception("Cliente não encontrado!", 404); } // Usar dados echo $objCliente->id; echo $objCliente->nome; // $objCliente->toArray(); // como array associativo // $objCliente->toArrayNum(); // como array (somente os valores) // $objCliente->toJSON(); // como JSON // Alterar: $objCliente->nome = 'Joaquim'; $objCliente->save(); // Buscar por campo // ... WHERE active = 1 AND email = 'joaquim@exemplo.com' LIMIT 1 $objCliente = Query::getTable('cliente')->findBy([ 'active' => '1', 'email' => 'joaquim@exemplo.com' ]); // Outras opcoes // ... WHERE active = 1 // AND at_created > '2020-01-01 00:00:00' // ORDER BY id DESC LIMIT 1 $objCliente = Query::getTable('cliente') ->where("active = 1") ->andWhere("at_created > '2020-01-01 00:00:00'") ->orderBy('id DESC') ->find();
Trazer uma lista de resultados
<?php use Bmodel\Query; $objCliente = Query::getTable('cliente') ->select(['id', 'at_created', 'nome', 'email']) ->where("active = 1") ->andWhere("at_created > '2020-01-01 00:00:00'") ->orderBy('id DESC') ->get(); // Usando JOINs (INNER, LEFT, RIGHT) $objCliente = Query::getTable('cliente c') ->select(['c.id', 'c.at_created', 'c.nome', 'c.email']) ->innerJoin( 'pedido p', // Table 'c.id = p.cliente_id', // ON 'Pedido') ->leftJoin( 'pagamento_pedido pp', 'p.id = pp.pedido_id', 'Pedido.Pagamentos') ->innerJoin( 'itens_pedido item', 'p.id = item.pedido_id', 'Pedido.Itens') ->where("c.active = 1") ->andWhere("c.at_created > '2020-01-01 00:00:00'") ->limit(10) // Podendo ser: ->page($page, $resultPerPage) ->orderBy('c.id DESC') ->get(); echo $objCliente->toJSON(); /* // Output: [ { "id": 1, "at_created": "2020-01-30 12:53:54", "nome": "Joaquim", "email": "joaquim@exemplo.com", "Pedido": [{ "id": 12, "at_created": "2020-01-30 12:53:54", "status": 1, ... Pagamentos: [], Itens: [ { "id": 123, "descricao": "Laptop Evotion Master Da Galáxia", "valor_un": 9876.12 ... } ] }] } ] */
Insert/Update/Delete
<?php use Bmodel\Query; // Exemplo de INSERT #1 $objCliente = Query::getTable('cliente')->create(); $objCliente->nome = "Maria"; $objCliente->email = "maria@exemplo.com"; $objCliente->save(); echo $objCliente->id; // Novo id // Exemplo de INSERT #2 $objCliente = Query::getTable('cliente')->insert([ 'nome' => "Maria", 'email' => "maria@exemplo.com" ]); echo $objCliente->id; // Novo id // Exemplo de UPDATE #1 $objCliente = Query::getTable('cliente')->find(1); $objCliente->nome = "José"; $objCliente->email = "jose@exemplo.com"; $objCliente->save(); // Exemplo de UPDATE #2 $objCliente = Query::getTable('cliente')->update([ 'nome' => "José", 'email' => "jose@exemplo.com" ]); // Exemplo de DELETE #1 Query::getTable('cliente')->find(1)->delete(); // Exemplo de DELETE #2 Query::getTable('cliente')->findDelete(1); // Exemplo de DELETE #3 Query::getTable('cliente')->where('active = 0')->delete();
swap/bmodel 适用场景与选型建议
swap/bmodel 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 8 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 03 月 21 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 swap/bmodel 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 swap/bmodel 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 8
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 18
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-03-21