本文整理汇总了PHP中Eccube\Framework\Util\Utils::sfInitInstall方法的典型用法代码示例。如果您正苦于以下问题:PHP Utils::sfInitInstall方法的具体用法?PHP Utils::sfInitInstall怎么用?PHP Utils::sfInitInstall使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Eccube\Framework\Util\Utils
的用法示例。
在下文中一共展示了Utils::sfInitInstall方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: convertCallback
/**
* Returns a callable given its string representation.
*
* @param string $name
*
* @return array A callable array
*
* @throws \InvalidArgumentException In case the method does not exist.
*/
public function convertCallback($name)
{
if (preg_match(static::PAGE_PATTERN, $name)) {
return function (Application $app, Request $request) use($name) {
// setpath
$path_info = $request->getPathInfo();
if (substr($path_info, -1) == '/') {
$path_info .= 'index.php';
}
$_SERVER['SCRIPT_NAME'] = str_replace('/index.php', '', $request->server->get('SCRIPT_NAME')) . $path_info . (substr($path_info, -1) == '/' ? 'index.php' : '');
$_SERVER['SCRIPT_FILENAME'] = dirname($request->server->get('SCRIPT_FILENAME')) . $path_info;
// rtrim は PHP バージョン依存対策
$GLOBALS['_realdir'] = rtrim(realpath(rtrim(realpath(dirname($request->server->get('SCRIPT_FILENAME'))), '/\\') . '/'), '/\\') . '/';
$GLOBALS['_realdir'] = str_replace('\\', '/', $GLOBALS['_realdir']);
$GLOBALS['_realdir'] = str_replace('//', '/', $GLOBALS['_realdir']);
define('HTML_REALDIR', $GLOBALS['_realdir']);
/** HTMLディレクトリからのDATAディレクトリの相対パス */
define('HTML2DATA_DIR', '../app/');
define('USE_FILENAME_DIR_INDEX', null);
if (!defined('DATA_REALDIR')) {
define('DATA_REALDIR', HTML_REALDIR . HTML2DATA_DIR);
}
// アプリケーション初期化処理
if (!defined('CACHE_REALDIR')) {
/** キャッシュ生成ディレクトリ */
define('CACHE_REALDIR', DATA_REALDIR . "cache/eccube/");
}
\Eccube\Framework\Helper\HandleErrorHelper::load();
// アプリケーション初期化処理
$objInit = new \Eccube\Framework\Initial();
$objInit->init();
// Page instance
$objPage = new $name($app);
if ($objPage instanceof \Eccube\Page\Admin\AbstractAdminPage) {
define('ADMIN_FUNCTION', true);
} else {
define('FRONT_FUNCTION', true);
}
// 定数 SAFE が設定されている場合、DBアクセスを回避する。主に、エラー画面を意図する。
if (!defined('SAFE') || !SAFE) {
// インストール中で無い場合、
if (!GcUtils::isInstallFunction()) {
// インストールチェック
Utils::sfInitInstall();
// セッション初期化・開始
$sessionFactory = SessionFactory::getInstance();
$sessionFactory->initSession();
/*
* 管理画面の場合は認証行う.
* 認証処理忘れ防止のため, \Eccube\Page\Admin::init() 等ではなく, ここでチェックする.
*/
SessionHelper::adminAuthorization();
}
}
// bufferを初期化する
if ($objPage instanceof \Eccube\Page\Admin\AbstractAdminPage) {
ob_start();
} else {
// 絵文字変換 (除去) フィルターを組み込む。
ob_start(array('\\Eccube\\Framework\\MobileEmoji', 'handler'));
if (Application::alias('eccube.display')->detectDevice() == DEVICE_TYPE_MOBILE) {
// resize_image.phpは除外
if (!$objPage instanceof \Eccube\Page\ResizeImage) {
/* @var $objMobile MobileHelper */
$objMobile = Application::alias('eccube.helper.mobile');
$objMobile->sfMobileInit();
}
}
}
$objPage->init();
$objPage->process();
$response = ob_get_contents();
ob_end_clean();
return $response;
};
} else {
return parent::convertCallback($name);
}
}