<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 配置基礎 `ThinkPHP`遵循慣例重于配置的原則,系統會按照下面的順序來加載配置文件(配置的優先順序從右到左)。 >[info]#### 慣例配置->應用配置->模塊配置->動態配置 * **慣例配置**:核心框架內置的配置文件,無需更改。 * **應用配置**:每個應用的全局配置文件(框架安裝后會生成初始的應用配置文件),有部分配置參數僅能在應用配置文件中設置。 * **模塊配置**:每個模塊的配置文件(相同的配置參數會覆蓋應用配置),有部分配置參數模塊配置是無效的,因為已經使用過。 * **動態配置**:主要是指在控制器或者行為中進行(動態)更改配置,該配置方式只在當次請求有效,因為不會保存到配置文件中。 >[info] 和5.0最大的區別是,5.1版本的配置參數全部是二級配置,當沒有指定一級配置名的時候,默認就是以`app`作為一級配置,一級配置名稱通常來說就是所在的配置文件名。 ## 配置文件和目錄 為更好的應對模塊化的開發要求,`5.1`的應用配置主要包括**應用配置**目錄和**模塊配置**目錄,結構如下: ~~~ ├─config(應用配置目錄) │ ├─app.php 應用配置 │ ├─cache.php 緩存配置 │ ├─cookie.php Cookie配置 │ ├─database.php 數據庫配置 │ ├─log.php 日志配置 │ ├─session.php Session配置 │ ├─template.php 模板引擎配置 │ ├─trace.php Trace配置 │ └─ ... 更多配置文件 │ ├─route(路由目錄) │ ├─route.php 路由定義文件 │ └─ ... 更多路由定義文件 │ ├─application (應用目錄) │ └─module (模塊目錄) │ └─config(模塊配置目錄) │ ├─app.php 應用配置 │ ├─cache.php 緩存配置 │ ├─cookie.php Cookie配置 │ ├─database.php 數據庫配置 │ ├─log.php 日志配置 │ ├─session.php Session配置 │ ├─template.php 模板引擎配置 │ ├─trace.php Trace配置 │ └─ ... 更多配置文件 │ ~~~ >[danger] 一定注意了,5.1沒有`config.php`配置文件,默認配置都在`app.php`配置文件,并且配置參數**區分大小寫** 上面的目錄結構是只是列出系統內置的配置文件,你還可以增加其他的自定義配置文件,配置文件的名稱就是一級配置名。 >[danger] 因為架構設計要求,`5.1`的路由配置文件(確切來說應該是路由定義文件)獨立于配置文件(更多會在路由章節中講述)。 應用和模塊的配置目錄對應關系為: 配置|目錄 ---|--- 應用配置目錄|config 模塊配置目錄|application/module/config 如果你需要統一管理所有的配置文件,那么可以把模塊目錄下面的`config`目錄移動到應用配置目錄下面改為模塊子目錄的方式,調整后的配置目錄的結構如下: ~~~ ├─application(應用目錄) ├─config(配置目錄) │ ├─module (模塊配置目錄) │ │ ├─database.php 數據庫配置 │ │ ├─cache 緩存配置 │ │ └─ ... │ │ │ ├─app.php 應用配置 │ ├─cache.php 緩存配置 │ ├─cookie.php Cookie配置 │ ├─database.php 數據庫配置 │ ├─log.php 日志配置 │ ├─session.php Session配置 │ ├─template.php 模板引擎配置 │ └─trace.php Trace配置 │ ├─route(路由配置目錄) │ ├─route.php 路由定義文件 │ └─ ... 更多路由定義文件 ~~~ >[danger] 一旦模塊目錄下面存在`config`目錄,則應用配置目錄下的模塊配置則無效,也不會對兩個目錄的配置進行合并。 這樣一來,配置目錄對應關系變成: 配置|目錄 ---|--- 應用配置目錄|config 模塊配置目錄|config/module **每個配置文件中都有詳細的配置參數說明,可以仔細查看。** ## 配置定義 可以直接在相應的應用或模塊配置文件中修改或者增加配置參數,如果你要增加額外的配置文件,直接放入應用或模塊配置目錄即可(文件名小寫)。 >[danger] 除了一級配置外,配置參數名嚴格區分大小寫,建議是使用小寫定義配置參數的規范。 另外涉及到配置參數的定義有效性問題,下列配置參數在模塊配置中定義(包括動態配置)無效,而**必須在應用配置中設置**: 配置參數|描述 ---|--- app_debug|應用調試模式(支持環境變量配置) app_trace|應用trace(支持環境變量配置) class_suffix|類后綴 default_filter|默認過濾機制 root_namespace|根命名空間 pathinfo_depr|PATH_INFO分隔符 url_route_must|路由強制模式 auto_bind_module|自動綁定模塊 default_lang|默認語言 lang_switch_on|多語言切換 由于架構設計原因,下面的配置只能在環境變量中修改。 配置參數|描述 ---|--- app_namespace|應用命名空間 config_ext|配置文件后綴 ### 其它配置格式支持 默認的配置文件都是PHP數組方式,如果你需要使用其它格式的配置文件,你可以通過改變`CONFIG_EXT`**環境變量**的方式來更改配置類型。 在應用根目錄的`.env`或者系統環境變量中設置 ~~~ CONFIG_EXT=".ini" ~~~ 支持的配置類型包括` .ini`、`.xml`、`.json` 、`.yaml`和 `.php` 在內的格式支持,配置后應用配置及模塊配置必須統一使用相同的配置類型。 ### 二級配置 配置參數的值同樣支持數組,下面是示例: ~~~ return [ 'user' => [ 'type' => 1, 'name' => 'thinkphp', ], 'db' => [ 'type' => 'mysql', 'user' => 'root', 'password' => '', ], ]; ~~~ ### 環境變量定義 可以在應用的根目錄下定義一個特殊的`.env`環境變量文件,用于在開發過程中模擬環境變量配置(該文件建議在服務器部署的時候忽略),`.env`文件中的配置參數定義格式采用`ini`方式,例如: ~~~ APP_DEBUG = true APP_TRACE = true ~~~ >[danger] 如果你的部署環境單獨配置了環境變量( 環境變量的前綴使用`PHP_`),那么請刪除`.env`配置文件,避免沖突。 環境變量配置的參數會全部轉換為大寫,值為 `null`,`no` 和 `false` 等效于 `""`,值為 `yes` 和 `true` 等效于 `"1"`。 注意,環境變量不支持數組參數,如果需要使用數組參數可以,使用下劃線分割定義配置參數名: ~~~ DATABASE_USERNAME = root DATABASE_PASSWORD = 123456 ~~~ 獲取環境變量的值使用下面的方式: ~~~ Env::get('database_username'); Env::get('database_password'); ~~~ 如果使用 ~~~ [DATABASE] USERNAME = root PASSWORD = 123456 ~~~ 獲取環境變量的值可以使用下面的方式獲取: ~~~ Env::get('database.username'); Env::get('database.password'); ~~~ 要使用`Env`類,必須先引入`think\facade\Env`或者`\Env`。 >[danger] 環境變量的獲取不區分大小寫 可以支持默認值,例如: ~~~ // 獲取環境變量 如果不存在則使用默認值root Env::get('database.username','root'); ~~~ 可以直接在配置文件中使用環境變量進行本地環境和服務器的自動配置,例如: ~~~ return [ 'hostname' => Env::get('hostname','127.0.0.1'), ]; ~~~ >[danger] 環境變量中設置的`APP_DEBUG`和`APP_TRACE`參數會自動生效(優先于應用的配置文件),其它參數則必須通過`Env::get`方法才能讀取。 ## 配置獲取 要使用`Config`類,首先需要在你的類文件中引入 ~~~ use think\facade\Config; ~~~ 或者(因為系統做了類庫別名,其實就是調用`think\facade\Config`) ~~~ use Config; ~~~ 然后就可以使用下面的方法讀取某個配置參數的值: ~~~ echo Config::get('配置參數1'); ~~~ 如果你需要讀取某個一級配置的所有配置參數,可以使用 ~~~ Config::pull('app'); ~~~ 或者使用 ~~~ Config::get('app.'); ~~~ 讀取所有的配置參數: ~~~ dump(Config::get()); ~~~ 判斷是否存在某個設置參數: ~~~ Config::has('配置參數2'); ~~~ ## 助手函數 系統定義了一個助手函數`config`,以上可以簡化為: ~~~ echo config('配置參數1'); ~~~ `5.1`的配置參數全部采用二級配置的方式(默認一級配置為app),所以當你使用`config('name')`的時候其實相當于使用: ~~~ config('app.name') ~~~ 支持獲取多級配置參數值,直接使用(必須從一級開始寫) ~~~ config('app.name1.name2') ~~~ 獲取某個一級配置的所有參數可以使用 ~~~ config('app.'); ~~~ 讀取所有的配置參數: ~~~ dump(config()); ~~~ 或者你需要判斷是否存在某個設置參數: ~~~ config('?配置參數2'); ~~~ ## 動態設置(慎用) >[danger] `V5.1.18+`版本以上,不再建議使用動態配置,由于容器的特性,可能不會生效。 在控制器或者行為里面可以使用`set`方法或者助手函數動態設置參數(不過需要注意的是,動態設置生效的前提是該參數尚未被使用),格式: ~~~ Config::set('配置文件名.配置參數','配置值'); // 或者使用助手函數 config('配置文件名.配置參數','配置值'); ~~~ 動態設置的參數,最多支持二級,例如: ~~~ Config::set('app_trace', true); // 沒有指定配置文件名的話 等效于下面的方式 Config::set('app.app_trace', true); // 助手函數的方式 config('app_trace', true); ~~~ 也可以傳入數組批量設置,并在第二個參數傳入一級配置名,例如: ~~~ Config::set([ 'app_trace'=>true, 'show_error_msg'=>true ], 'app'); // 或者使用助手函數 config([ 'app_trace'=>true, 'show_error_msg'=>true ],'app'); ~~~ ## 系統配置文件 下面系統自帶的配置文件列表及其作用(配置文件可能同時存在應用配置文件和模塊配置文件兩個同名文件): 配置文件名|描述 ---|--- app.php|應用配置 cache.php|緩存配置 cookie.php|Cookie配置 database.php|數據庫配置 log.php|日志配置 session.php|Session配置 template.php|模板引擎配置 trace.php|頁面Trace配置 paginate.php|分頁配置 具體的配置參數可以直接查看應用`config`目錄下面的相關文件內容。 ## 使用`Yaconf`定義(`V5.1.22+`) 從`V5.1.22+`版本開始(并且要求`PHP7+`),可以支持使用`Yaconf`統一定義配置,但不支持動態設置。 `V5.1.23+`版本開始,可以使用`setYaconf`方法指定`Yaconf`使用的獨立配置文件,例如: ~~~ // 建議在應用的公共函數文件中進行設置 think\facade\Config::setYaconf('thinkphp'); ~~~ 設置后,你只需要在`thinkphp.ini`一個文件進行項目的配置,而無需分開多個文件,避免和其它項目沖突。 同時,你還可以在配置文件中,使用`yaconf`助手函數(用法類似`env`函數) ~~~ return [ 'config_name' => yaconf('config_name', 'default_value'), ]; ~~~ >[danger] `setYaconf`方法的設置對`yaconf`助手函數依然有效 > 關于`Yaconf`的安裝和配置用法可以[參考這里](http://www.laruence.com/2015/06/12/3051.html)。
                  <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>

                              哎呀哎呀视频在线观看