protected function getAppRouting($application)
 {
     if (isset($this->appRoutings[$application])) {
         return $this->appRoutings[$application];
     }
     $context = sfContext::getInstance();
     $configuration = $context->getConfiguration();
     $config = new opRoutingConfigHandler();
     $currentApp = sfConfig::get('sf_app');
     sfConfig::set('sf_app', $application);
     $configuration->setAppDir(sfConfig::get('sf_apps_dir') . DIRECTORY_SEPARATOR . $application);
     $settings = sfDefineEnvironmentConfigHandler::getConfiguration($configuration->getConfigPaths('config/settings.yml'));
     $isNoScriptName = !empty($settings['.settings']['no_script_name']);
     $options = $context->getRouting()->getOptions();
     $url = sfConfig::get('op_base_url');
     if ('http://example.com' !== $url) {
         $parts = parse_url($url);
         $parts['path'] = isset($parts['path']) ? $parts['path'] : '/';
         $parts['host'] = isset($parts['host']) ? $parts['host'] : '';
         $options['context'] = array('prefix' => $this->getAppScriptName($application, sfConfig::get('sf_environment'), $parts['path'], $isNoScriptName), 'host' => $parts['host']);
     }
     $routing = new sfPatternRouting($context->getEventDispatcher(), null, $options);
     $routing->setRoutes($config->evaluate($configuration->getConfigPaths('config/routing.yml')));
     $context->getEventDispatcher()->notify(new sfEvent($routing, 'routing.load_configuration'));
     sfConfig::set('sf_app', $currentApp);
     $configuration->setAppDir(sfConfig::get('sf_apps_dir') . DIRECTORY_SEPARATOR . $currentApp);
     $this->appRoutings[$application] = $routing;
     return $this->appRoutings[$application];
 }
 protected function getAppRouting($application)
 {
     if (isset($this->appRoutings[$application])) {
         return $this->appRoutings[$application];
     }
     $context = sfContext::getInstance();
     $configuration = $context->getConfiguration();
     $config = new opRoutingConfigHandler();
     $currentApp = sfConfig::get('sf_app');
     sfConfig::set('sf_app', $application);
     $configuration->setAppDir(sfConfig::get('sf_apps_dir') . DIRECTORY_SEPARATOR . $application);
     $settings = sfDefineEnvironmentConfigHandler::getConfiguration($configuration->getConfigPaths('config/settings.yml'));
     $isNoScriptName = !empty($settings['.settings']['no_script_name']);
     $options = $context->getRouting()->getOptions();
     if ($options['context']['is_secure']) {
         $sslBaseUrls = sfConfig::get('op_ssl_base_url');
         $url = $sslBaseUrls[$application];
         $isDefault = 'https://example.com' === $url;
     } else {
         $url = sfConfig::get('op_base_url');
         $isDefault = 'http://example.com' === $url;
     }
     if (!$isDefault) {
         $parts = parse_url($url);
         $parts['path'] = isset($parts['path']) ? $parts['path'] : '';
         $options['context']['prefix'] = $this->getAppScriptName($application, sfConfig::get('sf_environment'), $parts['path'], $isNoScriptName);
         if (isset($parts['host'])) {
             $options['context']['host'] = $parts['host'];
             if (isset($parts['port'])) {
                 $options['context']['host'] .= ':' . $parts['port'];
             }
         }
     } else {
         $path = preg_replace('#/[^/]+\\.php$#', '', $options['context']['prefix']);
         $options['context']['prefix'] = $this->getAppScriptName($application, sfConfig::get('sf_environment'), $path, $isNoScriptName);
     }
     $routing = new sfPatternRouting($context->getEventDispatcher(), null, $options);
     $routing->setRoutes($config->evaluate($configuration->getConfigPaths('config/routing.yml')));
     $context->getEventDispatcher()->notify(new sfEvent($routing, 'routing.load_configuration'));
     sfConfig::set('sf_app', $currentApp);
     $configuration->setAppDir(sfConfig::get('sf_apps_dir') . DIRECTORY_SEPARATOR . $currentApp);
     $this->appRoutings[$application] = $routing;
     return $this->appRoutings[$application];
 }