<?php // システム要件チェック if (version_compare(PHP_VERSION, '5.3.3') < 0) { die('Your PHP installation is too old. EC-CUBE requires at least PHP 5.3.3. See the <a href="http://www.ec-cube.net/product/system.php">system requirements</a> page for more information.'); } if (extension_loaded('wincache')) { if (!ini_get('opcache.enable')) { ini_set('wincache.ocenabled', 1); } ini_set('wincache.fcenabled', 1); } $autoload = __DIR__ . '/vendor/autoload.php'; if (file_exists($autoload) && is_readable($autoload)) { $loader = (require $autoload); } else { die('Composer is not installed.'); } // autoloader cache if (extension_loaded('apc') && ini_get('apc.enabled')) { $apcLoader = new Symfony\Component\ClassLoader\ApcClassLoader('autoloader.', $loader); $apcLoader->register(); $loader->unregister(); } elseif (extension_loaded('wincache') && ini_get('wincache.fcenabled')) { $winCacheLoader = new Symfony\Component\ClassLoader\WinCacheClassLoader('autoloader.', $loader); $winCacheLoader->register(); $loader->unregister(); } return $loader;
/** * Locate site path and initialize settings singleton. * * @param \Symfony\Component\HttpFoundation\Request $request * The current request. * * @throws \Symfony\Component\HttpKernel\Exception\BadRequestHttpException * In case the host name in the request is not trusted. */ protected function initializeSettings(Request $request) { $site_path = static::findSitePath($request); $this->setSitePath($site_path); $class_loader_class = get_class($this->classLoader); Settings::initialize($this->root, $site_path, $this->classLoader); // Initialize our list of trusted HTTP Host headers to protect against // header attacks. $host_patterns = Settings::get('trusted_host_patterns', array()); if (PHP_SAPI !== 'cli' && !empty($host_patterns)) { if (static::setupTrustedHosts($request, $host_patterns) === FALSE) { throw new BadRequestHttpException('The provided host name is not valid for this server.'); } } // If the class loader is still the same, possibly upgrade to the APC class // loader. if ($class_loader_class == get_class($this->classLoader) && Settings::get('class_loader_auto_detect', TRUE) && function_exists('apc_fetch')) { $prefix = Settings::getApcuPrefix('class_loader', $this->root); $apc_loader = new \Symfony\Component\ClassLoader\ApcClassLoader($prefix, $this->classLoader); $this->classLoader->unregister(); $apc_loader->register(); $this->classLoader = $apc_loader; } }
<?php use Symfony\Component\HttpFoundation\Request; /** * @var Composer\Autoload\ClassLoader */ $loader = (require __DIR__ . '/../app/autoload.php'); include_once __DIR__ . '/../app/bootstrap.php.cache'; if (extension_loaded('apc') && ini_get('apc.enabled')) { $apcLoader = new Symfony\Component\ClassLoader\ApcClassLoader(sha1(__FILE__), $loader); $loader->unregister(); $apcLoader->register(true); } if (getenv('APP_ENV') === 'dev') { umask(00); Debug::enable(); $kernel = new AppKernel('dev', true); } else { $kernel = new AppKernel('prod', false); } $kernel->loadClassCache(); if (getenv('APP_ENV') !== 'dev') { if (!isset($_SERVER['HTTP_SURROGATE_CAPABILITY']) || false === strpos($_SERVER['HTTP_SURROGATE_CAPABILITY'], 'ESI/1.0')) { require_once __DIR__ . '/../app/AppCache.php'; $kernel = new AppCache($kernel); } } Request::enableHttpMethodParameterOverride(); Request::setTrustedProxies(array('127.0.0.1')); $request = Request::createFromGlobals(); $response = $kernel->handle($request);
/** * Create a DrupalKernel object from a request. * * @param \Symfony\Component\HttpFoundation\Request $request * The request. * @param $class_loader * The class loader. Normally Composer's ClassLoader, as included by the * front controller, but may also be decorated; e.g., * \Symfony\Component\ClassLoader\ApcClassLoader. * @param string $environment * String indicating the environment, e.g. 'prod' or 'dev'. * @param bool $allow_dumping * (optional) FALSE to stop the container from being written to or read * from disk. Defaults to TRUE. * * @return static * * @throws \Symfony\Component\HttpKernel\Exception\BadRequestHttpException * In case the host name in the request is not trusted. */ public static function createFromRequest(Request $request, $class_loader, $environment, $allow_dumping = TRUE) { // Include our bootstrap file. $core_root = dirname(dirname(dirname(__DIR__))); require_once $core_root . '/includes/bootstrap.inc'; $class_loader_class = get_class($class_loader); $kernel = new static($environment, $class_loader, $allow_dumping); // Ensure sane php environment variables.. static::bootEnvironment(); // Get our most basic settings setup. $site_path = static::findSitePath($request); $kernel->setSitePath($site_path); Settings::initialize(dirname($core_root), $site_path, $class_loader); // Initialize our list of trusted HTTP Host headers to protect against // header attacks. $host_patterns = Settings::get('trusted_host_patterns', array()); if (PHP_SAPI !== 'cli' && !empty($host_patterns)) { if (static::setupTrustedHosts($request, $host_patterns) === FALSE) { throw new BadRequestHttpException('The provided host name is not valid for this server.'); } } // Redirect the user to the installation script if Drupal has not been // installed yet (i.e., if no $databases array has been defined in the // settings.php file) and we are not already installing. if (!Database::getConnectionInfo() && !drupal_installation_attempted() && PHP_SAPI !== 'cli') { $response = new RedirectResponse($request->getBasePath() . '/core/install.php'); $response->prepare($request)->send(); } // If the class loader is still the same, possibly upgrade to the APC class // loader. if ($class_loader_class == get_class($class_loader) && Settings::get('class_loader_auto_detect', TRUE) && function_exists('apc_fetch')) { $prefix = Settings::getApcuPrefix('class_loader', $core_root); $apc_loader = new \Symfony\Component\ClassLoader\ApcClassLoader($prefix, $class_loader); $class_loader->unregister(); $apc_loader->register(); $class_loader = $apc_loader; } // Ensure that the class loader reference is up-to-date. $kernel->classLoader = $class_loader; return $kernel; }