Queryflatfile est une bibliothèque de base de données flat file écrit en PHP.
Stock vos données par défaut au format JSON
, supporte aussi les formats txt
, msgPack et igbinary.
Manipulez vos données avec un QueryBuilder similaire à la syntaxe SQL.
Version PHP | QueryFlatFile 3.1.x |
---|---|
<= 7.1 | ✗ Non supporté |
7.2 / 7.3 / 7.4 | ✓ Supporté |
8.0 / 8.1 / 8.2 | ✓ Supporté |
txt
pour l'enregistrement des données sérialiser,json
pour l'enregistrement des données au format JSON,- msgPack pour l'enregistrement des données en binaire,
- igbinary pour l'enregistrement des données en binaire.
La quantité de mémoire minimum nécessaire dépend du volume de données que vous traiterez et du type d'opérations.
Pour gagner en performance utiliser le drivers MsgPack
ou Igbinary
.
La permission d'écrire et lire les fichiers dans le répertoire qui stockera vos données.
Pour installer Queryflatfile via Composer il est faut avoir l’installateur ou le fichier binaire Composer
Rendez-vous dans le répertoire de votre projet, ouvrez une invite de commandes et lancer la commande suivante :
composer require soosyze/queryflatfile
Ou, si vous utilisez le fichier binaire :
php composer.phar require soosyze/queryflatfile
require __DIR__ . '/vendor/autoload.php';
use Soosyze\Queryflatfile\Schema;
use Soosyze\Queryflatfile\Request;
use Soosyze\Queryflatfile\TableBuilder;
use Soosyze\Queryflatfile\Driver\Json;
$sch = new Schema('data', 'schema', new Json());
$req = new Request($sch);
$sch->createTableIfNotExists('user', function(TableBuilder $table): void {
$table->increments('id')
$table->string('name')
$table->string('firstname')->nullable();
});
$req->insertInto('user', [ 'name', 'firstname' ])
->values([ 'NOEL', 'Mathieu' ])
->values([ 'DUPOND', 'Jean' ])
->values([ 'MARTIN', null ])
->execute();
$data = $req->select('id', 'name')
->from('user')
->where('firstname', '=', 'Jean')
->fetch();
print_r($data);
$sch->dropTableIfExists('user');
L'exemple ci-dessus va afficher :
Array
(
[id] => 2
[name] => DUPOND
)
Schema
dropSchema()
,getIncrement( string $tableName )
,getSchema()
,getTableSchema( string $tableName )
,hasColumn( string $tableName, $columnName )
,hasTable( string $tableName )
,setConfig( string $host, string $name = 'schema', DriverInterface $driver = null )
.
Handling tables
alterTable( string $tableName, callable $callback )
,createTable( string $tableName, callable $callback = null )
,createTableIfNotExists( string $tableName, callable $callback = null )
:boolean( string $name )
,char( string $name, $length = 1)
,date( string $name )
,dateTime( string $name )
,float( string $name )
,increments( string $name )
,integer( string $name )
,string( string $name, $length = 255)
,text( string $name )
.
dropTable( string $tableName )
,dropTableIfExists( string $tableName )
,truncateTable( string $tableName )
.
Selection request
select( string ...$columnNames )
,from( string $tableName )
,leftJoin( string $tableName, \Closure|string $column, string $condition = '', string $value = '' )
,rightJoin( string $tableName, \Closure|string $column, string $condition = '', string $value = '' )
,union( RequestInterface $union )
,unionAll( RequestInterface $union )
,orderBy( string $columnName, int $order = SORT_DESC|SORT_ASC )
,limit( int $limit, int $offset = 0 )
.
Request for execution
insertInto( string $tableName, array $columnNames )
,values( array $rowValues )
,update( string $tableName, array $row )
,delete()
,execute()
Performs the insertion, modification and deletion of data.
Result(s) of the query
fetch(): array
Returns the first result of the query,fetchAll(): array
Returns all the results of the query,lists( string $columnName, string $key = null ): array
Returns a list of the column passed in parameter.
Where
where( string $columnName, string $condition, null|scalar $value )
,orWhere( string $columnName, string $condition, null|scalar $value )
,notWhere( string $columnName, string $condition, null|scalar $value )
,orNotWhere( string $columnName, string $condition, null|scalar $value )
.
Supported conditions (===, ==, !=, <>, <, <=, >, >=, like, ilike, not like, not ilike)
Where
whereGroup( \Closure $columnName )
,orWhereGroup( \Closure $columnName )
,notWhereGroup( \Closure $columnName )
,orNotWhereGroup( \Closure $columnName )
.
Where between
between( string $columnName, $min, $max )
,orBetween( string $columnName, $min, $max )
,notBetween( string $columnName, $min, $max )
,orNotBetween( string $columnName, $min, $max )
.
Where in
in( string $columnName, array $values )
,orIn( string $columnName, array $values )
,notIn( string $columnName, array $values )
,orNotIn( string $columnName, array $values )
.
Where isNull
isNull( string $columnName )
,orIsNull( string $columnName )
,isNotNull( string $columnName )
,orIsNotNull( string $columnName )
.
Where regex
regex( string $columnName, string $pattern )
,orRegex( string $columnName, string $pattern )
,notRegex( string $columnName, string $pattern )
,orNotRegex( string $columnName, string $pattern )
.
Pour avoir des exemples d'utilisations référez-vous à la documentation d'utilisation.
Ce projet est sous licence MIT.