私はPHPのOOPへの移行に取り組んでいます。私はphp.netで説明を読んでいますが、ここでいくつかの具体的な答えが得られることを望んでいました。
質問を説明するために、次の例を作成しようとしました。「Database」、「Products」、および「Users」クラスがあり、ユーザーがアクセスできる場合に製品を表示したいとします。
そこで、「Products」クラスを「showProducts()」関数と呼びます。これにより、「User」クラスのインスタンスが作成され、「Database」オブジェクトのインスタンスが作成され、ユーザーのアクセスレベルがチェックされます。
ユーザーがアクセス権を持っている場合、「showProducts()」関数は「Database」オブジェクトの別のインスタンスを作成し、データベースにクエリを実行します。
class Database{
public function query(){
//runs query here
}
public function __construct() {
//sets up connection here
}
}
class User{
public function checkAccess(){
$db = new Database();
$db->query( //pass in query to check access )
//does stuff, then returns true or false
}
}
class Products{
public function showProducts(){
$user = new User();
if($user->checkAccess())
$db = new Database();
$db->query( //pass in query to get products )
}
}
私は誰かがこれを適切な方法で行う方法を説明できることを望んでいました。
「Database」オブジェクトの複数のインスタンスを作成しなくても、アクセスする必要のあるすべてのクラスで使用できる1つの「Database」オブジェクトを作成するある種のコントローラークラスが必要です。usersクラスでも同じことをしたいので、「User」クラスで何かを使用する必要があるたびに新しいオブジェクトを作成しなくても、すべてのクラスがアクセスできる1つの$usersオブジェクトがあります。
ご不明な点がございましたら、お詫び申し上げますとともに、ご回答ありがとうございました!!
返信ありがとうございます!