だから私はPHPで成長し続けるシステムを持っており、データベース接続を処理する静的クラスがあります。
<?php
class Database {
// ... connection upon construction and ways of escaping the data
public function query($query) {
// performs query and returns the data.
}
}
class API { // Not actually called api, but for the purposes of this
private static $database = false;
public static function GetDatabase() {
if (static::$database === false) {
static::$database = new Database(connection information)
}
return static::$database;
}
}
?>
また、特定の機能セットを実行する「コントローラー」またはデータベース アダプターも多数あります。
<?php
class UserDBAdapter {
public function newUser($info) {
// validates and builds the query statements
API::GetDatabase()->query($query);
}
}
?>
したがって、本当の問題は、コード全体のあちこちで UserDBAdapter が必要だということです。いくつかの異なるファイルで、おそらく他のコントローラーで言ってください。変数として渡したくありません(すべてのメソッドにあると面倒になる可能性があります)。また、これらのオブジェクトを 2 つ作成したくありません (速度向上のため)。
$database オブジェクトで行うのと同じことを行うことができますか。呼び出されるまで初期化しません。これは効率的であり、スコープに関係なく、プロセス全体で再作成する必要はありません。少なくともそれが私がこのアイデアを始めた理由ですが、それが最良のアイデアかどうかはわかりません.
ありがとう