<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] ## 簡介 在本節里,我們完成 ThinkBBS 的項目配置和數據庫配置。 ## 需求分解 在本節里,我們主要完成項目的應用配置(應用名稱、應用地址和調試模式)和數據庫連接配置。 遵循 [開發規范](../c1_base/01060_開發規范.md) ,我們使用 `env()` 和 `config()` 來實現配置信息的設置和讀取。 ## 配置文件存儲位置 ThinkPHP 項目配置包括 **項目配置** 和 **應用配置**。遵循 [開發規范](../c1_base/01060_開發規范.md) , **項目配置** 存儲在項目 `config` 目錄,**應用配置* 存儲在應用的 `config` 子目錄, 如 `app/index/config`。 >[warning] 按照官方文檔里的 [配置](http://www.hmoore.net/manual/thinkphp6_0/1037484) 說明, > ThinkPHP 項目的配置相當靈活,但在本教程里我們將遵循本教程的 [開發規范](../c1_base/01060_開發規范.md),大家以后可以根據自己或公司開發習慣按照框架支持的格式制定自己的開發規范,但請大家在學習本教程過程中嚴格遵循本書的開發規范。 > > 此外,大家在設置項目配置信息時還需要注意: > > 1. 配置文件是按以下 **從右到左** 優先順序加載:慣例配置->項目配置->應用配置; > 2. 配置參數 **區分大小寫**。 ## 配置文件 一定注意了,ThinkPHP6.0 **沒有** config.php 配置文件,默認配置都在 app.php 配置文件,并且配置參數區分大小寫。下面是配置文件的簡單說明: | 文件名稱 | 配置類型 | | -------- | -------- | app.php|應用配置 cache.php|控制臺配置 console.php|緩存配置 cookie.php|Cookie配置 database.php|數據庫配置 filesystem.php|文件磁盤配置 lang.php|多語言配置 log.php|日志配置 middleware.php|中間件配置 route.php|URL和路由配置 session.php|Session配置 trace.php|Trace配置 view.php|視圖配置 ## 訪問配置值 你可以在項目里任何位置使用助手函數 `config` 或 Config 類的 `get` 方法來訪問配置值。配置值的訪問可以使用「點」語法,這其中包含了要訪問的 **文件名稱** 和 **選項** 的名稱。 ```php // 使用助手函數 config // 讀取 app.php 配置文件里的默認時區 $timezone = config('app.default_timezone'); // 讀取所有 app 配置參數 $app = config('app'); ``` 或: ```php // 使用 Config 類 use think\facade\Config; // 讀取 app.php 配置文件里的默認時區 $timezone = Config::get('app.default_timezone'); // 讀取所有 app 配置參數 $app = Config::get('app'); ``` ## 設置環境變量 很多開發人員最喜歡直接在配置文件里修改項目配置參數,但當在開發過程中使用 Git 、SVN 或其它工具控制代碼版本時由于團隊內不同開發人員或不同部署環境時的參數配置值不同,直接修改配置文件里的參數值很容易造成代碼沖突。所以,我們通常是使用 `.env` 來存儲環境變量值。 使用 `.env` 設置配置信息被稱為 [環境變量定義](http://www.hmoore.net/manual/thinkphp6_0/1037484) , 文件中的配置參數定義采用 `ini` 格式。 當項目生成結束后,框架會在根目錄生成一個名為 `.example.env` 的示例配置文件,所以我們復制該文件來創建本地的 `.env` 文件: ```shell $ cp .example.env .env ``` 然后,把新創建的 `.env` 改成以下內容: *.env* ``` APP_DEBUG = true [APP] HOST=bbs.test DEFAULT_TIMEZONE = Asia/Shanghai [DATABASE] TYPE = mysql HOSTNAME = 127.0.0.1 DATABASE = think_bbs USERNAME = homestead PASSWORD = secret HOSTPORT = 3306 CHARSET = utf8 DEBUG = true PREFIX = bbs_ [LANG] default_lang = zh-cn ``` 同時,為了方便其他人部署項目時創建 `.env` 文件,我們把新增配置項也添加到 `.example.env` 文件里: *.example.env* ``` APP_DEBUG = false [APP] HOST=bbs.test DEFAULT_TIMEZONE = Asia/Shanghai [DATABASE] TYPE = mysql HOSTNAME = 127.0.0.1 DATABASE = test USERNAME = username PASSWORD = password HOSTPORT = 3306 CHARSET = utf8 DEBUG = true PREFIX = bbs_ [LANG] default_lang = zh-cn ``` ### 代碼解讀 - `APP_DEBUG` 和其它配置項不同,它不屬于任何「節」,該參數是用來設置是否開啟 [調試模式](http://www.hmoore.net/manual/thinkphp6_0/1037618),當值為 `true` 時我們可以查看訪問頁面的 [Trace調試信息](http://www.hmoore.net/manual/thinkphp6_0/1037619) 。在這里我們遵循官方建議,**在開發階段始終開啟調試模式** 。 ## 調整配置信息 接下來,我們在配置文件里使用以上設置的環境變量: *config/app.php* ```php <?php use think\facade\Env; return [ // 應用地址 'app_host' => Env::get('app.host', ''), . . . // 默認時區 'default_timezone' => Env::get('app.default_timezone', 'Asia/Shanghai'), . . . ]; ``` 因為框架生成的 `config/database.php` 里的數據庫連接本身就是讀取的環境變量,所以不需要進行任何修改。 *config/database.php* ```php use think\facade\Env; return [ . . . // 數據庫連接配置信息 'connections' => [ 'mysql' => [ // 數據庫類型 'type' => Env::get('database.type', 'mysql'), // 服務器地址 'hostname' => Env::get('database.hostname', '127.0.0.1'), // 數據庫名 'database' => Env::get('database.database', ''), // 用戶名 'username' => Env::get('database.username', 'root'), // 密碼 'password' => Env::get('database.password', ''), // 端口 'hostport' => Env::get('database.hostport', '3306'), // 數據庫連接參數 'params' => [], // 數據庫編碼默認采用utf8 'charset' => Env::get('database.charset', 'utf8'), // 數據表前綴 'prefix' => Env::get('database.prefix', ''), . . . ], ], ]; ``` 因為在本項目里,我們不希望用戶通過 URL 訪問 **共用應用(common)** 里的內容,所以我們把該應用添加到禁止訪問應用列表里。**因為該設置和本地配置無關,所以我們直接在配置文件里進行修改**。 *config/app.php* ```php use think\facade\Env; return [ . . . // 禁止URL訪問的應用列表(自動多應用模式有效) 'deny_app_list' => ['common'], . . . ]; ``` ## Git 代碼版本控制 下面把代碼納入到版本管理: ```shell $ git add -A $ git commit -m "修改配置信息" ``` 由于在根目錄 `.gitignore` 文件的忽略規則有 *.env* 這一條,所以大家不必擔心執行 `git add -A` 命令時把 `.env` 文件納入到版本控制里。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看