/** * Runs the WebApplication * * @param \AppserverIo\Psr\Servlet\Http\HttpServletRequestInterface $servletRequest The request instance * * @return string The web applications content */ public function run(HttpServletRequestInterface $servletRequest) { try { // register the Magento autoloader as FIRST autoloader spl_autoload_register(array(new \Varien_Autoload(), 'autoload'), true, true); // Varien_Profiler::enable(); if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) { \Mage::setIsDeveloperMode(true); } ini_set('display_errors', 1); umask(0); // store or website code $mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : ''; // run store or run website $mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store'; // set headers sent to false and start output caching appserver_set_headers_sent(false); ob_start(); // reset and run Magento \Mage::reset(); \Mage::register('ServletRequest', $servletRequest); \Mage::run(); // write the session back after the request session_write_close(); // We need to init the session anew, so PHP session handling will work like it would in a clean environment appserver_session_init(); // grab the contents generated by Magento $content = ob_get_clean(); } catch (\Exception $e) { error_log($content = $e->__toString()); } // return the content return $content; }
/** * Runs the WebApplication * * @param \AppserverIo\Psr\Servlet\Http\HttpServletRequestInterface $servletRequest The request instance * * @return string The web applications content */ public function run(HttpServletRequestInterface $servletRequest) { try { // cleanup mage registry foreach ($this->registryCleanKeys as $registryCleanKey) { \Mage::unregister($registryCleanKey); } error_log("Successfully reset Magento"); // set headers sent to false and start output caching appserver_set_headers_sent(false); ob_start(); // reset and run Magento $appRequest = new \Mage_Core_Controller_Request_Http(); $appResponse = new \Mage_Core_Controller_Response_Http(); $appRequest->setRequestUri(); error_log("Set request URI: " . $_SERVER['REQUEST_URI']); $this->app->setRequest($appRequest); $this->app->setResponse($appResponse); // store or website code $mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : ''; // run store or run website $mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store'; $this->app->run(array('scope_code' => $mageRunCode, 'scope_type' => $mageRunType, 'options' => array())); // write the session back after the request session_write_close(); // We need to init the session anew, so PHP session handling will work like it would in a clean environment appserver_session_init(); // grab the contents generated by Magento $content = ob_get_clean(); } catch (\Exception $e) { error_log($content = $e->__toString()); } // return the content return $content; }