requireInitialConfig(); $this->defineDSN(); $this->setErrorReporting(); $this->defineDirectoryIndex(); $this->defineConstants(); $this->mbstringInit(); $this->createCacheDir(); } /** * 初期設定ファイルを読み込む. * * @access protected * @return void */ function requireInitialConfig() { require_once(realpath(dirname( __FILE__)) ."/../install.php"); } /** * DSN を定義する. * * @access protected * @return void */ function defineDSN() { if(defined('DB_TYPE') && defined('DB_USER') && defined('DB_PASSWORD') && defined('DB_SERVER') && defined('DB_PORT') && defined('DB_NAME')) { /** サイト用DB */ define ("DEFAULT_DSN", DB_TYPE . "://" . DB_USER . ":" . DB_PASSWORD . "@" . DB_SERVER . ":" .DB_PORT . "/" . DB_NAME); } else { define("DEFAULT_DSN", "pgsql://nobody:password@localhost:5432/eccubedb"); } } /** * エラーレベル設定を行う. * * ・推奨値 * 開発時 - E_ALL * 運用時 - E_ALL & ~E_NOTICE * * @access protected * @return void */ function setErrorReporting() { error_reporting(E_ALL & ~E_NOTICE); } /** * マルチバイト文字列設定を行う. * * TODO SJIS-win や, eucJP-win への対応 * * @access protected * @return void */ function mbstringInit() { ini_set("mbstring.http_input", CHAR_CODE); ini_set("mbstring.http_output", CHAR_CODE); ini_set("auto_detect_line_endings", 1); ini_set("default_charset", CHAR_CODE); ini_set("mbstring.internal_encoding", CHAR_CODE); ini_set("mbstring.detect_order", "auto"); ini_set("mbstring.substitute_character", "none"); mb_language('ja'); // mb_internal_encoding() より前に // TODO 他に mb_language() している箇所の削除を検討 // TODO .htaccess の mbstring.language を削除できないか検討 mb_internal_encoding(CHAR_CODE); // mb_language() より後で // TODO 上の「ini_set("mbstring.internal_encoding", CHAR_CODE);」を削除できないか検討 // TODO .htaccess の mbstring.internal_encoding を削除できないか検討 //ロケールを明示的に設定 setlocale(LC_ALL, LOCALE); } /** * 定数 DIR_INDEX_URL を設定する. * * @access protected * @return void */ function defineDirectoryIndex() { // DirectoryIndex の実ファイル名 if (!defined('DIR_INDEX_FILE')) { define('DIR_INDEX_FILE', 'index.php'); } // DIR_INDEX_FILE にアクセスする時の URL のファイル名部を定義する if (USE_FILENAME_DIR_INDEX === true) { // ファイル名を使用する define('DIR_INDEX_URL', DIR_INDEX_FILE); } else { // ファイル名を使用しない define('DIR_INDEX_URL', ''); } } /** * 定数を設定する. * * mtb_constants.php を読み込んで定数を設定する. * キャッシュディレクトリに存在しない場合は, 初期データからコピーする. * * @access protected * @return void */ function defineConstants() { $errorMessage = "
" . CACHE_PATH . " にユーザ書込み権限(777等)を付与して下さい。
"; // 定数を設定 if (is_file(CACHE_PATH . "mtb_constants.php")) { require_once(CACHE_PATH . "mtb_constants.php"); // キャッシュが無ければ, 初期データからコピー } elseif (is_file(CACHE_PATH . "../mtb_constants_init.php")) { $mtb_constants = file_get_contents(CACHE_PATH . "../mtb_constants_init.php"); if (is_writable(CACHE_PATH)) { $handle = fopen(CACHE_PATH . "mtb_constants.php", "w"); if (!$handle) { die($errorMessage); } if (fwrite($handle, $mtb_constants) === false) { die($errorMessage); } fclose($handle); require_once(CACHE_PATH . "mtb_constants.php"); } else { die($errorMessage); } } else { die(CACHE_PATH . "../mtb_constants_init.php が存在しません"); } } /** * 各種キャッシュディレクトリを生成する. * * Smarty キャッシュディレクトリを生成する. * * @access protected * @return void */ function createCacheDir() { if (defined("HTML_PATH")) { umask(0); if (!file_exists(COMPILE_DIR)) { mkdir(COMPILE_DIR); } if (!file_exists(MOBILE_COMPILE_DIR)) { mkdir(MOBILE_COMPILE_DIR); } if (!file_exists(COMPILE_ADMIN_DIR)) { mkdir(COMPILE_ADMIN_DIR); } if (!file_exists(COMPILE_FTP_DIR)) { mkdir(COMPILE_FTP_DIR); } } } } ?>