source: branches/feature-module-update/data/class/SC_Initial.php @ 16509

Revision 16509, 4.6 KB checked in by nanasess, 15 years ago (diff)

初期化順序修正

  • Property svn:eol-style set to LF
  • Property svn:executable set to *
  • Property svn:keywords set to Id Revision Date
  • Property svn:mime-type set to text/x-httpd-php
Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7
8/**
9 * アプリケーションの初期設定クラス.
10 *
11 * @author LOCKON CO.,LTD.
12 * @version $Id$
13 */
14class SC_Initial {
15
16    // {{{ cunstructor
17
18    /**
19     * コンストラクタ.
20     */
21    function SC_Initial() {
22
23        /** EC-CUBEのバージョン */
24        define('ECCUBE_VERSION', "2.0");
25    }
26
27    // }}}
28    // {{{ functions
29
30    /**
31     * 初期設定を行う.
32     *
33     * @access protected
34     * @return void
35     */
36    function init() {
37        $this->requireInitialConfig();
38        $this->defineDSN();
39        $this->setErrorReporting();
40        $this->defineConstants();
41        $this->mbstringInit();
42        $this->createCacheDir();
43    }
44
45    /**
46     * 初期設定ファイルを読み込む.
47     *
48     * @access protected
49     * @return void
50     */
51    function requireInitialConfig() {
52
53        require_once(realpath(dirname( __FILE__)) ."/../install.php");
54    }
55
56    /**
57     * DSN を定義する.
58     *
59     * @access protected
60     * @return void
61     */
62    function defineDSN() {
63        if(defined('DB_TYPE') && defined('DB_USER') && defined('DB_PASSWORD')
64           && defined('DB_SERVER') && defined('DB_PORT') && defined('DB_NAME')) {
65            /** サイト用DB */
66            define ("DEFAULT_DSN",
67                    DB_TYPE . "://" . DB_USER . ":" . DB_PASSWORD . "@"
68                    . DB_SERVER . ":" .DB_PORT . "/" . DB_NAME);
69        } else {
70            define("DEFAULT_DSN", "pgsql://nobody:password@localhost:5432/eccubedb");
71        }
72    }
73
74
75    /**
76     * エラーレベル設定を行う.
77     *
78     * ・推奨値
79     *   開発時 - E_ALL
80     *   運用時 - E_ALL & ~E_NOTICE
81     *
82     * @access protected
83     * @return void
84     */
85    function setErrorReporting() {
86        error_reporting(E_ALL & ~E_NOTICE);
87    }
88
89    /**
90     * マルチバイト文字列設定を行う.
91     *
92     * TODO SJIS-win や, eucJP-win への対応
93     *
94     * @access protected
95     * @return void
96     */
97    function mbstringInit() {
98        ini_set("mbstring.http_input", CHAR_CODE);
99        ini_set("mbstring.http_output", CHAR_CODE);
100        ini_set("auto_detect_line_endings", 1);
101        ini_set("default_charset", CHAR_CODE);
102        ini_set("mbstring.internal_encoding", CHAR_CODE);
103        ini_set("mbstring.detect_order", "auto");
104        ini_set("mbstring.substitute_character", "none");
105    }
106
107    /**
108     * 定数を設定する.
109     *
110     * mtb_constants.php を読み込んで定数を設定する.
111     * キャッシュディレクトリに存在しない場合は, 初期データからコピーする.
112     *
113     * @access protected
114     * @return void
115     */
116    function defineConstants() {
117
118        $errorMessage = "<div style='color: #F00; font-weight: bold; "
119            . "background-color: #FEB; text-align: center'>"
120            . CACHE_PATH
121            . " にユーザ書込み権限(777等)を付与して下さい。</div>";
122
123        // 定数を設定
124        if (is_file(CACHE_PATH . "mtb_constants.php")) {
125            require_once(CACHE_PATH . "mtb_constants.php");
126
127            // キャッシュが無ければ, 初期データからコピー
128        } elseif (is_file(CACHE_PATH . "../mtb_constants_init.php")) {
129
130            $mtb_constants = file_get_contents(CACHE_PATH . "../mtb_constants_init.php");
131            if (is_writable(CACHE_PATH)) {
132                $handle = fopen(CACHE_PATH . "mtb_constants.php", "w");
133                if (!$handle) {
134                    die($errorMessage);
135                }
136                if (fwrite($handle, $mtb_constants) === false) {
137                    die($errorMessage);
138                }
139                fclose($handle);
140
141                require_once(CACHE_PATH . "mtb_constants.php");
142            } else {
143                die($errorMessage);
144            }
145        } else {
146            die(CACHE_PATH . "../mtb_constants_init.php が存在しません");
147        }
148    }
149
150    /**
151     * 各種キャッシュディレクトリを生成する.
152     *
153     * Smarty キャッシュディレクトリを生成する.
154     *
155     * @access protected
156     * @return void
157     */
158    function createCacheDir() {
159        if (defined("HTML_PATH")) {
160            if (!file_exists(COMPILE_DIR)) {
161                mkdir(COMPILE_DIR);
162            }
163
164            if (!file_exists(MOBILE_COMPILE_DIR)) {
165                mkdir(MOBILE_COMPILE_DIR);
166            }
167
168            if (!file_exists(COMPILE_ADMIN_DIR)) {
169                mkdir(COMPILE_ADMIN_DIR);
170            }
171
172            if (!file_exists(COMPILE_FTP_DIR)) {
173                mkdir(COMPILE_FTP_DIR);
174            }
175        }
176    }
177}
178?>
Note: See TracBrowser for help on using the repository browser.