klorinmannen / projom-storage
Projom storage module
v1.0.2
2024-11-16 20:31 UTC
Requires
- php: >=8.1.0
- psr/log: ^3.0
Requires (Dev)
- phpunit/phpunit: ^11.0.0
This package is auto-updated.
Last update: 2025-06-17 20:31:04 UTC
README
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);