abstract class Command {
final function __construct() {
}
function execute(HttpRequest $request) {
$this->doExecute($request);
}
abstract function doExecute(HttpRequest $request) ;
}
public class HttpRequest {
private $properties;
private $feedback = array();
function __construct() {
$this->init();
}
function init() {
if (isset($_SERVER['REQUEST_METHOD'])) {
$this->properties = $_REQUEST;
return;
}
foreach($_SERVER['argv'] as $arg) {
if (strpos($arg,'=')) {
list($key,$val) = explode("=", $arg);
$this->setProperty($key,$val);
}
}
}
function getProperty($key) {
if (isset($this->properties[$key])) {
return $this->properties[$key];
}
}
function setProperty($key,$val) {
$this->properties[$key] = $val;
}
function addFeedback($msg) {
array_push($this->feedback, $msg);
}
function getFeedback() {
return this->feedback;
}
function getFeedbackString($separator = "\n") {
return implode( $separator,$this->feedback) ;
}
}
?>
最近在看php设计模式,看到例子不错,顺便做下记录吧,熟悉struts1.x的朋友一定不会陌生