私はこのレベルのPHPプログラミングに不慣れで、シングルトンクラスと静的クラスに関する投稿を読んでいます。DB接続を容易にするクラスを作成中です。
Jon Raphaelson(ここ)による次のコードに出くわしました:
class ConnectionFactory
{
private static $factory;
public static function getFactory()
{
if (!self::$factory)
self::$factory = new ConnectionFactory(...);
return self::$factory;
}
private $db;
public function getConnection() {
if (!$this->db) // this line was modified due to comment
$this->db = new PDO(...); // this line was modified due to comment
return $db;
}
}
function getSomething()
{
$conn = ConnectionFactory::getFactory()->getConnection();
.
.
.
}
探していたものが見つかったようですが、いくつか質問があります。
self::$factory = new ConnectionFactory(...);
-このクラスにコンストラクターがありません。このコンストラクターを作成して、dbの詳細('dbname'、'user'、'pass'など)を渡すだけですか?- この
getSomething()
関数は、データを取得するすべての実際の関数をConnectionFactoryクラス内に配置することを目的としていると想定しています。これが、この関数がこのクラスに含まれる理由です。そうでなければ、この関数が別のクラス内にあることを期待していました。[編集]この質問をスキップしてください。角かっこが1つ表示されませんでした。 - 2人のユーザーがサイトにログインしてDB接続を要求している場合(両方が更新などを行っている場合)はどうなりますか?これがシングルトンであることが問題になりますか?
ありがとう!