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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] # 讀取配置 `Phalcon\Config` 是一個組件,用于將各種格式的配置文件(使用適配器)轉換為PHP對象,以便在應用程序中使用。 可以從`Phalcon\Config`獲取值,如下所示: ```php <?php use Phalcon\Config; $config = new Config( [ 'test' => [ 'parent' => [ 'property' => 1, 'property2' => 'yeah', ], ], ] ); echo $config->get('test')->get('parent')->get('property'); // displays 1 echo $config->test->parent->property; // displays 1 echo $config->path('test.parent.property'); // displays 1 ``` ## 工廠 使用`adapter`選項加載Config Adapter類,如果未提供擴展名,則將其添加到`filePath`。 ```php <?php use Phalcon\Config\Factory; $options = [ 'filePath' => 'path/config', 'adapter' => 'php', ]; $config = Factory::load($options); ``` ## 原生數組 第一個示例顯示如何將本機數組轉換為`Phalcon\Config`對象。此選項提供最佳性能,因為在此請求期間不讀取任何文件。 ```php <?php use Phalcon\Config; $settings = [ 'database' => [ 'adapter' => 'Mysql', 'host' => 'localhost', 'username' => 'scott', 'password' => 'cheetah', 'dbname' => 'test_db' ], 'app' => [ 'controllersDir' => '../app/controllers/', 'modelsDir' => '../app/models/', 'viewsDir' => '../app/views/' ], 'mysetting' => 'the-value' ]; $config = new Config($settings); echo $config->app->controllersDir, "\n"; echo $config->database->username, "\n"; echo $config->mysetting, "\n"; ``` 如果您想更好地組織項目,可以將數組保存在另一個文件中,然后閱讀它。 ```php <?php use Phalcon\Config; require 'config/config.php'; $config = new Config($settings); ``` ## File 適配器 可用的適配器是: | 類 | 描述 | | -------------------------------- | ------------------------------------------------------------------------------------------------ | | `Phalcon\Config\Adapter\Ini` | 使用INI文件存儲設置。在內部,適配器使用PHP函數`parse_ini_file`。 | | `Phalcon\Config\Adapter\Json` | 使用JSON文件存儲設置。 | | `Phalcon\Config\Adapter\Php` | 使用PHP多維數組來存儲設置。此適配器提供最佳性能。 | | `Phalcon\Config\Adapter\Yaml` | 使用YAML文件存儲設置。 | ## 讀取 INI 文件 Ini文件是存儲設置的常用方法。`Phalcon\Config` 使用優化的PHP函數`parse_ini_file`來讀取這些文件。文件部分被解析為子設置以便于訪問。 ```ini [database] adapter = Mysql host = localhost username = scott password = cheetah dbname = test_db [phalcon] controllersDir = '../app/controllers/' modelsDir = '../app/models/' viewsDir = '../app/views/' [models] metadata.adapter = 'Memory' ``` 您可以按如下方式閱讀該文件: ```php <?php use Phalcon\Config\Adapter\Ini as ConfigIni; $config = new ConfigIni('path/config.ini'); echo $config->phalcon->controllersDir, "\n"; echo $config->database->username, "\n"; echo $config->models->metadata->adapter, "\n"; ``` ## 合并配置 `Phalcon\Config` 可以遞歸地將一個配置對象的屬性合并到另一個配置對象中。添加新屬性并更新現有屬性。 ```php <?php use Phalcon\Config; $config = new Config( [ 'database' => [ 'host' => 'localhost', 'dbname' => 'test_db', ], 'debug' => 1, ] ); $config2 = new Config( [ 'database' => [ 'dbname' => 'production_db', 'username' => 'scott', 'password' => 'secret', ], 'logging' => 1, ] ); $config->merge($config2); print_r($config); ``` 上面的代碼產生以下內容: ```bash Phalcon\Config Object ( [database] => Phalcon\Config Object ( [host] => localhost [dbname] => production_db [username] => scott [password] => secret ) [debug] => 1 [logging] => 1 ) ``` [Phalcon Incubator](https://github.com/phalcon/incubator)中有更多適用于此組件的適配器。 ## 嵌套配置 您可以使用`Phalcon\Config::path` 方法輕松訪問嵌套配置值。該方法允許獲得值,而不關心路徑的某些部分不存在的事實。我們來看一個例子: ```php <?php use Phalcon\Config; $config = new Config( [ 'phalcon' => [ 'baseuri' => '/phalcon/' ], 'models' => [ 'metadata' => 'memory' ], 'database' => [ 'adapter' => 'mysql', 'host' => 'localhost', 'username' => 'user', 'password' => 'passwd', 'name' => 'demo' ], 'test' => [ 'parent' => [ 'property' => 1, 'property2' => 'yeah' ], ], ] ); // 使用點作為分隔符 $config->path('test.parent.property2'); // yeah $config->path('database.host', null, '.'); // localhost $config->path('test.parent'); // Phalcon\Config // 使用斜杠作為分隔符。 還可以指定默認值,如果配置選項不存在,將返回默認值。 $config->path('test/parent/property3', 'no', '/'); // no Config::setPathDelimiter('/'); $config->path('test/parent/property2'); // yeah ``` 以下示例顯示如何創建有用的Facade以訪問嵌套配置值: ```php <?php use Phalcon\Di; use Phalcon\Config; /** * @return mixed|Config */ function config() { $args = func_get_args(); $config = Di::getDefault()->getShared(__FUNCTION__); if (empty($args)) { return $config; } return call_user_func_array([$config, 'path'], $args); } ``` ## 注入配置依賴性 您可以將配置注入控制器,允許我們在`Phalcon\Mvc\Controller`中使用`Phalcon\Config`。為此,您必須將其作為服務添加到Dependency Injector容器中。在引導程序文件中添加以下代碼: ```php <?php use Phalcon\Di\FactoryDefault; use Phalcon\Config; // Create a DI $di = new FactoryDefault(); $di->set( 'config', function () { $configData = require 'config/config.php'; return new Config($configData); } ); ``` 現在在您的控制器中,您可以使用名稱`config`使用依賴注入功能來訪問您的配置,如下面的代碼: ```php <?php use Phalcon\Mvc\Controller; class MyController extends Controller { private function getDatabaseName() { return $this->config->database->dbname; } } ```
                  <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>

                              哎呀哎呀视频在线观看