読者です 読者をやめる 読者になる 読者になる

Life, Education, Death

プログラミング以外でも思ったことをつらつらと書きたい

PHP ウィジェットフレームワークを妄想してみた

そもそもGWTが好きであぁJavascriptレスで色々簡単に出来るなんてステキなんて;;;
*1


そんなことをPHPで出来たらなぁーってことです。

基本コンセプト

  • WidgetPHPコードからコンパイルしてtemplateのHTMLと混ぜてうまいHTML+JSになっているファイルを出力する
  • PHP4よりもPHP5のほう推奨
  • インラインでもいいけど、やっぱり外部JSに出力したい

などなど妄想はたくさん☆ミ

やってみた

3時間くらい書いてた気がする。とりあえず、適当なコンパイラまがいなものを製作した。
nativeなjavascriptを吐くクラスとwidgetクラスのそれぞれの基底クラスがないので、ちゃんと設計しないといけないだろう。

とは言うものの、とりあえずテンプレートファイルにonclickのイベントを挿入するWidgetクラスをコンパイルすることには成功した。

ちゃんと外部JSにしたり、JSのグループ化(1Widget1JSファイルじゃかっこ悪い)、javascriptを吐くクラスの整備とかとか

やることたーくさん;;; 今日は終わりにします。
いつ再開することやら・・・


ちなみにこんなものもある
http://journal.mycom.co.jp/articles/2006/11/09/xajax/

途中結果

Widget側のコード*2

require_once "javascript/stdJS.php";

class WidgetTest{

    public $template;
    
    function __construct() {
        $this->template = "test.html"; // テンプレートファイルの指定
    }

    public function testBtn_onClick()
    {
        std_JS::alert("test");
    }

}


templateファイル

<div>
  <button id="testBtn">Click !!!</button>
</div>

出力したファイル

<div>
  <button id="testBtn" onclick="alert('test');">Click !!!</button>
</div>

*1:まぁ足りないものがたくさんあったのでネイティブなjavascript書きましたけど・・・

*2:コード中のstd_JSクラスはメソッドに対応したjavascriptのコードを出力するメソッドを持つクラスです