はじめに
こんにちは。初投稿のまろという者です。
Qiitaでは主にPHP系の投稿をしていこうと思ってます。
今回は、PHPでNoSQLのDBMSを作るわけです。
XMLじゃなくてJSONを使います。
概要
- NoSQLのDBMS
- JSONを用いる
- データをそのまま保存
コード
いきなりコードです。
dbms.php
<?php
// クラス「DBMS」の定義
class DBMS{
// ファイルパス変数の定義
private $path;
// コンストラクタの起動
function __construct($path){
$this->path = $path;
}
// ファイルパスの変更関数
function PATH($path){
$this->path = $path;
}
// ファイル内容を変換して取得
function GET(){
return json_decode(file_get_contents($this->path), true);
}
// ファイル内容を変換して書き換え
function POST($data){
$fp = fopen($this->path, 'cb');
if($fp){
if(flock($fp, LOCK_SH)){
if(fwrite($fp, json_encode($data))){
if(flock($fp, LOCK_UN)){
if(fclose($fp)){
return true;
}
}
}
}
}
return false;
}
}
?>
てな感じです。JSONで、テキストをデータ形式で返してくれて、データをテキスト(JSON)で書き込む感じで、さらにどんなデータでも対応。
こんなDBMSが欲しかった...
まあ、普通に使えると思います!少し処理系は置いといて。
また実際にこれを使用すると、
使用例
$db = new DBMS('/db/age.json');
$age = $db->GET();
echo '現在田中さんは'.$age['田中さん'].'歳です';
// 現在田中さんは38歳です
$age['田中さん'] = 39;
if($db->POST($age)){
$age = $db->GET();
echo '無事田中さんが39歳の誕生日を迎えました';
// 無事田中さんが39歳の誕生日を迎えました
}else{
echo '残念田中さんもう一度38歳で頑張りましょう';
// 残念田中さんもう一度38歳で頑張りましょう
}
はい。田中さんごめんなさい(誰や)
終わりに
今回はPHPでNoSQL DBMSを作ってみました。
思ってたんとちゃう…と思ったそこの君!ごめんなさい(?)
使ってみてね〜