示例#1
0
 /**
  * Recess PHP Framework Entry Point
  * @param Request $request The raw Request.
  * @package recess
  * @static 
  */
 public static function main(Request $request, IPolicy $policy, RtNode $routes, array $plugins = array())
 {
     static $callDepth = 0;
     static $calls = array();
     $callDepth++;
     $calls[] = $request;
     if ($callDepth > 3) {
         print_r($calls);
         die('Forwarding loop in main?');
     }
     $request = $policy->preprocess($request);
     $controller = $policy->getControllerFor($request, $routes);
     $response = $controller->serve($request);
     $view = $policy->getViewFor($response);
     ob_start();
     $view->respondWith($response);
     if ($response instanceof ForwardingResponse) {
         $forwardRequest = new Request();
         $forwardRequest->setResource($response->forwardUri);
         $forwardRequest->method = Methods::GET;
         if (isset($response->context)) {
             $forwardRequest->get = $response->context;
         }
         $forwardRequest->accepts = $response->request->accepts;
         $forwardRequest->cookies = $response->request->cookies;
         $forwardRequest->username = $response->request->username;
         $forwardRequest->password = $response->request->password;
         $cookies = $response->getCookies();
         if (is_array($cookies)) {
             foreach ($response->getCookies() as $cookie) {
                 $forwardRequest->cookies[$cookie->name] = $cookie->value;
             }
         }
         Recess::main($forwardRequest, $policy, $routes, $plugins);
     }
     ob_end_flush();
 }
示例#2
0
 */
$_ENV['dir.bootstrap'] = str_replace('\\', '/', realpath(dirname(__FILE__))) . '/';
$_ENV['url.base'] = str_replace('bootstrap.php', '', $_SERVER['PHP_SELF']);
if (strpos($_SERVER['REQUEST_URI'], '/bootstrap.php') === 0) {
    exit;
}
$bootstrapped = true;
require_once './recess-conf.php';
RecessConf::init();
Library::import('recess.diagnostics.Diagnostics');
set_error_handler(array('Diagnostics', 'handleError'));
set_exception_handler(array('Diagnostics', 'handleException'));
Library::import('recess.http.Environment');
Library::import('recess.Recess');
// Entry point to Recess
Recess::main(Environment::getRawRequest(), RecessConf::$policy, RecessConf::getRoutes(), RecessConf::$plugins);
// RecessConf follows...
abstract class RecessConf
{
    const DEVELOPMENT = 0;
    const PRODUCTION = 1;
    public static $mode = self::PRODUCTION;
    public static $recessDir = '';
    public static $pluginsDir = '';
    public static $appsDir = '';
    public static $dataDir = '';
    public static $useTurboSpeed = false;
    public static $cacheProviders = array();
    public static $applications = array();
    public static $plugins = array();
    public static $defaultDatabase = array();