/** * This method is called by the launcher (index.php5) */ static function processHTTP() { ob_start(); $request = Request::parseHTTP(); $responce = new Responce($request); $pkg = Package::getPackageByName('freeform'); // Initialize session $sessionImpl = $pkg->getProperty('session.impl'); $class = new ReflectionClass($sessionImpl); $method = $class->getMethod('load'); Session::setHandler($method->invoke(null, $request)); // See if we have the server cache hit here if(!$responce->getFromCache()) { // Initialize action $action = $request->getParameter('action', $da = $pkg->getProperty('action.default')); try { $class = new ReflectionClass($action); if(!$class->isSubclassOf('Action') || $class->isAbstract()) { throw new Exception('Can not execute action ' . $class->getName()); } } catch(Exception $e) { $class = new ReflectionClass($pkg->getProperty('action.error', $da)); if($class->isSubclassOf('Action') && !$class->isAbstract()) { $responce->relocate(new Location($class->getName())); $responce->setStatusCode(Response::STATUS_ERR_ACTION); } else { throw new ConfigurationException('freeform', 'action.error, action.default', 'do not denote a valid instantiable Action subclass'); } } if(!$responce->isRelocation()) { // Initialize, secure and execute $action = $class->newInstance($request, $responce, true); Package::setEntryPackage(Package::getPackage($action)); try { self::process($action); } catch(AccessDeniedException $ade) { $responce->setStatusCode(Responce::STATUS_ERR_ACCESS); $action->onAccessDenied(); } } } // Send back the document foreach($responce->getHeaders() as $header) { header($header, false); } if($output = trim(ob_get_contents())) { error_log('Executed Action ' . $class->getName() . ' produced output: ' . $output); } ob_end_clean(); echo $responce->getBody(); }
static function contentType($newContentType = null) { if ($newContentType !== null) { self::$_contentType = $newContentType; } return self::$_contentType; }
function process() { Debug::dump(self::config()); $layout = Responce::layout('index', 'TestBaseLayout'); $layout->title("hello, world!"); $layout->addCss('main.css'); // Debug::dump($layout); Responce::send(); }
public function listClubs() { $per_page = Input::get('per_page', 100000); try { $list = Club::with(['user'])->paginate($per_page); $data = []; $data['rows'] = []; foreach ($list as $key => $club) { $data['rows'][] = $club->showInList(); } $data['total'] = $list->getTotal(); $re = Tools::reTrue('获取社团成功', $data); } catch (Exception $e) { $re = Tools::reFalse($e->getCode(), '获取社团失败:' . $e->getMessage()); } return Responce::json($re); }
function __destruct() { Responce::send(); }