PHP定数
PHP定数は、サイト全体で変わることのない固定値を保持するためのもので、環境変数とも呼ばれます。PHP定数は自動的にグローバルスコープとなるため、複数の場所から参照する必要がある値を定義するのに適しています。
BedrockやTrellisのような非標準的なWordPressのセットアップを使用している場合、DB_PASSWORD変数を検出することができないため、以下の状況でデータベースのパスワードを更新することができません。
- 既存環境の複製によるサイトの追加
- 既存環境の複製によるステージング環境の追加
- 本番環境へのステージング環境の反映
- バックアップの復元
- MyKinstaのデータベースパスワードの変更
これを解決するには、データベースパスワードを保存するためにPHP定数SERVER_SECRET_DB_PASSWORDを使用することができます。config.phpファイル内でこの定数を定義すると、サイトのデータベースパスワードを識別するためにこの定数が使用されます。
define('DB_PASSWORD', defined('SERVER_SECRET_DB_PASSWORD') ? SERVER_SECRET_DB : 'asdijfhkjasdbfkjhbajiksd' );弊社サーバーで使用する以下のPHP定数を定義することができます。
SERVER_SECRET_DB_USERSERVER_SECRET_DB_PASSWORDSERVER_SECRET_DB_HOSTSERVER_SECRET_DB_NAME
例えば、config.phpファイルで以下のように定数を定義することができます。
define('DB_NAME', defined('SERVER_SECRET_DB_NAME') ? SERVER_SECRET_DB_NAME : 'newsitetest');
define('DB_USER', defined('SERVER_SECRET_DB_USER') ? SERVER_SECRET_DB_USER : 'newsitetest');
define('DB_PASSWORD', defined('SERVER_SECRET_DB_PASSWORD') ? SERVER_SECRET_DB : 'asdijfhkjasdbfkjhbajiksd' );
define('DB_HOST', defined('SERVER_SECRET_DB_HOST') ? SERVER_SECRET_DB_HOST : 'localhost');あるいは、以下のように定義することも可能です。
define('DB_NAME',SERVER_SECRET_DB_NAME);
define('DB_USER',SERVER_SECRET_DB_USER);
define('DB_PASSWORD',SERVER_SECRET_DB_PASSWORD);
define('DB_HOST',SERVER_SECRET_DB_HOST);WP_ENVIRONMENT_TYPE
弊社プラットフォームでは、各環境に対してWP_ENVIRONMENT_TYPE環境変数が自動的に設定されます。これにより、WordPress本体や、この環境変数を参照するプラグインやテーマは、現在の環境が本番環境、ステージング環境、または開発環境のいずれであるかを判別できます。
| 環境 | 値 |
|---|---|
| 本番 | production |
| ステージング | staging |
| 開発 | development |
PHPでは、WordPressのヘルパー関数を使用して値を取得できます。
php$environment = wp_get_environment_type();
// Returns 'production', 'staging', or 'development'この値を利用すると、デバッグツールを条件付きで読み込んだり、特定のプラグインを無効化したり、環境ごとに動作を切り替えたりできます。こうした制御を、環境名をコードに直接書き込むことなく実装できます。