/**
  * 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();
 }
Ejemplo n.º 2
0
 static function contentType($newContentType = null)
 {
     if ($newContentType !== null) {
         self::$_contentType = $newContentType;
     }
     return self::$_contentType;
 }
Ejemplo n.º 3
0
 function process()
 {
     Debug::dump(self::config());
     $layout = Responce::layout('index', 'TestBaseLayout');
     $layout->title("hello, world!");
     $layout->addCss('main.css');
     //		Debug::dump($layout);
     Responce::send();
 }
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 5
0
 function __destruct()
 {
     Responce::send();
 }