phpMyEdit――MySQLデータベース用フロントエンドの作成支援ツール

MySQLデータベースの構築作業に携わったことのある人間であれば、ブラウザ経由でMySQLデータベースの作成と管理を行うphpMyAdminというPHPベースツールのお世話になった経験があるのではないだろうか。これは、PHP/MySQLベースのWebアプリケーションを構築する人間にとって、必携ツールの1つだと言ってもいいだろう。もっともphpMyAdminは、Webアプリケーションのバックエンドで動作する部分の作成と管理を簡単化させてはくれるのだが、フロントエンドとして使われるWebベースインタフェースのデザインに関する機能は何も装備されていない。本稿で解説するのは、PHPベースのフロントエンドに関する構築作業を簡単化してくれるphpMyEditというソフトウェアについてである。このツールを使えば、PHPプログラミングのスキルを持たない人間であっても、極めて短時間で機能豊富なWebインタフェースを作成することができるのだ。なお、こうした「PHPベースのインタフェース作成に伴う繁雑な作業を簡単化する」という触れ込みだけが先行してあまり意識されていないかもしれないが、phpMyEditとは操作性に優れたツールというだけではなく、そこから生成されるフロントエンドについても、ユーザが多種多様なカスタマイズを施すことができるようになっている。

ここでは例題として、「ID」と「Notes」と「Source」という3つのフィールドを有したテーブルを持つMySQLデータベースに対して、簡単なフロントエンドを作成する場合を考えてみよう。まずはphpMyEditの最新版リリースをダウンロードし、展開して得られるフォルダをWebサーバのドキュメントルートに移動しておく。次にブラウザを起動してhttp://serveraddress/path/to/phpMyEdit/phpMyEditSetup.phpにアクセスする。phpMyEditが正常に動作していれば、データベースの接続フォームが表示されるはずなので、必要な情報をフィールドに入力してSubmitボタンをクリックする。これにより、当該データベーステーブルに存在するフィールドの一覧がphpMyEditによって表示されるが、ここでユーザは識別子(MySQL用語で言うところの主キーないしプライマリキー)の指定をする必要がある。次に、phpMyEditで生成されるページに付ける名称とタイトルの指定が要求される。このステップではチェックボックス操作により、ページにヘッダ/フッタを付けるか、基本的なCSSスタイルシートを使用するかを設定することもできる。最終的にphpMyEditの生成するページは、ユーザがSubmitボタンをクリックすることでphpMyEditフォルダに格納されるはずである。なお生成されたコードは画面上にも表示されるので、修正などが必要であれば、テキストエディタにコピーして編集すればいい。

こうして生成されたページを手元のブラウザで開くと、MySQLデータベースのフロントエンドが表示されるはずである。このフロントエンドは基本要素を備えているだけだが、レコードに対する、新規作成、修正、削除、表示、並べ替え、フィルタリングといった処理は行えるようになっている。このようなデフォルト設定のインタフェースを各自の用途に適したフロントエンドに仕上げたければ、phpMyEditを介して必要な修正を施すことも可能だ。具体的な操作については、同プログラムの付属ドキュメントを参照して頂きたい。

次に簡単な設定変更の例として、1ページ当たりの表示レコード数を変えてみよう。こうした操作を施すには、生成された.phpファイルをテキストエディタに表示させ、$opts['inc'] = 15;という行を探し出し、15というデフォルト値を必要な数字に変更すればいい。なおこのオプション値を-1に設定しておくと、存在する全レコードが1ページ上に表示されるようになる。

次に、使用頻度の高いであろう、ユーザパーミッションに関する変更をしてみよう。デフォルトの状態では、データベースを利用するすべてのユーザは任意のデータにアクセスして自由に変更を施せるようになっているが、リードオンリーのアクセスだけをユーザに許可したければ、$opts[‘options’]のオプションを変更すればいい。こうした設定は、オプション文字列の指定ないし省略によって切り換える仕様になっている。例えば、ユーザによるテーブルレコードの変更および削除を禁止したければ、下記のようにデフォルト文字列のACPVDFからCおよびDを削除すればいい。

  $opts['options'] = 'APVF';

また生成されたページのデフォルト設定では、個々のレコードが識別子順で並べられるようになっているが、この指定は$opts[‘sort_field’]のオプションで変更することができる。例えば「Notes」フィールドで並べ替えさせたければ、このオプションを下記のように変更すればいい。

  $opts['sort_field'] = array('Notes');

より複雑な指定として、複数のフィールドを用いた並べ替えを施すこともできる。例えば下記の設定は、「Notes」および「Source」のフィールドで並べ替えさせる指定である。

  $opts[sort_field] = array(Notes, Source);

phpMyEditはSQLをサポートしているので、SQLクエリを用いたデータ操作を行うこともできる。例えば、著者名を名前と名字の「Firstname」と「Lastname」という2つのフィールドに分けて管理している書籍目録のデータベースがあるとしよう。こうした場合、下記のような簡単なSQLステートメントを組むだけで、名前と名字を連結させた「Author」というフィールドを新たに作成することができる。

  $opts[fdd][Author][sql] = CONCAT(Firstname, , , Lastname);

生成されるフロントエンドの外観は、簡単なCSSスタイルシートで指定されているので、このスタイルシートを変更すれば各自の好みに応じたデザインを施すことができる。ただし操作用インタフェースの基本的な表示に関しては、CSSを介さずに変更できるようになっている。例えばphpMyEditで生成されるナビゲーションボタンをカスタマイズしたければ、$opts[navigation]のオプションを変更すればいい。このナビゲーションボタンに関するオプションでは、ページ上の表示位置(U:テーブルの上、D:テーブルの下)および、ボタンの表示タイプ(B:デフォルトのボタン、T:テキストリンク、G:グラフィックリンク)を指定できる。ナビゲーションボタンの表示はこれらのパラメータによって規定されており、例えば下記のオプションは、グラフィックボタンをテーブルの下側に表示させる指定である。

  $opts[navigation] = DG;

以上、簡単な例をいくつか紹介したが、phpMyEditではその他にも様々な操作を行うことができる。例えば、トリガー、CGI変数、JavaScript、機能拡張など、比較的高度な機能もphpMyEditではサポートされている。

Dmitri Popovは、フリーランスのライターとして、ロシア、アメリカ、イギリス、ドイツ、デンマークのコンピュータ雑誌に寄稿している。

NewsForge.com 原文