Neo's Blog

首頁 相本 討論 書籤

分類目錄
本站日誌 (51)
碎碎唸啦 (173)
網站架設 (84)
程式設計 (161)
軟體使用 (69)
電子商務 (126)
經營奇想 (48)
基金理財 (11)
聰明消費 (87)
電影心得 (47)
開放原碼 (16)
工作記錄 (2)
毛毛小記 (9)
就是不同 (2)




歷史資料
 




December 10, 2006
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

 
由 Neo 發表於 December 10, 2006 05:22 PM 收進你的MyShare個人書籤  

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

謝謝您


timeternity 發表於 November 22, 2007 10:19 AM

timeternity:

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


neo 發表於 November 23, 2007 11:15 AM
發表迴響  
(*星號開頭為必填欄位)











(請輸入您看到的數字,看不到請按右鍵->顯示圖片)


記住我的資訊?







Copyright 2005 Neo's Blog All rights reserved.