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作为子模块或子树添加到您的项目存储库中,以便能够快速更新。