<?php /** * orchid bootstrap file. used internally to process request and dispatch * with the help of router and dispatcher. * * @author Hasin Hayder [http://hasin.wordpress.com] * @copyright New BSD License * @version 0.1 */ include "core/ini.php"; initializer::initialize(); $router = loader::load("router"); dispatcher::dispatch($router);
function testSetResponseStatusCodeInvalidCodeRange() { $_SERVER[ODataConstants::HTTPREQUEST_HEADER_METHOD] = ODataConstants::HTTP_METHOD_GET; $_SERVER[ODataConstants::HTTPREQUEST_HEADER_PROTOCOL] = ODataConstants::HTTPREQUEST_HEADER_PROTOCOL_HTTP; $_SERVER[ODataConstants::HTTPREQUEST_HEADER_HOST] = "localhost:8086"; $_SERVER[ODataConstants::HTTPREQUEST_HEADER_URI] = "/NorthWind.svc/Customers"; try { $exceptionThrown = false; $dispatcher = new dispatcher(); //Service dispatched $dispatcher->dispatch(); $contents = ob_get_contents(); ob_end_clean(); $dispatcher->getHost()->setResponseStatusCode(601); $headers =& $dispatcher->getHost()->getWebOperationContext()->OutgoingResponse()->getHeaders(); $this->assertStringStartsWith('601', $headers[ODataConstants::HTTPRESPONSE_HEADER_STATUS_CODE]); } catch (\Exception $exception) { if (ob_get_length()) { ob_end_clean(); } $exceptionThrown = true; $this->assertTrue(TRUE); } if (!$exceptionThrown) { $this->fail('Invalid range of HTTP status code : Some expected exception has not been thrown'); } $dispatcher->getHost()->getWebOperationContext()->resetWebContextInternal(); }
<?php /** * never change this file! * * @package kata_internal * @author mnt@codeninja.de */ /** * setup always needed paths */ require '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . 'defines.php'; /** * include needed files */ require LIB . "boot.php"; /** * call dispatcher to handle the rest */ $dispatcher = new dispatcher(); echo $dispatcher->dispatch(isset($_GET['kata']) ? $_GET['kata'] : '', isset($routes) ? $routes : null);
function testSetResponseStatusCodeInvalidCodeRange() { $_SERVER[ODataConstants::HTTPREQUEST_METHOD] = ODataConstants::HTTP_METHOD_GET; $_SERVER[ODataConstants::HTTPREQUEST_PROTOCOL] = ODataConstants::HTTPREQUEST_PROTOCOL_HTTP; $_SERVER[HttpProcessUtility::headerToServerKey(ODataConstants::HTTPREQUEST_HEADER_HOST)] = "localhost:8086"; $_SERVER[ODataConstants::HTTPREQUEST_URI] = "/NorthWind.svc/Customers"; try { $exceptionThrown = false; $dispatcher = new dispatcher(); //Service dispatched $dispatcher->dispatch(); $contents = ob_get_contents(); ob_end_clean(); $dispatcher->getHost()->setResponseStatusCode(601); $headers =& $dispatcher->getHost()->getWebOperationContext()->OutgoingResponse()->getHeaders(); $this->assertStringStartsWith('601', $headers[ODataConstants::HTTPRESPONSE_HEADER_STATUS_CODE]); } catch (\Exception $exception) { if (ob_get_length()) { ob_end_clean(); } $exceptionThrown = true; $this->assertTrue(TRUE); } }
public static function process() { if (array_key_exists('c', $_GET)) { $controller_name = $_GET['c']; } if (array_key_exists('a', $_GET)) { $action_name = $_GET['a']; } if (array_key_exists('v', $_GET)) { $value = $_GET['v']; } if (array_key_exists('sv', $_GET)) { $sub_value = $_GET['sv']; } // set default values if (!isset($controller_name)) { $controller_name = 'home'; } if (!isset($action_name)) { $action_name = 'index'; } if (!isset($value)) { $value = ''; } if (!isset($sub_value)) { $sub_value = ''; } $verb = strtoupper($_SERVER['REQUEST_METHOD']); $query_string_array = array(); if (array_key_exists('QUERY_STRING', $_SERVER)) { parse_str($_SERVER['QUERY_STRING'], $query_string_array); } $session_service = service_factory::get_session_service(); $session_service->set(); $session_service->extend(); switch ($controller_name) { case 'home': global $model; $controller = controller_factory::get_home_controller(); $model = $controller->index(); break; case 'account': global $model; $controller = controller_factory::get_account_controller(); switch ($action_name) { case 'signup': if ($verb === 'POST') { $model = $controller->do_signup($_POST['first-name'], $_POST['last-name'], $_POST['username'], $_POST['password']); } else { $model = $controller->show_signup(); } break; case 'signin': if ($verb === 'POST') { $model = $controller->do_signin($_POST['account-username'], $_POST['account-password']); if ($model->success) { dispatcher::redirect('/'); } } else { $url = ''; if (array_key_exists('url', $query_string_array)) { $url = $query_string_array['url']; } $model = $controller->show_signin($url); } break; case 'signout': $controller->signout(); dispatcher::redirect('/'); break; } break; case 'location': global $session; $controller = controller_factory::get_list_controller(); switch ($action_name) { case 'index': if ($session) { $data = $controller->get_locations($session->user_id); dispatcher::dispatch(200, json_encode($data), 'application/json'); } else { dispatcher::dispatch_error(401); } break; case 'tracking': if ($session) { $data = $controller->get_trackings_by_location($value, $session->user_id); dispatcher::dispatch(200, json_encode($data), 'application/json'); } else { dispatcher::dispatch_error(401); } break; case 'checkin': $data = $controller->get_trackings_by_location($value, 0); dispatcher::dispatch(200, count($data), 'application/json'); break; case 'report': if ($session) { $data = $controller->get_location_report_by_date($value); dispatcher::dispatch(200, json_encode($data), 'application/json'); } else { dispatcher::dispatch_error(401); } break; case 'status': if ($session) { $data = $controller->get_tracking_status($value, $session->user_id); dispatcher::dispatch(200, json_encode($data), 'application/json'); } else { dispatcher::dispatch_error(401); } break; case 'join': if ($verb === 'POST') { if ($session) { $data = $controller->join_location($value, $session->user_id); dispatcher::dispatch(200, json_encode($data), 'application/json'); } else { dispatcher::dispatch_error(401); } } break; case 'approve': if ($verb === 'POST') { if ($session) { $data = $controller->approve_user_at_location($value, $sub_value); dispatcher::dispatch(200, json_encode($data), 'application/json'); } else { dispatcher::dispatch_error(401); } } break; case 'deactivate': if ($verb === 'POST') { if ($session) { $data = $controller->deactivate_user_at_location($value, $sub_value); dispatcher::dispatch(200, json_encode($data), 'application/json'); } else { dispatcher::dispatch_error(401); } } break; case 'reactivate': if ($verb === 'POST') { if ($session) { $data = $controller->reactivate_user_at_location($value, $sub_value); dispatcher::dispatch(200, json_encode($data), 'application/json'); } else { dispatcher::dispatch_error(401); } } break; case 'show': if ($session) { $data = $controller->get_location($value, $session->user_id); dispatcher::dispatch(200, json_encode($data), 'application/json'); } else { dispatcher::dispatch_error(401); } break; case 'member': if ($session) { $data = $controller->get_members($value); dispatcher::dispatch(200, json_encode($data), 'application/json'); } else { dispatcher::dispatch_error(401); } break; default: // do nothing } break; case 'list': global $model; global $session; if ($session) { $controller = controller_factory::get_list_controller(); $model = $controller->index(); } else { dispatcher::dispatch_error(401); } break; case 'tracking': if ($verb === 'POST') { global $session; if ($session) { $controller = controller_factory::get_list_controller(); $post_data = routing::parse_post_data(); if ($action_name === 'checkin') { $data = $controller->check_in($post_data->location_id, $session->user_id); dispatcher::dispatch(200, json_encode($data), 'application/json'); } else { if ($action_name === 'checkout') { $data = $controller->check_out($post_data->location_id, $session->user_id); dispatcher::dispatch(200, json_encode($data), 'application/json'); } } } else { dispatcher::dispatch_error(401); } } break; default: // do nothing } // fallback if (dispatcher::load_view($controller_name, $action_name)) { exit; } else { // error dispatcher::dispatch_error(404); } }
<?php /** * command line invoker for kata * * @author mnt * @author Raimar Lutsch * @package kata_internal */ /** * start */ require dirname(__FILE__) . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . 'defines.php'; require LIB . "boot.php"; set_time_limit(600); if (posix_getuid() == 0) { echo "Warning: If this is your first call to the framework, kata\n" . "may create the tmp-folders with rights that may make them\n" . "inaccessible for apache-users (eg. www-data)\n"; } if ($argc < 2) { die("Usage: cron.php controller action [param1] [param2] [...]\n"); } $args = $argv; array_shift($args); $dispatcher = new dispatcher(); echo $dispatcher->dispatch(implode('/', $args), null);