Webアプリケーション(tasklog)の作成(No.1)
毎日の作業の見積時間とその実績を管理するWebアプリケーションを作成しながら、いろいろとわかったことを書いていきます。
ちなみにWebアプリケーションの開発は、いろいろと調べながら書いていますので、間違っていたり、あるいはもっと正しい方法があったりするかもしれません。
まずはWeb Applicationの構成をざっと書きます。作業の見積時間や実績を保存するデータベースをSQLiteにして、WebサーバーのApacheからPHPでアクセスします。WebブラウザのロジックはDojoベースでJavascriptで作成します。Dojoは1.2になっていますが、サンプルとかがあまりそろっていないようですので、試行錯誤を参考にしてもらえればうれしいです。
ということで以下のような環境をWindowsXP上に準備しました。
1. Apache V2.2.9のインストール
デフォルトのままC:\Program Files\Apache Software Foundation\Apache2.2にインストールしました。
2. PHP V5.2.6のインストール
これはちょっと前にしていたので、細かいことは忘れてしまいましたが、最近はApacheとの連携もインストーラーが設定してくれるみたいでした。PHPのインストールではSQLiteにアクセスできるようにするために、ExtensionsにSQLiteを追加します。Extensionsではもう一つ、Multi-Byte Stringも追加しておくと便利かもしれないです。Apacheを一度Restartさせてから、http://localhost/phpinfo.phpにアクセスして、PDOからSQLiteがアクセスできることを確認します。
3. 作業フォルダーの作成
作成するWebアプリケーションの名前をtasklogとします。C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\tasklogフォルダーを作成します。このフォルダーをプロジェクト・フォルダーと呼ぶことにします。
4. データベースの作成
最初にデータベースを作成します。SQLiteの場合、作成されていないデータベースのファイル名を指定すると自動的に作成されます。データベースのファイル名をtasklog.sqliteとします。
次に、最小限のデータを保存することにして、以下のPHPでデータベースとテーブルを作成します。
$dbname = 'tasklog.sqlite';
$link = new SQLiteDatabase($dbname, 0666, $sqliteerror);
if (!$link) {
die('接続失敗です。'.$sqliteerror);
}
$sql = "CREATE TABLE task ( id INTEGER , task_name VARCHAR, estimate_time INTEGER,
start_time DATETIME, finish_time DATETIME )";
$result = $link->queryExec($sql, $sqliteerror);
if (!$result) {
die('クエリーが失敗しました。'.$sqliteerror);
}
idはタスクのID、nameはタスク名、estimate_timeはタスク処理の見積もり時間、start_timeは開始時間、finish_timeは終了時間とします。
5. SQLite Managerのインストール
もう一つ準備としてSQLiteを操作するために、SQLite Managerを導入することにします。同じ名前のFirefoxのアドオンもあるのでややこしいですが、こちらはPHPから起動されるWebアプリケーションです。SQLiteManager-1.2.0.zipをダウンロードします。zipファイルの中には、SQLiteManager-1.2.0という階層がありますが、その下の階層をプロジェクト・フォルダーに展開します。ここでhttp://localhost/tasklog /index.phpにアクセスしてSQLite Managerを起動します。起動するとTestデータベースが一つだけ登録されています。
右のSQLite Managerの下にあるLagaugeからJapaneseを選択すると日本語で表示されるようになりますが、画面がEUC-JPなのでブラウザーの設定によって文字化けします。ブラウザーの文字エンコーディングの設定をEUC-JPに変更すれば表示されますが、データベースに入力するデータはUTF-8にする予定なので、どちらかが表示されないことになりますので、LanguageはEnglishのままにします。
作成したtasklog.sqliteデータベースを登録すると、テーブルの構成を確認できます。
本来はSQLite Managerでもデータベースの作成はできるはずですが、SQLite Managerで作成したデータベースにPHPからアクセスしてもオープンに失敗しているようなので、PHPから作成することにしました。もしかしたらSQLite Managerでデータベースを作成するときにバージョンとして3を指定したのがいけなかったのかもしれません。
まずは、ここまでにします。次は登録したデータベースをWebブラウザーで表示します。