In this example, we create a controller and a view script. The controller passes the URL parameters to the view script.
Components used in this example
- Zend_Controller_Action
- Zend_Controller_Front
- Zend_Controller_Request_Http
- Zend_Controller_Response_Http
Using the action controller
class MyActionController
{
const BASE_URL = 'http://domain/';
public static $uri = array(
'my/script/param1/one/param2/two',
'my/script/param1/123',
'my/script/param1/456',
);
Processing the controller action- We get the URL.
- We create the front controller.
- We create the request.
- We dispatch the action and we get the rendered data.
- If we catch an exception, we return the error message.
public function process()
{
// We get the URL.
list($uri) = $this->_getParameters();
try {
// We create the front controller.
$front = Zend_Controller_Front::getInstance();
$front->setControllerDirectory('.')
->returnResponse(true);
// We create the request.
$request = new Zend_Controller_Request_Http(self::BASE_URL . $uri);
// We dispatch the action and we get the rendered data.
$result = $front->dispatch($request, new Zend_Controller_Response_Http)->getBody();
} catch (Exception $e) {
// If we catch an exception, we return the error message.
$result = $e->getMessage();
}
return array($uri, $result);
}
Extraction of the parameters from the GET request
private function _getParameters()
{
$uri = isset($_GET['uri'])? $_GET['uri'] : self::$uri[0];
return array($uri);
}
}