initial commit

This commit is contained in:
2010-01-12 19:36:01 +02:00
commit 43a7bae14a
7 changed files with 268 additions and 0 deletions

19
app/api.php Normal file
View File

@@ -0,0 +1,19 @@
<?php
class Api {
function __construct (&$app) {
$this->app =& $app;
}
function call (&$env) {
if ( preg_match("/^\/api\/([a-z]{1}[a-z0-9]*)/i", $env["PATH_INFO"], $match) ) {
return array(200, array("Content-Type" => "text/json"), array("{api_call: \"".$match[1]."\"}"));
} else {
return $this->app->call($env);
}
}
}
?>

16
app/app.php Normal file
View File

@@ -0,0 +1,16 @@
<?php
class App {
function call (&$env) {
if ( $env["PATH_INFO"] == "/" ) {
return array(200, array("Content-Type" => "text/html"), array("Welcome Home"));
} elseif ( preg_match("/^\/about\/?/i", $env["PATH_INFO"]) ) {
return array(200, array("Content-Type" => "text/html"), array("Rack-style middleware is cool."));
}
return Rack::not_found();
}
}
?>

29
app/format.php Normal file
View File

@@ -0,0 +1,29 @@
<?php
class Format {
function __construct (&$app) {
$this->app =& $app;
}
function call (&$env) {
// available formats
$formats = array("txt" => "text/plain", "xml" => "application/xml");
// call the next middleware in the stack
list($status, $headers, $body) = $this->app->call($env);
// do something with response headers
foreach( $formats as $key => $value ) {
if ( !empty($env["request.vars"]["format"]) && $env["request.get"]["format"] == $key ) {
$headers["Content-Type"] = $value;
}
}
return array($status, $headers, $body);
}
}
?>