Tigermouse PHP/AJAX Framework 簡介

目前 PHP 的 AJAX library 或 framework 大致可分為二種,一種是 Server Side (如: xajax),另一種Server+Client side (如:AJASONAjaxAC…)。至於 Client side 的 library (如: PrototypeSACK…) 則不在本篇討論範圍內。


從下圖可以看出 Server+Client side 模式在 Client 端 (View/HTML) 還是必須自行撰寫 Javascript 來跟 Server side 溝通,也就是 Server side 跟 Client side 二邊都要寫程式:
20061210_01.png

而 Server side 模式則由 library 或 framework 產生 Javascript 來控制 Clent side (View/HTML) 的輸出結果,不需額外在 HTML 撰寫任何 Javascript。
20061210_02.png
(圖片摘錄自 Tigermouse)

Tigermouse 便是一個 PHP Server-side 的 AJAX Framework,而且 Tigermouse 也是少數以 AJAX 為基礎來組成 MVC 架構的 Framework,同時也是做的最像 .Net 的 Framework 。

Tigermouse View 採用 Smarty:

<table id="{$id}">
<tr>
<td>login:</td>
<td>{$login}</td>
</tr>
<tr>
<td>password:</td>
<td>{$passwd}</td>
</tr>
<tr>
<td colspan="2">{$ok}</td>
</tr>
</table>

(除了 HTML 標準元件之外,也提供了一些小玩藝)

從 Model 產生 View:

<?php
class MainCtrl extends Ctrl {
 
public function show() {
$f = new Form('loginForm');
$f->template = 'app/LoginForm.tpl';
 
$l = new Input('login');
$p = new Input('passwd');
$ok = new Button('ok');
$ok->text = 'Login';
 
$f->add($l);
$f->add($p);
$f->add($ok);
$ok->addListener('onClick', 'LoginCtrl/auth', $f->valueReader());
 
return $f;
}
 
}
?>

從上面節錄的 Quick start guide 中可以看到一行特別的東西:

$ok->addListener('onClick', 'LoginCtrl/auth', $f->valueReader());

由此可見 Model 除了能產生 View 中的元件,還能在物件上附加 Event Listener。因此只要透過 TigerMouse 的 Listeners 就可以輕鬆的完成 AJAX Event-driven programming

以下是官方提供的二個簡單的 Listeners 範例語法:

$view->addListener('onClick', 'FormCtrl/confirm');
$view->addListener('onKeyUp', 'AutocompletionCtrl/complete'
, $view->valueReader());

Tigermouse 在 Model 端也提供了多種資料庫存取方式可以採用,如 Rails 的 ActiveRecord、Java 的 DataAccessObject …等等 (但只是有個雛型而已)。當然如果能像 .Net 般將資料庫的 Data Source 結合 View 的元件產生出 HTML 的畫面就更棒了。

目前 Tigermouse 採用 LGPL 授權,支援的瀏覽器以 Firefox 跟 Opera 為主,雖然官方有說 Internet Explorer 6 或許可以,但是實際用 IE 6.0 測試的結果,內建的範例程式在登入是沒問題的,但是輸入資料就會有問題了。而使用 Firefox 2.0 測試雖然功能正常無誤,但是登入後也有出現1個語法錯誤。這實在讓人有點失望,也希望 Tigermouse 未來對瀏覽器的支援能夠更完整。

Tigermouse Demo:
http://www.neo.com.tw/ap/tigermouse
(必須用 FireFox 瀏覽,但主機上的 SQLite 有點慢,有時需要按重新整理)

Tigermouse 官方網址:
http://tigermouse.sourceforge.net/

Tigermouse 文件:
http://tigermouse.epsi.pl/

SourceForge 下載處:
http://sourceforge.net/project/showfiles.php?group_id=173530

Subversion 下載處:
https://svn.sourceforge.net/svnroot/tigermouse

3 comments On Tigermouse PHP/AJAX Framework 簡介

  • 請問一下 Neo 前輩…
    能否說說您覺得 xajax 與 Tigermouse 的優缺點各在哪?

    謝謝您

  • timeternity:

    Tigermouse 我還沒仔細玩過,所以目前無從比較起喲。Sorry..

  • 目前 Tigermouse 採用 LGPL 授權,支援的瀏覽器以 Firefox 跟 Opera 為主,雖然官方有說 Internet Explorer 6 或許可以,但是實際用 IE 6.0 測試的結果,內建的範例程式在登入是沒問題的,但是輸入資料就會有問題了。而使用 Firefox 2.0 測試雖然功能正常無誤,但是登入後也有出現1個語法錯誤。這實在讓人有點失望,也希望 Tigermouse 未來對瀏覽器的支援能夠更完整。

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar