プログラミングで飯を食え。腕をあげたきゃ備忘録!

PHP、JavaScript、HTML5、CSS3などWEB系言語を中心に基本テク、備忘録をまとめます。Android、Iphoneアプリ開発についても!

PHPでテキストファイルを簡易データベースとして使用するTextDbクラス公開!使用手順

サクウェブTVはコチラ↓↓↓
サクウェブTV

さて、前回の記事でソースを載せたTextDbクラスの使用手順を説明します。

ディレクトリ構成は使う時々で好きにしてもらっていいですが、

今回は説明のため以下のようなディレクトリ構成でいきます。

f:id:senoway:20130804152135j:plain

この通りフォルダとファイルを作成しておいてください。

TextDb.php前回の記事からソースを取得しておいて下さい。

 

まず、index.phpでクラスを読み込みます。

require_once 'TextDb.php';

次に、テーブルの設定とインスタンスの生成を行います。

$c_fields = array("id","name","address");
$c_db = new TextDb("tbl/customer.txt","::",$c_fields);

$i_fields = array("id","name","customer_id");
$i_db = new TextDb("tbl/item.txt","::",$i_fields);

ここでは、インスタンス生成と同時にcustomerテーブルとitemテーブルを作成しています。

$c_fieldsと$i_fieldsは、それぞれcustomerテーブルとitemテーブルのカラムを設定しています。

インスタンス生成時のコンストラクタには引数が3つあります。

TextDb($file_path,$del_mark,$fields=null)

となっており、それぞれ

$file_path : テーブルとなるテキストファイルをどこに保存するかのパス

$del_mark : 各テーブルを作成する際、内部で動作する区切り文字

$fields : カラムの設定

です。

$del_markが少しわかりにくいと思いますので、テーブルデータの中身を先に少し見てみます。

データの中身は大体こんな感じになります。

tablename::customer
id::name::address
1::yamada::tokyo
2::tanaka::osaka
3::suzuki::kyoto

この中で各データを区切っている「::」がありますが、これが$del_markです。

区切り文字については自由に決めることができますが、各データ内で使用しないわかりやすい文字にするのが良いでしょう。

 

さて、これをブラウザを通してサーバで実行してみてください。

すると現在のディレクトリ構成は以下のようになります。

f:id:senoway:20130804160245j:plain

customer.txtとitem.txtが増えていますが、これはインスタンス生成時にコンストラクタがテーブルデータを格納するファイルとして自動で作成したものです。

現在、それぞれの中身はこんな感じです。

customer.txt
tablename::customer
id::name::address
item.txt
tablename::item
id::name::customer_id

現在、レコードは一つもありません。

テーブル名の設定の記述と、カラムの設定の記述があるだけです。

 

はい。これで準備完了です。

コンストラクタに渡した$c_fieldsと$i_fieldsは上記のテキストファイルを作成する際に使用するもので、今後使用することは一切ありません。

 

なので、

$c_fields = array("id","name","address");
$c_db = new TextDb("tbl/customer.txt","::",$c_fields);

$i_fields = array("id","name","customer_id");
$i_db = new TextDb("tbl/item.txt","::",$i_fields);

のまま残しておいても構いませんが、

$c_db = new TextDb("tbl/customer.txt","::");

$i_db = new TextDb("tbl/item.txt","::");

のように削除してしまっても問題ありません。

 

ただ、個人的には残しておくかコメントアウトしておく方が、カラムが確認しやすくて好きです。

 

さて、現在index.phpは以下の状態です。

require_once 'TextDb.php';
$c_fields = array("id","name","address");
$c_db = new TextDb("tbl/customer.txt","::",$c_fields);

$i_fields = array("id","name","customer_id");
$i_db = new TextDb("tbl/item.txt","::",$i_fields);

あとは、

customerテーブルの操作は$c_dbで、

itemテーブルの操作は$i_dbで行っていくわけです。

これらインスタンスの操作方法は次の記事から説明していきます。

>>PHPでテキストファイルを簡易データベースとして使用するTextDbクラス公開!操作関数の説明<<