home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

PHP/PokoX, pokopokoという黒歴史メモ

PHP/PokoX, pokopokoという黒歴史メモ

PHP / PokoX, pokopokoという黒歴史メモ
id: 106 所有者: msakamoto-sf    作成日: 2008-12-23 15:30:35
カテゴリ: PHP Web 

2005年頃、"PokoX"というWebアプリのフレームワークを作っていました。第5回PHP勉強会でオレオレフレームワークということで発表したりもしました。
過去のPukiWikiデータを整理していてPokoX関係のデータをこちらに移すか悩んでいたのですが、今更参照する事も無いと思いました。とはいえコンテンツから完全に消去するのも忍びないので、思い出と共にメモしておきます。

PokoX
SF.jp上は "pokopoko" というプロジェクト名で登録してあります。
http://sourceforge.jp/projects/pokopoko/

poko1時代 (2001 - 2003)

Linuxサーバ管理のバイトで、PHP+PostgreSQLのプログラミングを勉強がてら始めた時代に作ったリリース。
当時はDBのマスタ管理画面を作る事が多くて、それをパターン化したもの。
まだ PHP3 の時代で、セッション管理などは PHPLIB とかいうライブラリで実装していた。
テンプレートエンジンの存在など知らない、デザパタも知らない、そんな時代に作成。
ページャ機能も無くて、DB抽象レイヤーも無い。

poko2時代 (2004)

ようやくSmartyとかADODBとかを知り、少しはまともなアプリが組めるようになり、PEARとかも使い始めた。
大学の卒業と就職の年。
poko1をSmarty/ADODB/PEARのページャ機能を使って作り直したのがpoko2。
とはいえ、poko2は実際に使う事は無かった。フレームワークという考え方にどっぷりはまってしまい、すぐPokoXの作成に移ってしまったから。

poko1, poko2 の作り

基本的にマスタ管理に特化した作りになっていて、DBのテーブル定義をPHPの連想配列で組んでおけば、基本的なマスタ管理画面を自動的に表示してくれる。
ベース部分の作り込みがクラスライブラリで提供されていて、画面やフォームを弄りたければ該当箇所のメソッドをオーバーライドしたクラスを用意する仕組み。
テンプレートの存在を知らないか、知っていても使いこなせていない時代だったので、HTMLの出力はPHP側でクラスのメソッドの中で行っていた。
ヘッダーやフッターもベース部分で全部ハードコードしていた為、HTMLをカスタマイズしようと思ったら相当の苦労が必要だった。

PokoX時代 (2005)

poko1, poko2 は確かにマスタ管理では役に立ったのだけれど、一般公開する表側の画面を作るのには向いていなかった。
ちょうどMojaviやEthnaなどPHPフレームワーク花盛りの頃で、「このままpokoシリーズを続けるか、Mojavi/Ethna/Mapleに転向するか」かなり悩んだ記憶がある。
仕事でPHPをメインとしているわけではなく、どちらかといえば趣味で続けていたため、オレオレフレームワークでも特別困る事が無かった。

悩んだ末に、poko1/2でのキモだったDB機能をごっそりと削り落とし、画面遷移の中核だけを取り出して組み直すことにしたのがPokoX。

PokoXはそれなりに使えて、実際に仕事でも何度か使った。作りが単純なのが幸いして、「フレームワーク側が勝手に処理してるので手を出せない」という事は無かった。使いやすいとは言えないが、決して「作りが悪い」訳ではなかった・・・というのは当然作者の自画自賛なわけだけど。

この「自由度を高くしてアプリ側の制御範囲をなるべく残しておく」という「マージン優先」思想はXhwlayにも受け継がれている。オレオレフレームワークは作者が自分一人の為、機能強化が難しい。ならばいっそのこと、アプリ毎に変動幅が大きい部分は一切タッチせず、コア部分だけを好き勝手弄りやすいようにしておこうというのがPokoX以来の自分なりのフレームワークのポリシー。

2008年時点ではsymfonyやCakePHPなどが台頭し、かなりFW側でがっちり組んでしまっているが、その分Webアプリの作り方がパターン化され、おおよそFW側で殆どカバーできるようになったからだろう。また実際にWebアプリの制作を本業としているプロ達が多数開発に関わっているのだから、FW側の機能も殆どの場合に満足できる質量になったのだろう。

その後(2005 - 2007)

PokoXが一通り落ち着いた後は、memoriesというWikiソフトに舵を切り替えた。
memoriesはYakiBikiの前身で、完成しなかったソフト。

PokoXをベースとして、ADODB抽象化レイヤー、Smartyテンプレートエンジン、log4phpによるロガーを組み込んだ。
ユーザ管理・グループ管理・カテゴリ管理・Blog的なコンテンツ管理のベース部分まで作り込んでいた。
Webアプリとしての「元ネタ」部分は一通り出来上がっていたので、FW的に幾つかのサイトで使った。
完成しなかったのは、やはりWikiエンジンとACLの部分に悩まされていたから。

2006-2007年にPiece Frameworkを知り、Xhwlayの作成に舵を転換。
2007年後半、実際にあるサイトのマスタ管理画面でXhwlayを適用して実用を確認。YakiBikiへ継承。

2007年はsymfonyやCakePHPが浸透した年と記憶している。
そして2008年の1-3月にWebベンチャーでアルバイトをして、symfony/CakePHP/Akelosとかを弄る。

結局、自分の技術ではとてもじゃないが本職が束になって開発したFWに勝てない。
オレオレフレームワークに実に数年に渡りプライベートタイムを費やしてきたが、成果としては実を結んでいないのが実情。まぁXhwlayとYakiBikiが作れたからいっか。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2008-12-23 16:25:00
md5:9d08799f8cf36c5ade66563737ef2e25
sha1:b54c65919ebf259368500b42fdf6f4a395ab6ae4
コメント
コメントを投稿するにはログインして下さい。