ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

PHPでつくる、仕様書からのプログラム自動生成(その4:データファイルの仕様など)

2005-11-29 17:19:22 | Weblog

 昨日書いた、仕様書をCSVで書き出し、雛形ファイルを用意すると、仕様書の内容をいれて、プログラムが自動生成するという話。

 今回は、その仕様書の形式とか。。の話
 もう一度、手順を書くとこんなかんじ。

■■ 手順的にはこんなかんじ
・仕様書をCSV書き出ししたものと、
・雛形を用意して、
   ↓
・このPHPを実行すると、
   ↓
・ブラウザ上に、雛形の指定したところへ、仕様書の値を入れて
 ソースを書き出す。

 前のブログは、雛形ファイルの書き方だったので、今回は、「仕様書をCSV書き出したもの」について




■■ 仕様書の形式

仕様書の形は、昨日の例に示したような、(CSVっていってるけど、本当は)タブ区切りのテキストです。いちおう昨日の例をしめしておくとこんなかんじ。
Mtr>
テーブル名	HELLO_WORLD_TABLE	PRIMARY KEY	NO
名前	型	桁数(文字のとき)	NOT NULL
NO	INTEGER		NOT NULL
LANGUAGE	VARCHAR	50
MESSAGE	VARCHAR	100


上のほうに、繰り返しとは関係ない項目をかき、
(例の場合は、テーブル名とプライマリーキー)

見出しをいれて、
(名前 型 桁数(文字のとき) NOT NULLの行)

あとは、繰り返し部分をかきます。
繰り返しのはじめの行が、for $i=開始行 の開始行になります。

で、0スタートです(0行0桁からはじまる。1ではない)
したがって、例の場合は、開始行は2からです。




ふつうのExcelの仕様書をCSVファイル形式でおとすと、こんな感じになると思います

 で、昨日のPHPプログラム(makepro.php)にバグがあって、途中に、改行だけの空白行があった場合、その行を読み飛ばしてしまいます。
 そのため、最終行以外で、改行だけの行がある場合、漢字の空白なり、何か文字を入れるなりして、空白行でないようにしてください。
(今度、Webに公開するかもしれませんけど、そのときは、途中に空白行があっても大丈夫なように、直しておきます)




 実際にこれを使ってやる場合、雛形をいっぺんに作ると、バグがあると、なにもでない!となってしまい、バグが見つけにくいので、まず、テストデータをつくって、雛形をすこし作ったら、確認しながら、全体を作っていったほうが、やりやすいです。




 ちなみに、なんで、これで、ソースが作成されるかというと、実は、ここのブログで書いたことの応用です。

 コントローラー=makeproでやっていること
    画面の内容をセッションにいれて
    処理(CSVデータを読み込む)をして
    その結果を、セッションに入れて
    画面(ここでは、雛形プログラム)を呼び出す

 処理部分(shori)=makeproのshori
    CSVデータを読み込んでいる

 画面=自動生成されるソースプログラム
    セッションの内容($dataにいれている)を、セットして、
    画面(じゃなくって、ソースコードだけど)を生成

 これを一連の処理として実行すると、CSVデータを読み込み、その内容をセッションにセットして、雛形ファイルをLocationで呼び出して、セッションにはいっているCSVの内容を取り出して、雛形の指定のところに入れてもらうと、画面のかわりにソースコードをつくってくれるということです。




 っていうことは、データをセットして、画面のかわりに、PDFlibを使って、PDF書き出しをしたら
帳票作成ツールができるのかとか?

 っていうことは、データをセットして、画面のかわりに、GDを使って、グラフ書き出しをしたら
グラフ作成パッケージができるのかとか?

 言われたら。。。たぶんできるんでしょうな。。 

 (ただ、その場合は、雛形ファイルをPHPプログラムにするより、雛形ファイルは、位置と、文字や線など表示種類と、文字の場合、CSVデータのどの項目を出力するのかの指定にして、画面プログラムは、CSVデータと、この雛形データを読み込んで表示する形にしたほうが、後での雛形修正が楽)

 とするとですよ。。。

 Javaなんかだと、帳票作成ツールは、自分で作らないけど、PHPの場合、そういうツールを作れるから、PHPのほうが、自由度たかいっちゃー、たかいよね。



 ということで、この「PHPでつくる、仕様書からのプログラム自動生成」シリーズはここで完結です。


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« CVSを使った構成管理の問... | トップ | フリーのPHPエディタを使って... »
最新の画像もっと見る

Weblog」カテゴリの最新記事