klorinmannen/projom-storage

Projom storage module

v1.0.2 2024-11-16 20:31 UTC

This package is auto-updated.

Last update: 2025-06-17 20:31:04 UTC


README

PHP version support PHPUnit

Project goals

  • Accessing databases and data/configuration files with a simple interface.
  • Should be easy to understand and use.
  • Lightweight.
  • Support for MySQL/MariaDB and files formatted as csv, json and yaml.

Composer

composer require klorinmannen/projom-storage

Docs & coverage

Visit the repository wiki pages or the api documentation.
Unit test coverage.

Usage

use Projom\Storage\Engine;
use Projom\Storage\MySQL\Query;

$config = [ 
   'driver' => 'mysql',
   'connections' => [
      [
         'name' => 'connection-name',
         'username' => 'username',
         'password' => 'password',
         'host' => 'localhost',
         'port' => '3306',
         'database' => 'database-name'
      ]
   ]
];
$engine = Engine::create($config);
$query = Query::create($engine);

// Select all users
$users = $query->build('User')->select();

Facades

Engine

use Projom\Storage\Engine as StorageEngine;
use Projom\Storage\Facade\Engine as FacadeEngine;
use Projom\Storage\Facade\MySQL\Query;

// Bootstrap: Create the engine object and set the engine facade
$config = [ 
   'driver' => 'mysql',
   'connections' => [
      [
         'name' => 'connection-name',
         'username' => 'username',
         'password' => 'password',
         'host' => 'localhost',
         'port' => '3306',
         'database' => 'database-name'
      ]
   ]
];
$storageEngine = StorageEngine::create($config);
FacadeEngine::setInstance($storageEngine);

Query

use Projom\Storage\Facade\MySQL\Query;

$users = Query::build('User')->select();

Repository

use Projom\Storage\Facade\MySQL\Repository;

class UserRepository 
{
   use Repository;
}

$user = UserRepository::find($userID = 3);