yii 2設定ファイルの見方

デバッグ済みで便利な構成ファイル接続スキーム( / configフォルダー)を共有することにしました。これは、yii 2 basicのすべてのプロジェクトで使用します。

エッセンス


現在のプロジェクトの1つの/ configフォルダーを例として使用して、アイデアを示したいと思います。

ファイル構造からわかるように、設定はローカル設定と環境設定に分かれています。 環境はバトルサーバーであるため、環境設定は通常、バトルサーバーの設定として機能します。開発者はバトルサーバーに接続し、サイトを表示するなどの責任を負います。

説明


設定の接続は、ファイル/web/index.phpで始まります。このファイルでは、必要な構成が接続され、1つにマージされます。

<?php // defined('YII_DEBUG') or define('YII_DEBUG', true); // defined('YII_ENV') or define('YII_ENV', 'dev'); require(__DIR__ . '/../vendor/autoload.php'); require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); require __DIR__ . '/../config/bootstrap.php'; //    $config = \yii\helpers\ArrayHelper::merge( require __DIR__ . '/../config/defaults.php', //      require __DIR__ . '/../config/web.php' //      ); (new yii\web\Application($config))->run(); 

ファイル/config/bootstrap.phpは、「事前起動」環境設定を担当します。
 <?php //    $path_local = __DIR__ . '/bootstrap.local.php'; if(file_exists($path_local)) { require $path_local; } 

コードセクションからわかるように、通常、ファイルには有用な情報はありませんが、ローカルファイルのチェックと接続を担当するコードが含まれています。 このアプローチにより、これらのファイルの存在を心配する必要がなくなります。

ファイル/config/bootstrap.local.phpは、ローカルサーバーの「事前起動」設定を担当します。

 <?php error_reporting(E_ALL); ini_set('display_errors', 1); 

/config/defaults.phpファイルデフォルトの環境設定を担当し、通常はデータベース接続設定とその他のグローバルアプリケーション設定を含みます(明確にするために一部の設定はファイルから削除されました)。

 <?php $defaults = [ 'basePath' => dirname(__DIR__), 'timeZone' => 'UTC', 'components' => [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=webulla', 'username' => 'webulla', 'password' => 'password', 'charset' => 'utf8', 'tablePrefix' => '', 'enableSchemaCache' => true, 'enableQueryCache' => true, ], ], ]; //    $path_local = __DIR__ . '/defaults.local.php'; if(file_exists($path_local)) { $defaults = \yii\helpers\ArrayHelper::merge($defaults, require $path_local); } return $defaults; 

/config/defaults.local.phpファイル 、ローカルサーバーのデフォルト設定を担当し、データベース接続設定をオーバーライドします。

 <?php return [ 'components' => [ 'db' => [ 'dsn' => 'mysql:host=localhost;dbname=webulla', 'username' => 'root', 'password' => '', ] ], ]; 

/config/defaults.phpおよび/config/defaults.local.phpファイルの例を使用して、コンソールおよびWeb環境の構成ファイルが構成されます。

ファイル/config/.gitignoreは 、ローカル設定がサーバーにこぼれないように回答します。

 # ignore local configs *.local.php 

おわりに


このアプローチにより、ローカルサーバーおよびバトルサーバーの設定を簡単かつ迅速に編集できます。 gitリポジトリを使用すると、作業がさらに簡単になります。サーバーへのローカル設定の一部について心配する必要はありません。

Source: https://habr.com/ru/post/J264969/


All Articles