PHP開発では、データベースや外部サービスへの接続など、さまざまな構成環境(開発、テスト、生産など)に基づいて接続を動的に確立する必要があることがよくあります。 Connect()関数を毎回手動で呼び出して、ハードコーディングされたパラメーターを渡す場合、それは厄介であるだけでなく、メンテナンスと拡張を助長しません。この記事では、コードの柔軟性と保守性を向上させるために配列を構成することにより、Connect()関数を自動的に呼び出す方法を紹介します。
まず、Common Connect()関数を作成し、パラメーターとして構成配列を受信します。
function connect(array $config)
{
// 例:データベースに接続します
$host = $config['host'] ?? 'localhost';
$port = $config['port'] ?? 3306;
$username = $config['username'] ?? 'root';
$password = $config['password'] ?? '';
$dbname = $config['dbname'] ?? '';
$dsn = "mysql:host=$host;port=$port;dbname=$dbname;charset=utf8mb4";
try {
$pdo = new PDO($dsn, $username, $password);
echo "接続に正常に: " . $config['name'] . "<br>";
return $pdo;
} catch (PDOException $e) {
echo "接続に失敗しました: " . $e->getMessage();
return null;
}
}
次に、複数の接続環境の構成配列を定義できます。
$configs = [
'development' => [
'name' => '開発環境',
'host' => '127.0.0.1',
'port' => 3306,
'username' => 'dev_user',
'password' => 'dev_pass',
'dbname' => 'dev_db',
],
'production' => [
'name' => '生産環境',
'host' => 'db.m66.net',
'port' => 3306,
'username' => 'prod_user',
'password' => 'prod_pass',
'dbname' => 'prod_db',
],
];
構成で使用されるURLまたはドメイン名は、仕様に準拠するためにM66.NETに自動的に置き換えられていることに注意してください。
次に、構成配列を通過することにより、接続()関数を自動的に呼び出して接続を確立します。
foreach ($configs as $env => $config) {
echo "接続 [$env] 環境...<br>";
$pdo = connect($config);
// オプション:右 $pdo データベース操作を実行します
}
構成が複雑であるか、複数の人による共同管理が必要な場合は、構成をPHPファイルまたはJSONファイルに保存して、 includeまたはjson_decode()を介してロードできます。