gsonlabをjsondbとして使う

18327 ワード


darkterminal / GitlabDB
JSONファイルをデータベースとして読み込むPHPクラス.を使用してサンプルのDBSを使用して
gitlabdb
JSONファイルをデータベースとして読み込むPHPクラス.を使用してサンプルdbsの使用donjajo/php-jsondb
用途
パッケージのインストール
composer require darkterminal/GitlabDB

Initialize

<?php
use GitlabDB\GitlabDB;

$options['personal_access_token']    = "YOUR_GITLAB_ACCESS_TOKEN";
$options['project_id']               = "YOUR_GITLAB_PROJECT_ID";
$options['branch']                   = "YOUR_GITLAB_BRANCH";
$options['cloud_url']                = "YOUR_GITLAB_URL";

$path = 'YOUR_PATH_ON_GITLAB';

$json_db = new GitlabDB( $options, $path ); // Or passing the file path of your json files with no trailing slash, default is the root directory. E.g.  new GitlabDB( $options, 'database' )

Inserting

Insert into your new JSON file. Using users.json as example here

NB: Columns inserted first will be the only allowed column on other inserts

<?php
$json_db->insert( 'users.json'
    [
        'name' => 'Thomas',
        'state' => 'Nigeria',
        

A PHP Class that reads JSON file as a database. Use for sample DBs using Gitlab API inspire from donjajo/php-jsondb

Usage

Install package

composer require darkterminal/GitlabDB

初期化する
<?php
use GitlabDB\GitlabDB;

$options['personal_access_token']    = "YOUR_GITLAB_ACCESS_TOKEN";
$options['project_id']               = "YOUR_GITLAB_PROJECT_ID";
$options['branch']                   = "YOUR_GITLAB_BRANCH";
$options['cloud_url']                = "YOUR_GITLAB_URL";

$path = 'YOUR_PATH_ON_GITLAB';

$json_db = new GitlabDB( $options, $path ); // Or passing the file path of your json files with no trailing slash, default is the root directory. E.g.  new GitlabDB( $options, 'database' )

挿入
新しいJSONファイルに挿入します.ユーザの使用ここの例としてのJSON
注意:最初に挿入された列は、他の挿入物の唯一の許可された列になります
<?php
$json_db->insert( 'users.json',
    [
        'name' => 'Thomas',
        'state' => 'Nigeria',
        'age' => 22
    ]
);

ゲット
PHPでMySQLと同じようにデータを取得する

すべての列:
<?php
$users = $json_db->select( '*' )
    ->from( 'users.json' )
    ->get();
print_r( $users );

カスタム列
<?php
$users = $json_db->select( 'name, state'  )
    ->from( 'users.json' )
    ->get();
print_r( $users );


WHERE文
現時点でのオペレーターとして動作する場合
<?php
$users = $json_db->select( 'name, state'  )
    ->from( 'users.json' )
    ->where( [ 'name' => 'Thomas' ] )
    ->get();
print_r( $users );

// Defaults to Thomas OR Nigeria
$users = $json_db->select( 'name, state'  )
    ->from( 'users.json' )
    ->where( [ 'name' => 'Thomas', 'state' => 'Nigeria' ] )
    ->get();
print_r( $users );

// Now is THOMAS AND Nigeria
$users = $json_db->select( 'name, state'  )
    ->from( 'users.json' )
    ->where( [ 'name' => 'Thomas', 'state' => 'Nigeria' ], 'AND' )
    ->get();
print_r( $users );



regexのあるステートメント
通り過ぎることでGitlabDB::regex Whereステートメントには、Regexの検索を適用できます.これは、実装に使用することができますLIKE or REGEXP_LIKE SQLの節.
$users = $json_db->select( 'name, state' )
    ->from( "users" )
    ->where( array( "state" => GitlabDB::regex( "/ria/" )), GitlabDB::AND )
    ->get();
print_r( $users );
// Outputs are rows which contains "ria" string in "state" column.

次の順
この機能のおかげで.通り過ぎることでorder_by() メソッドは、カラム名とソートメソッドの2つの引数でソートされます.GitlabDB::ASC and GitlabDB::DESC
<?php
$users = $json_db->select( 'name, state'  )
    ->from( 'users.json' )
    ->where( [ 'name' => 'Thomas' ] )
    ->order_by( 'age', GitlabDB::ASC )
    ->get();
print_r( $users );

行の更新
また、これらのメソッドを使用して同じJSONファイルを更新することができます
<?php
$json_db->update( [ 'name' => 'Oji', 'age' => 10 ] )
    ->from( 'users.json' )
    ->where( [ 'name' => 'Thomas' ] )
    ->trigger();

** where () *メソッドがなければ、すべての行を更新します**

行の削除
<?php
$json_db->delete()
    ->from( 'users.json' )
    ->where( [ 'name' => 'Thomas' ] )
    ->trigger();

** where () *メソッドなしでは、すべての行を削除します**

MySQLへのエクスポート
このメソッドを使用して出力を提供することで、SQLファイルにJSONをエクスポートできます
<?php
$json_db->to_mysql( 'users.json', 'users.sql' );
無効にするテーブルを作成
<?php
$json_db->to_mysql( 'users.json', 'users.sql', false );

XMLへのエクスポート
また、XMLファイルにデータをエクスポートする機能を提供します

php
<?php
if( $json_db->to_xml( 'users.json', 'users.xml' ) ) {
    echo 'Saved!';
}