/**
  * Must echo the page response
  *
  * @since ADD MVC 0.6
  */
 public function execute()
 {
     # ADD MVC 0.5 backward support
     if (method_exists($this, 'page')) {
         return $this->page();
     }
     # Set Content Type
     $this->content_type($this->content_type);
     $this->mode = isset($_REQUEST['mode']) ? "{$_REQUEST['mode']}" : '';
     add::$handle_shutdown = false;
     $this->process_data(isset($this->common_gpc) ? ctrl_tpl_page::recursive_compact($this->common_gpc) : array());
     $this->print_response($this->data);
 }
 /**
  * Sets and return or return an environment status
  *
  * @since ADD MVC 0.8
  */
 public static function environment_status($new_status = null)
 {
     if ($new_status) {
         if (is_string($new_status)) {
             if ($new_status === 'development') {
                 if (add::is_developer()) {
                     add::$environment_status = $new_status;
                 } else {
                     add::$environment_status = "live";
                 }
             } else {
                 if ($new_status === 'live') {
                     add::$environment_status = 'live';
                 } else {
                     throw new e_developer("Invalid environment_status: {$new_status}");
                 }
             }
         }
         /**
          * No errors if live
          *
          * @since ADD MVC 0.7.2
          */
         if (add::is_live()) {
             error_reporting(0);
             add::$handle_shutdown = false;
         } else {
             error_reporting(E_ALL);
             /**
              * When development, record the time spent on script execution
              *
              * @since ADD MVC 0.7.2
              */
             if (add::is_development()) {
                 add::$handle_shutdown = true;
                 if (!isset($GLOBALS['add_mvc_root_timer'])) {
                     $GLOBALS['add_mvc_root_timer'] = add_development_timer::start("Framework Configuration");
                 }
                 add::config()->root_timer = $GLOBALS['add_mvc_root_timer'];
             }
         }
     }
     return add::$environment_status;
 }
 /**
  * Sets and return or return an environment status
  *
  * @since ADD MVC 0.8
  */
 public static function environment_status($new_status = null)
 {
     /**
      *
      * @see http://code.google.com/p/add-mvc-framework/issues/detail?id=33
      */
     if (!add::is_developer()) {
         if (add::$environment_status != 'live' || isset($new_status) && $new_status != 'live') {
             $new_status = 'live';
         }
     }
     if ($new_status) {
         if (is_string($new_status)) {
             if ($new_status === 'development') {
                 if (add::is_developer()) {
                     add::$environment_status = $new_status;
                 } else {
                     add::$environment_status = "live";
                 }
             } else {
                 if ($new_status === 'live') {
                     add::$environment_status = 'live';
                 } else {
                     throw new e_developer("Invalid environment_status: {$new_status}");
                 }
             }
         } else {
             if ($new_status !== true) {
                 throw new e_developer("Invalid new environment status", $new_status);
             }
         }
         /**
          * No errors if live
          *
          * @since ADD MVC 0.7.2
          */
         if (add::is_live()) {
             error_reporting(0);
             ini_set('display_errors', 0);
             add::$handle_shutdown = false;
         } else {
             error_reporting(E_ALL);
             ini_set('display_errors', 1);
             /**
              * When development, record the time spent on script execution
              *
              * @since ADD MVC 0.7.2
              */
             if (add::is_development()) {
                 add::$handle_shutdown = true;
                 if (!isset($GLOBALS['add_mvc_root_timer'])) {
                     $GLOBALS['add_mvc_root_timer'] = add_development_timer::start("Framework Configuration");
                 }
                 add::config()->root_timer = $GLOBALS['add_mvc_root_timer'];
             }
         }
     }
     return add::$environment_status;
 }
 /**
  * Sets and return or return an environment status
  *
  * @since ADD MVC 0.8
  */
 public static function environment_status($new_status = null)
 {
     if ($new_status) {
         add::config()->environment_status = $new_status;
     }
     /**
      * No errors if live
      *
      * @since ADD MVC 0.7.2
      */
     if (add::is_live()) {
         error_reporting(0);
     } else {
         error_reporting(E_ALL);
         /**
          * When development, record the time spent on script execution
          *
          * @since ADD MVC 0.7.2
          */
         if (add::is_development()) {
             add::$handle_shutdown = true;
             $GLOBALS['add_mvc_root_timer'] = add_development_timer::start("Framework Configuration");
             add::config()->root_timer = $GLOBALS['add_mvc_root_timer'];
         }
     }
     return add::config()->environment_status;
 }
/**
 * Handle shutdown
 */
function handle_shutdown()
{
    trigger_error("Deprecated handle_shutdown function", E_USER_DEPRECATED);
    add::handle_shutdown();
}
 /**
  * Custom die() function
  *
  * @since ADD MVC 0.7.2
  */
 static function shutdown($handle_shutdown = true)
 {
     self::$handle_shutdown = $handle_shutdown;
     die;
 }