PHPでテキストファイルを簡易データベースとして使用するTextDbクラス公開!使用手順
さて、前回の記事でソースを載せたTextDbクラスの使用手順を説明します。
ディレクトリ構成は使う時々で好きにしてもらっていいですが、
今回は説明のため以下のようなディレクトリ構成でいきます。
この通りフォルダとファイルを作成しておいてください。
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テーブルのカラムを設定しています。
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です。
区切り文字については自由に決めることができますが、各データ内で使用しないわかりやすい文字にするのが良いでしょう。
さて、これをブラウザを通してサーバで実行してみてください。
すると現在のディレクトリ構成は以下のようになります。
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で行っていくわけです。
これらインスタンスの操作方法は次の記事から説明していきます。