-2
私は2つのクラスを持っています:アカウントとデータベースIn複数のファイルに2つのクラスが含まれています。 1つのクラスと別のクラス
アカウントクラスはデータベースクラスを使用する必要がありますが、アカウントクラスにはたくさんのファイルが含まれています。
データベースクラスがインクルードされた後にデータベースクラスが存在しないかどうかを確認できます。しかし、これを行うための標準的な方法はありますか?
私は2つのクラスを持っています:アカウントとデータベースIn複数のファイルに2つのクラスが含まれています。 1つのクラスと別のクラス
アカウントクラスはデータベースクラスを使用する必要がありますが、アカウントクラスにはたくさんのファイルが含まれています。
データベースクラスがインクルードされた後にデータベースクラスが存在しないかどうかを確認できます。しかし、これを行うための標準的な方法はありますか?
あなたは親クラスでデータベースのインスタンスのみを使用して検討する必要があります。
require_once('Database'); // Try to move this part to autoloader
class Base {
private static $db;
public function db() {
if (empty(self::$db)) {
self::$db = new Database();
}
return self::$db;
}
}
class Account extends Base {
public function test() {
$this->db()->someMethodFromDatabase();
}
}
class User extends Base {
public function test() {
$this->db()->someMethodFromDatabase();
}
}
使用を[するrequire_once](http://php.net/require_once)してみてください
require
の多くを使用しますか、 [include_once](http://php.net/include_once)を使用して、Databaseクラスがまだ含まれていない場合にのみ含まれるようにします。 – rickdenhaanPHPでオートロードする方法とpsr-4でオートローディングする方法については、時間をかけて投資してください。一度セットアップすると、ファイルをもう含める必要はありません。 –
[要求、インクルードと要求の違いは\ _onceですか?](https://stackoverflow.com/questions/2418473/difference-between-require-include-and-require)の可能な複製-once) – yivi