pokopoko
とは何か
pokopoko
クラスライブラリ(以下、poko2と略)とはPHP
を用いた
WebDB
アプリケーションを作るためのフレームワークです。
以下にフレームワークを構成する主なクラスと、その役割を列挙します。
HTMLフォームタグを出力するための簡易ラッパークラス (kernel/cls_form.php)
超簡易版HTMLテンプレートパーサー(kernel/cls_template.php)
DB管理インターフェイスクラス(poko2のメインクラス) (kernel/cls_dbmanager.php)
セッションの設定と開始、終了を行う基本クラス (kernel/cls_session.php)
Pokopoko or Programmable Session Authontication Manager
:PHP4におけるセッション関数を使って、カスタマイズを前提としたユーザー
認証機能を実現するためのアプリケーション(クラス)テンプレート
(kernel/cls_psamanager.php)
CDbManager
の典型的な拡張クラス
(kernel/cls_poko.php)
CDbManager(Ex)
の典型的な統括処理クラス
(フレームワークテンプレートクラス)(kernel/cls_poko.php)
セッション認証を備えた全体統括クラスであり、
poko2
の最も頻繁に利用されると思われる実装の一つ。
(kernel/cls_poko2.php)
poko2
の柔軟性を維持するために導入されたSQL
ドライバのファクトリークラス。指定されたpoko2
用SQLドライバクラスの
インスタンスをコンストラクタで返す。
昨今は様々なCMS(Contents Management System)
がPHPで実装され、使われて
います。またDB管理でも phpPgAdmin
や phpMyAdmin
等があります。
そんな中、わざわざ新しくWebDB用フレームワークを作った理由は非常にシンプル
です。
作者がそうした便利なツールが有ることを知らなかったんです。
んで、躍起になって作って、実際にサイト運営で使っているうちにですね。
何だかこれはこれで、結構使いやすいような・・・って気になっちゃったんです。
確かに XOOPS
や PukiWiki
やら、他にもたくさんの CMS
や掲示板
システムが存在しますし、Blog
も人気です。ですが仕事で作る必要がある
サイトでは、そうした言わば個人ポータル向けのツールを導入して済む話はあまり
無いです。そのくせ作るものはどれもこれもいつか見たようなもの。
そういうわけで、便利なCMS
系は使えないけど、これってどっかで作ったなあ
という場合に、poko2
を適用することで比較的簡単に実装できます。
あとですね。poko2
って、具体的なフレームワークと言うよりは 実装方法
とゆーか方法論とゆーか設計手法とゆーかインターフェイス
みたいな性格が強いんです。
何でもかんでもpoko2
の提供するクラスのみで実装する必要は無いです。
poko2
はですね、どちらかというと「WebDB
を作成するときの良くある
デザインパターンの一つ」みたいなものです。
よって、実際にpoko2
デザインパターンを実装するためのクラスや、果ては
言語すらどうでも良かったりするのです。ただ、PHP
で実装する際にpoko2
デザインパターンを比較的素直に実装できるように調整したクラスが、上に挙げた
クラスライブラリ群なわけです。
というわけで、結構地味なツールに位置しますが・・・実際使ってますから。 使えてますから。底力はそれなりにあるのではないかなーと自負していますので。 是非、お仕事に使っていただけるといいかな?とか。そんな感じです。
Apache + PHP4 + PostgreSQL or MySQL
環境で動作するように作ってはいます。
データベースとのインターフェイスをPEAR
で済ませたり、或は種類を増やせば
対応データベースはもっと増えるかと。
セッション認証を実装すると、多少プラットフォームOSの影響を受けるかも知れま
せんが、基本的にApacheかPHP側の設定で逃げられると思います。
動作検証を行っている作者の環境を列挙します。
OS
: Windows2000(SP4), TurboLinux 8 workstation, TurboLinux 7 serverApache
: 2.0.x(W2K), 1.3.x(TLX)PHP
: 4.3.x(W2K), 4.2.x(TLX8W), 4.1.x(TLX7S)PostgreSQL
: none(W2K), 7.2.x(TLX8W), 7.1.3(TLX7S)MySQL
: 3.x(W2K/TLX8W), none(TLX7S)実はこれが重要だったり。
PHP の文法はマスターしておいて下さい。 以下の事柄を理解していないと、
poko2
を使いこなすのは難しいです。
foreach
でキーと値に分けて連続処理call_user_func
を使用したランタイム関数呼び出しpoko2
は初心者でも簡単に使えるような親切設計では有りません。柔軟性と
シンプルさを両立させるために、かなりフレームワークとしては低位の実装です。
そのため、poko2
を使うにはそれなりにPHPの知識が要求されます。
SQLやデータベースについてはそれほどマスターしていなくても大丈夫です。
SELECT - FROM - WHERE - LIMIT - OFFSET - ORDER BY, INSERT, UPDATE, DELETE
これくらいを知っていれば大丈夫です。外部結合とかJOINとかまでは使いません。