Skip to content

PHP class for managing JSON files with CRUD operations, sorting, pagination, merging, backup, and restore.

Notifications You must be signed in to change notification settings

ademchaoua/JSONManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

JsonManager PHP Class

JsonManager is a PHP class designed to facilitate easy management of JSON data stored in files. It provides methods for CRUD operations, sorting, pagination, merging, backup, and restore functionalities.

Features

  • Save/Update Data: Save or update JSON data in a file. Supports updating existing data based on specific criteria.
  • Retrieve Data: Retrieve all data from the JSON file.
  • Find Data: Find data in the JSON file based on a specific key-value pair.
  • Delete Data: Delete data from the JSON file based on a specific key-value pair.
  • Count Objects: Count the number of objects in the JSON file.
  • Sort Data: Sort data in the JSON file by a specific key.
  • Paginate Data: Paginate the data in the JSON file.
  • Merge Data: Merge data from another JSON file or an array into the current JSON data.
  • Backup and Restore: Create backups of the JSON file and restore from backups.

Requirements

  • PHP 5.6 or higher (JSON extension enabled)

Installation

No installation necessary. Simply include the JsonManager class in your PHP project.

Usage

Example Usage:

<?php
// Include the JsonManager class
require_once 'JsonManager.php';

// Define your JSON file path
$jsonFilePath = 'data.json';

try {
    // Example: Save data to JSON file
    $dataToSave = [
        'id' => 1,
        'name' => 'John Doe',
        'email' => '[email protected]'
    ];
    JsonManager::save($jsonFilePath, $dataToSave);

    // Example: Retrieve all data
    $allData = JsonManager::getAll($jsonFilePath);
    var_dump($allData);

    // Example: Find data by key
    $foundData = JsonManager::findByKey($jsonFilePath, 'id', 1);
    var_dump($foundData);

    // Example: Delete data by key
    JsonManager::deleteByKey($jsonFilePath, 'id', 1);

    // Example: Count objects
    $count = JsonManager::count($jsonFilePath);
    echo "Number of objects: $count\n";

} catch (Exception $e) {
    echo 'Error: ' . $e->getMessage();
}
?>

Methods

JsonManager::save($path, $object, $isUpdate = false, $location = null, $keyToUpdate = null, $valueToUpdate = null)

Save data to the JSON file.

  • $path: Path to the JSON file.
  • $object: Data object to save/update.
  • $isUpdate: Flag indicating if data should be updated (default: false).
  • $location: Specific location within the JSON structure to save/update (optional).
  • $keyToUpdate: Key to search for when updating data (optional).
  • $valueToUpdate: Value corresponding to $keyToUpdate to identify data to update (optional).

Throws Exception on error.

JsonManager::getAll($path) Retrieve all data from the JSON file.

  • $path: Path to the JSON file.

Returns an array of all data objects.

Throws Exception on error.

JsonManager::findByKey($path, $key, $value)

Find data in the JSON file by a specific key-value pair.

  • $path: Path to the JSON file.
  • $key: Key to search for.
  • $value: Value corresponding to $key to search for.

Returns an array of matching data objects or null if not found.

Throws Exception on error.

JsonManager::deleteByKey($path, $key, $value)

Delete data from the JSON file based on a specific key-value pair.

  • $path: Path to the JSON file.
  • $key: Key to search for.
  • $value: Value corresponding to $key to identify data to delete.

Throws Exception on error.

JsonManager::count($path)

Count the number of objects in the JSON file.

  • $path: Path to the JSON file. Returns the number of objects.

Throws Exception on error.

JsonManager::sortByKey($path, $key)

Sort data in the JSON file by a specific key.

  • $path: Path to the JSON file.
  • $key: Key to sort by. Returns a sorted array of data objects.

Throws Exception on error.

JsonManager::paginate($path, $perPage, $page)

Paginate the data in the JSON file.

  • $path: Path to the JSON file.
  • $perPage: Number of items per page.
  • $page: Page number to retrieve.

Returns an array of data objects for the specified page.

Throws Exception on error or invalid pagination parameters.

JsonManager::mergeFromFile($path, $otherFilePath)

Merge data from another JSON file into the current JSON file.

  • $path: Path to the current JSON file.
  • $otherFilePath: Path to the other JSON file to merge from.

Throws Exception on error.

JsonManager::mergeFromArray($path, $dataArray)

Merge data from an array into the current JSON data.

  • $path: Path to the JSON file.
  • $dataArray: Array of data to merge.

Throws Exception on error.

JsonManager::backup($path, $backupPath)

Backup the current JSON file to a specified location.

  • $path: Path to the JSON file.
  • $backupPath: Path to save the backup file.

Throws Exception on error.

JsonManager::restore($path, $backupPath)

Restore the JSON file from a specified backup location.

  • $path: Path to the JSON file.
  • $backupPath: Path to the backup file.

Throws Exception on error.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

PHP class for managing JSON files with CRUD operations, sorting, pagination, merging, backup, and restore.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages