Request.php
Code: Select all
<?php
class A_Http_Request {
var $data = array();
var $is_post = false;
function A_Http_Request() {
if (get_magic_quotes_gpc()) {
$this->removeSlashes($_GET);
$this->removeSlashes($_POST);
$this->removeSlashes($_COOKIE);
}
if (!strcasecmp($_SERVER['REQUEST_METHOD'], 'POST')) {
$this->data =& $_POST;
$this->is_post = true;
} else {
$this->data =& $_GET;
}
if (isset($_SERVER['PATH_INFO'])) {
$this->data['PATH_INFO'] = trim($_SERVER['PATH_INFO'], '/');
}
}
function removeSlashes(&$var) {
if (is_array($var)) {
foreach ($var as $name => $value) {
if (is_array($value)) {
$this->removeSlashes($value);
} else {
$var[$name] = stripslashes($value);
}
}
} else {
$var = stripslashes($var);
}
}
function get($name) {
return (isset($this->data[$name]) ? $this->data[$name] : null);
}
function set($name, $value) {
$this->data[$name] = $value;
}
function has($name) {
return isset($this->data[$name]);
}
}
?>Code: Select all
<?php
class A_Controller_Front_Request extends A_Http_Request {
var $action_param = 'action';
function A_Controller_Front_Request($action='') {
$this->Request();
$this->setActionParam($action);
}
function setAction($value) {
$this->set($this->action_param, $value);
}
function getAction() {
return $this->get($this->action_param);
}
function setActionParam($name) {
if ($name) {
$this->action_param = $name;
}
}
function getActionParam($name) {
return $this->action_param;
}
}
?>Code: Select all
<?php
error_reporting(E_ALL);
require_once('config.php');
require_once('A/Http/Request.php');
require_once('A/Controller/Front.php');
$Request = & new A_Http_Request();
echo '<h2>Request vars:</h2><pre>' . print_r($Request->data, true) . '</pre>';
$Controller = & new A_Controller_Front_Request();
?>I'm just playing a bit with the different classes to try to understand what's going on. So hopefully can give me some hints here.