Phapp
1.0.0
一個簡單但可擴展的面向對象的Web應用程序框架。
一個簡單的例子:
<?php
require_once 'Phapp.php';
class Hello extends PhappView
{
public function response()
{
return 'Hello World.';
}
}
$app = new Phapp();
echo $app->process( 'Hello' );
在樣本分支中找到此且更複雜的示例。
這個想法是定義由主應用程序對象處理的一組視圖對象。
每個視圖對像都從phappview繼承,它具有兩個主要方法,您應該覆蓋。第一個是請求():
public function request()
{
if( !$_REQUEST['order_number'] )
return 'Home';
return null;
}
此方法的目的是處理請求,如果需要,請返回應接管的另一個視圖的名稱。
返回null的第一個視圖將獲得其響應()方法來響應請求:
public function response()
{
return '<h1>Hello</h1>';
}
這是一個小圖,顯示了一切如何一起工作:
+----------------------------+
| Name of a PhappView object | <-------------------------+
+----------------------------+ |
| |
| |
+-- Phapp ------|-------+ |
| | | |
| V | |
| +------------------------+ +-- PhappView ---------+ |
| | Construct object | ------> | | |
| +------------------------+ | Object derived | |
| | | | from PhappView | |
| V | | | |
| +------------------------+ +-- request() ---------+ |
| | Call request() on | | | |
| | that object | ------> | Determine if | |
| +------------------------+ | this object | |
| | | can handle | |
| +------------------------+ yes? | this request | no? |
| | request() returned | <------ | | -----+
| | null | +-- response() --------+
| | so call response() | ------> | |
| | to get the output | <------ | Generate output for |
| +------------------------+ html | this request |
| | | | |
+---------------|-------+ +----------------------+
|
V
+----------+
| Web page |
+----------+
PHAPP非常小,很小。只需看看phapp.php即可充分理解其概念。
子類PHAPP和PHAPPVIEW添加用於數據庫訪問,國際化以及類似內容的方法。
建立一個包含常見方法並從中得出您的視圖的基本視圖是一個好主意。
如果您使用的是PDO,則可以從phapppdoview繼承您的視圖,然後撥打Query():
if( ($result = $this->query(
"SELECT
first,
last
FROM members
WHERE last_login = ?
ORDER BY last",
$lastLogin )) )
{
while( ($row = $result->fetch()) )
{
$contents .= "<li>{$row['first']} {$row['last']}</li>";
}
}
最好將PHAPP作為子模塊或子樹添加到您的項目存儲庫中,以便能夠快速更新。