Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

CodeWithSushil/json-db

Repository files navigation

JsonDB

Tests Packagist Version Packagist Dependency Version Packagist License Packagist Downloads Packagist Stars

JsonDB is a lightweight, document-oriented NoSQL-style database written in PHP. It provides a simple, file-based alternative to traditional databases by storing and managing data as structured JSON files. JsonDB is perfect for lightweight apps, prototyping, local storage, and embedded tools where a full-fledged database system is unnecessary.


🚀 Features

  • Zero-Config: No database server or setup needed—just PHP and your filesystem.
  • 🧩 Document-Based: Each collection is a JSON file; each record is a structured JSON document.
  • 🧪 CRUD Operations: Easy-to-use API for create, read, update, and delete operations.
  • 🕵️‍♂️ Search & Filter: Built-in query capabilities using associative arrays and conditions.
  • Coming soon
  • 🔐 JWT & Session Authentication: Secure API with optional login/auth guard.
  • 🌐 REST API Wrapper: JSON RESTful interface for HTTP clients.
  • 🗃️ Transactions & Atomic Writes: Prevents data corruption with locking mechanisms.
  • 🔁 Replication & Backup Support: Optional add-ons for syncing and restoring data.
  • 🧰 CLI Tools: Perform operations via command line using Symfony Console.
  • 🧠 In-memory Caching: Fast reads with optional caching for large JSON datasets.
  • 🧾 Indexing (Planned): For quicker lookups and searches on large datasets.

📦 Why Use JsonDB?

  • Simple: No external dependencies, DB servers, or complex setup.
  • Portable: Just include it in your project—works anywhere PHP runs.
  • Human-Readable: JSON files are easy to read, edit, version-control, and debug.
  • Great for Prototyping: Ideal for testing APIs, local apps, and building offline tools.
  • Customizable: Built in modern PHP (PHP 8.4+), uses OOP, Traits, Enums, and Interfaces.

💡 Use Cases

  • 🔧 Rapid API Prototyping
  • 🗃 Offline Data Storage
  • 🧪 Test Mock Databases
  • 🛠 Configuration/Settings Store
  • 🎮 Game Save/State Files
  • 🌐 Lightweight Backend for SPA/JS apps
  • 💻 CLI Data Manipulation Tools

🧑‍💻 How It Works

Install

composer require jsondbphp/jsondb

Example

  • First create a folder data.
  • Create a users.json file inside of data folder.
<?php
require("vendor/autoload.php");
use Json\Database\JsonDB;
// Create DB instance
$db = new JsonDB(__DIR__ . '/data');
// Insert
$db->insert('users', [
 'name' => 'Alice',
 'email' => 'alice@example.com'
]);
// findAll
$result = $db->findAll('users');
print_r($resull);
// find
$result = $db->find('users', 'name');
print_r($result);
// update
$db->update('users', 'name', 'Alice');
// delete
$db->delete('users', 'name');

About

JsonDB: Lightweight Document Container for Modern PHP Apps.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

Languages

AltStyle によって変換されたページ (->オリジナル) /