PHPackages                             douglas-joanes/jhonestack-db - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. douglas-joanes/jhonestack-db

ActiveLibrary[Database &amp; ORM](/categories/database)

douglas-joanes/jhonestack-db
============================

Um componente ORM minimalista e reutilizável extraído do Jhonestack Core.

v1.0.0(1mo ago)00MITPHPPHP &gt;=8.1

Since Apr 23Pushed 1mo agoCompare

[ Source](https://github.com/douglasjoanes/jhone-db)[ Packagist](https://packagist.org/packages/douglas-joanes/jhonestack-db)[ RSS](/packages/douglas-joanes-jhonestack-db/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (2)Used By (0)

Jhone DB
========

[](#jhone-db)

[![License: MIT](https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667)](https://opensource.org/licenses/MIT)[![PHP Version](https://camo.githubusercontent.com/3d4de2d3fd1110e24714a0182fb51b620fbf3310302503a7ea95f639828a4bce/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344253230382e312d3838393262662e737667)](https://php.net)

O **Jhone Db** é um componente de abstração de banco de dados (ORM) minimalista, extraído do ecossistema **Jhonestack Core**. Ele foi desenvolvido para ser leve, independente e seguro, permitindo que você utilize os padrões *Active Record* e *Query Builder* em qualquer projeto PHP.

🚀 Recursos Principais
---------------------

[](#-recursos-principais)

- **DatabaseFactory**: Gerenciamento de conexão Singleton (MySQL e PostgreSQL).
- **Query Builder Fluente**: Construção de queries SQL de forma legível e encadeada.
- **Model Abstrato**: Implementação de classes de modelo com suporte a `fillable` e `save()`.
- **Segurança**: Uso rigoroso de *Prepared Statements* para evitar SQL Injection.
- **Relacionamentos**: Suporte nativo para `hasMany`, `hasOne` e `belongsTo`.
- **Soft Deletes**: Gestão de exclusão lógica de registros.

📦 Instalação
------------

[](#-instalação)

Adicione o repositório ao seu arquivo `composer.json` ou instale via terminal (ajuste o nome do pacote conforme sua configuração no Packagist):

```
composer require douglas-joanes/jhonestack-db
```

⚙️Configuração Inicial
----------------------

[](#️configuração-inicial)

Para começar, inicialize a conexão e injete-a no Model base da sua aplicação:

```
use Jhonestack\Database\DatabaseFactory;
use Jhonestack\Database\Model;

$config = [
    'driver'   => 'mysql',
    'host'     => 'localhost',
    'port'     => '3306',
    'database' => 'nome_do_banco',
    'username' => 'usuario',
    'password' => 'senha',
    'charset'  => 'utf8mb4'
];

$pdo = DatabaseFactory::create($config);
Model::setConnection($pdo);
```

📖 Guia de Uso
-------------

[](#-guia-de-uso)

Definindo um Model
------------------

[](#definindo-um-model)

```
namespace App\Models;

use Jhonestack\Database\Model;

class User extends Model
{
    protected string $table = 'users';
    protected array $fillable = ['nome', 'email', 'senha'];
    protected bool $usesSoftDeletes = false;
}
```

Consultas com Query Builder
---------------------------

[](#consultas-com-query-builder)

```
// Buscar todos os usuários ativos
$users = User::query()
    ->where('status', 'ativo')
    ->orderBy('nome', 'ASC')
    ->get();

// Buscar um registro específico
$user = User::find(1);
```

Inserção e Atualização (Active Record)
--------------------------------------

[](#inserção-e-atualização-active-record)

```
// Buscar todos os usuários ativos
$users = User::query()
    ->where('status', 'ativo')
    ->orderBy('nome', 'ASC')
    ->get();

// Buscar um registro específico
$user = User::find(1);
```

Exclusão
--------

[](#exclusão)

```
$user = User::find(1);
$user->delete();
```

🛠️ Estrutura do Projeto
-----------------------

[](#️-estrutura-do-projeto)

```
src/
├── DatabaseFactory.php  # Gerenciador de conexão
├── Model.php            # Classe base para entidades
└── QueryBuilder.php     # Motor de construção de queries
```

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance90

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

47d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/04550653435a2ce6fb48aa446acf55a855995ce44fa7e5d2ac8787dfdde814c0?d=identicon)[djoanes](/maintainers/djoanes)

---

Top Contributors

[![douglasjoanes](https://avatars.githubusercontent.com/u/224690004?v=4)](https://github.com/douglasjoanes "douglasjoanes (7 commits)")

### Embed Badge

![Health badge](/badges/douglas-joanes-jhonestack-db/health.svg)

```
[![Health](https://phpackages.com/badges/douglas-joanes-jhonestack-db/health.svg)](https://phpackages.com/packages/douglas-joanes-jhonestack-db)
```

###  Alternatives

[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k116.5M113](/packages/jdorn-sql-formatter)[propel/propel1

Propel is an open-source Object-Relational Mapping (ORM) for PHP5.

8361.6M87](/packages/propel-propel1)[mpociot/laravel-composite-key

Support composite keys in your laravel app.

3544.8k1](/packages/mpociot-laravel-composite-key)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
