開発ブログ

ページメニュー

<< 他人のふんどし率〜htmlparser | main | スクレイピング あまり知られてないけどこの曲どう? >>

カレンダー

<< August 2017 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>

  • phpCodeGenieで、テーブル編集のPHPを自動生成
  • サッカー選手APIってのを作ろう、と、データベースに2000件ほどデータを挿入してみました。現状は4-4-2のフォーメーション(固定)で、ランダムに選手を割り振るようになっています。現役の選手から往年の名選手まで、いろんな選手が集まったチームというのはなかなか壮観。

    さて、本データは、選手名、ポジション、国名しかもっていません。これに、現役か引退か、右利きか左利きか、キック力、スタミナ・・・といった項目値を追加するとなると、大変な作業に。誰かにお願いしたいところですが、お願いするにしても頭を悩ますことが。

    それは、直接データベースを編集できるユーザならいざ知らず、そうでないユーザに編集の協力を頼む場合、テーブルを直接編集するページを作る必要があると、いうこと。これが結構面倒臭い。新規追加、編集削除、一覧表示に検索…こういうのを毎度作らなくてはなりません。

    面倒を肩代わりしてくれるものはないのか調べてみると、このようなケースのテーブル編集のためのPHPを自動で生成してくれるツールが結構あるようです。実は以前からあるのは知っていたのですが、海外のもので文字コードの処理がうまくいかなかったり、データベースが特定されてたり、関連ファイルを作りすぎたり、と、いろいろ問題は少なくありませんでした。それで手を出さずにいたのですが、2008年にもなれば、だいぶ融通の利くソフトが出てきてるようです。今回は、phpCodeGenieというものを試してみたいと思います。

    まず、ダウンロード。解凍してサーバにアップします。アップ先は/usr/local/apache/htdocs/phpCodeGenie3.0とすれば、下記設定の1と2が不要になります。ファイルが500前後あるので、しばらく待ちます。

    サーバアップ後の詳しい設定は以下。

    1. rootにある.htaccess内のinclude_pathを自分の環境に合わせて修正。
      ※phpCodeGenieのrootパスと、app/setting/へのパスをいれないとダメぽい

      ファイル一式を/usr/local/apache/htdocs/phpCodeGenieにおいた場合、
      php_value include_path '.:/usr/local/apache/htdocs/phpCodeGenie:/usr/local/apache/htdocs/phpCodeGenie/app/settings/'
      を、指定。

    2. 次にapp/settings/genieConfiguration.inc.php
      define("SITE_PATH","/usr/local/apache/htdocs/phpCodeGenie3.0");
      の箇所を自分の環境に合わせて修正。
      ファイル一式を/usr/local/apache/htdocs/phpCodeGenieにおいた場合、
      define("SITE_PATH","/usr/local/apache/htdocs/phpCodeGenie");

    3. 次にapp/settings/genieConfiguration.inc.php
      define("URL_ADDRESS","http://localhost/phpCodeGenie3/web/");
      を環境に合わせて修正。


    設定終了画面

    このような画像が出ればOK。サーバ名、ユーザID、パスワードを入れたら、ランプ画像を押します(LAMPにかけたシャレ?)。対応データベースは、MySQLPostgreSQLODBCSQL LiteOracle 8 or aboveOracle (old versions)DB2MS SQL ServerMax MySQLVisual FoxProFrontBaseInterbase 6Borland Interbase 6.5 or aboveFirebirdInformixInformix 7.2LDAPNetezzaSap DBSybaseSybase SQL AnywhereDB2
    と、多岐にわたります。

    接続終了画面

    接続がうまくいけば、上記のような画面が出ます。左側のフレームにテーブル一覧が出ている対象となるテーブルを選ぶと、メインのフレームに
    Generate ALL Code for Entire Database Application and Save to Disk 
    Code Genie Form Maker
    Insert Query Builder
    Database Lister
    All in One CRUD Grid
    Edit/Update Form Builder
    Update Maker
    View Maker
    Delete Confirmation Maker
    Delete Script Maker
    Search Form Maker
    Search Script Maker
    というメニューが出てきます。

    ここでは、一番上の
    Generate ALL Code for Entire Database Application and Save to Disk 
    を選んでみます。

    Pathを決め、対象となるテーブルを絞り込み、Please choose the modules that you want to be generated.は、下記の項目全てを選んだ状態にします。
    Enter / Insert Code
    Edit / Update Code
    Lister Script
    View One Record
    Delete Script
    Search Code
    Copy Common

    Generate And Save All codeボタンをクリック。warningが出た場合は、パーミッションもしくはそのフォルダが無いということなので、先に該当フォルダを作るなりの作業をしておきます。

    設定完了画面

    が出れば、多分、完成。

    先にいれたPathとデータベースユーザ名にフォルダができているので、画面や機能を確認します。今回、出力パスをroot/test以下に生成しましたが、CSSや一部のコンテンツ(contact uscopyrightなど)のファイルが参照できません。例えばCSSについていえば、生成したファイルは以下の絶対パスを参照しています。

    http://phpCodeGenie3のパス/web/generatedCode/simple/データベースユーザ/common/style.css

    phpCodeGenie3のパス以下にあるwebフォルダに対して出力すれば、特に問題ないと思います。自動生成する元となるテンプレート先をちょこちょこっといじる、という手も考えられますね。皆さんの環境に応じて対処してください。

    トップページ
    トップページ

    リストページ
    リストページ

    リストページと編集欄
    リストページと編集欄の画像

    挿入ページ
    挿入ページの画像

    検索ページ
    検索ページの画像

    このまま利用すると日本語は文字化けしましたが、metaheadにきちんと文字コードを設定すると文字化けせずに動作しました。尚、当方の環境は、MySQL(バージョン4.0.24)。文字コードはutf-8で統一しています。

    もし、日本語処理でおかしな場合が発生した場合は、下記サイトが参考になると思います。

    堂園システムエンジニア覚書

    また、ぎじゅっやさんというサイトの情報を参考にさせていただきました。ありがとうございました。

    使ってみた感想といえば、最低限は満たしてる、というのが感想。日本語のドキュメントがほとんどなかったので、.htaccessの通すパスが厄介だった点を除けば、すんなりと作業できたと思います。一度試してみる価値はあるかもしれません。

| 開発関連 | 05:01 | comments(0) | trackbacks(0) |


コメント

コメントする

この記事のトラックバックURL

http://blog.24th.jp/trackback/924695