# catfan/medoo architecture

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

- Interactive diagram: https://gitdiagram.com/catfan/medoo
- Repository: https://github.com/catfan/medoo

## Overview

Medoo is a lightweight PHP database framework: applications configure a Medoo instance, use its query API to read or modify data, and receive results from a PDO-backed database. Its documented capabilities include CRUD, aggregates, raw SQL, data mapping, prepared statements, and compatibility with multiple database engines. The implementation is a single source file; the excerpt is partial, so the graph keeps internal call wiring broad and omits uncertain details.

Main entry points: [`src/Medoo.php`](https://github.com/catfan/medoo/blob/master/src/Medoo.php) (Query construction)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Database API"]
  node_medoo["Medoo instance<br/>[Medoo.php]"]
  node_reads["Read queries<br/>[Medoo.php]"]
  node_writes["Write queries<br/>[Medoo.php]"]
  node_aggregates["Aggregates<br/>[Medoo.php]"]
  node_schema["Schema operations<br/>[Medoo.php]"]
end

subgraph group_sql["SQL Construction"]
  node_querybuild["Query construction<br/>[Medoo.php]"]
  node_conditions["Conditions and joins<br/>[Medoo.php]"]
  node_identifiers["Identifier quoting<br/>[Medoo.php]"]
  node_raw["Raw SQL expressions<br/>[Medoo.php]"]
  node_parameters["Parameter binding<br/>[Medoo.php]"]
end

subgraph group_runtime["Connection and Results"]
  node_mapping["Column mapping<br/>[Medoo.php]"]
  node_connection["PDO connection<br/>[Medoo.php]"]
end

node_application(("PHP application"))
node_pdo["PDO"]
node_database[("SQL database")]

node_application -->|"configures and calls"| node_medoo
node_medoo -->|"sets up"| node_connection
node_reads -->|"builds queries"| node_querybuild
node_writes -->|"builds statements"| node_querybuild
node_aggregates -->|"builds queries"| node_querybuild
node_schema -->|"builds statements"| node_querybuild
node_querybuild -->|"uses conditions"| node_conditions
node_querybuild -->|"quotes identifiers"| node_identifiers
node_querybuild -->|"handles expressions"| node_raw
node_querybuild -->|"binds values"| node_parameters
node_connection -->|"creates or accepts"| node_pdo
node_pdo -->|"executes SQL"| node_database
node_reads -->|"maps results"| node_mapping
node_reads -->|"executes queries"| node_pdo
node_writes -->|"executes statements"| node_pdo
node_aggregates -->|"executes queries"| node_pdo
node_schema -->|"executes statements"| node_pdo

click node_medoo "https://github.com/catfan/medoo/blob/master/src/Medoo.php"
click node_reads "https://github.com/catfan/medoo/blob/master/src/Medoo.php"
click node_writes "https://github.com/catfan/medoo/blob/master/src/Medoo.php"
click node_aggregates "https://github.com/catfan/medoo/blob/master/src/Medoo.php"
click node_schema "https://github.com/catfan/medoo/blob/master/src/Medoo.php"
click node_querybuild "https://github.com/catfan/medoo/blob/master/src/Medoo.php"
click node_conditions "https://github.com/catfan/medoo/blob/master/src/Medoo.php"
click node_identifiers "https://github.com/catfan/medoo/blob/master/src/Medoo.php"
click node_raw "https://github.com/catfan/medoo/blob/master/src/Medoo.php"
click node_parameters "https://github.com/catfan/medoo/blob/master/src/Medoo.php"
click node_mapping "https://github.com/catfan/medoo/blob/master/src/Medoo.php"
click node_connection "https://github.com/catfan/medoo/blob/master/src/Medoo.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_medoo,node_reads,node_writes,node_aggregates,node_schema toneBlue
class node_querybuild,node_conditions,node_identifiers,node_raw,node_parameters,node_database toneAmber
class node_mapping,node_connection toneMint
class node_application,node_pdo toneIndigo
```

## Components

### Database API

- [Medoo instance](https://github.com/catfan/medoo/blob/master/src/Medoo.php): `src/Medoo.php`
- [Read queries](https://github.com/catfan/medoo/blob/master/src/Medoo.php): `src/Medoo.php`
- [Write queries](https://github.com/catfan/medoo/blob/master/src/Medoo.php): `src/Medoo.php`
- [Aggregates](https://github.com/catfan/medoo/blob/master/src/Medoo.php): `src/Medoo.php`
- [Schema operations](https://github.com/catfan/medoo/blob/master/src/Medoo.php): `src/Medoo.php`

### SQL Construction

- [Query construction](https://github.com/catfan/medoo/blob/master/src/Medoo.php): `src/Medoo.php`
- [Conditions and joins](https://github.com/catfan/medoo/blob/master/src/Medoo.php): `src/Medoo.php`
- [Identifier quoting](https://github.com/catfan/medoo/blob/master/src/Medoo.php): `src/Medoo.php`
- [Raw SQL expressions](https://github.com/catfan/medoo/blob/master/src/Medoo.php): `src/Medoo.php`
- [Parameter binding](https://github.com/catfan/medoo/blob/master/src/Medoo.php): `src/Medoo.php`

### Connection and Results

- [Column mapping](https://github.com/catfan/medoo/blob/master/src/Medoo.php): `src/Medoo.php`
- [PDO connection](https://github.com/catfan/medoo/blob/master/src/Medoo.php): `src/Medoo.php`

### Other components

- **PHP application**
- **PDO**
- **SQL database**

## Connections

- PHP application → Medoo instance: configures and calls
- Medoo instance → PDO connection: sets up
- Read queries → Query construction: builds queries
- Write queries → Query construction: builds statements
- Aggregates → Query construction: builds queries
- Schema operations → Query construction: builds statements
- Query construction → Conditions and joins: uses conditions
- Query construction → Identifier quoting: quotes identifiers
- Query construction → Raw SQL expressions: handles expressions
- Query construction → Parameter binding: binds values
- PDO connection → PDO: creates or accepts
- PDO → SQL database: executes SQL
- Read queries → Column mapping: maps results
- Read queries → PDO: executes queries
- Write queries → PDO: executes statements
- Aggregates → PDO: executes queries
- Schema operations → PDO: executes statements
