# emirustaoglu/novaphpdatabase architecture

> Architecture diagram of the GitHub repository emirustaoglu/novaphpdatabase, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/emirustaoglu/novaphpdatabase
- Repository: https://github.com/emirustaoglu/novaphpdatabase

## Overview

NovaPhp Database is a compact PHP database library. Its main workflow is to connect using configured credentials, expose query-builder or raw SQL operations, and execute them through PDO; a separate schema API builds DDL from blueprints and submits it through the DB facade. QueryBuilder and schema generation are sampled; configuration comes from the declared NovaPhp Config dependency. The README provides no capability detail beyond the product name.

Main entry points: [`src/DatabaseManager.php`](https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/DatabaseManager.php) (Connection manager), [`src/Schema/Schema.php`](https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/Schema/Schema.php) (Schema API), [`src/DB.php`](https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/DB.php) (DB facade), [`src/QueryBuilder.php`](https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/QueryBuilder.php) (Query builder)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Database access"]
  node_db["DB facade<br/>[DB.php]"]
  node_manager["Connection manager"]
  node_builder["Query builder<br/>[QueryBuilder.php]"]
end

subgraph group_schema["Schema management"]
  node_schema["Schema API<br/>[Schema.php]"]
  node_blueprint["DDL blueprint<br/>[Blueprint.php]"]
  node_column["Column definition<br/>[Column.php]"]
end

node_developer(("Library consumer"))
node_config["ConfigLoader"]
node_pdo[("PDO database")]

node_developer -->|"invokes"| node_db
node_db -->|"delegates"| node_manager
node_manager -->|"reads settings"| node_config
node_manager -->|"connects"| node_pdo
node_manager -->|"creates builder"| node_builder
node_manager -->|"executes raw SQL"| node_pdo
node_builder -->|"executes statements"| node_pdo
node_developer -->|"invokes"| node_schema
node_schema -->|"builds DDL"| node_blueprint
node_blueprint -->|"renders columns"| node_column
node_schema -->|"submits SQL"| node_db
node_pdo -->|"returns results"| node_manager

click node_db "https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/DB.php"
click node_manager "https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/DatabaseManager.php"
click node_builder "https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/QueryBuilder.php"
click node_schema "https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/Schema/Schema.php"
click node_blueprint "https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/Schema/Blueprint.php"
click node_column "https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/Schema/Column.php"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_db,node_manager,node_builder toneBlue
class node_schema,node_blueprint,node_column,node_pdo toneAmber
class node_developer,node_config toneIndigo
```

## Components

### Database access

- [DB facade](https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/DB.php): `src/DB.php`
- [Connection manager](https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/DatabaseManager.php): `src/DatabaseManager.php`
- [Query builder](https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/QueryBuilder.php): `src/QueryBuilder.php`

### Schema management

- [Schema API](https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/Schema/Schema.php): `src/Schema/Schema.php`
- [DDL blueprint](https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/Schema/Blueprint.php): `src/Schema/Blueprint.php`
- [Column definition](https://github.com/emirustaoglu/novaphpdatabase/blob/main/src/Schema/Column.php): `src/Schema/Column.php`

### Other components

- **Library consumer**
- **ConfigLoader**
- **PDO database**

## Connections

- Library consumer → DB facade: invokes
- DB facade → Connection manager: delegates
- Connection manager → ConfigLoader: reads settings
- Connection manager → PDO database: connects
- Connection manager → Query builder: creates builder
- Connection manager → PDO database: executes raw SQL
- Query builder → PDO database: executes statements
- Library consumer → Schema API: invokes
- Schema API → DDL blueprint: builds DDL
- DDL blueprint → Column definition: renders columns
- Schema API → DB facade: submits SQL
- PDO database → Connection manager: returns results
