Доброго времени суток! В общем разбираюсь сейчас с ООП и работаю с php. Вчера задавал вопрос, как же правильно организовать вызов метода другого класса, не создавая его экземпляра. Мне посоветовали прочитать про SOLID. Я все изучил, и переписал весь код с следованием "заповедей" SOLID. В итоге у меня получилось два класса, которые требуют друг друга, для создания их экземпляров, т.е.
class lkMoney
{
public $db_array_user = array(); // Массив, содержащий строку из базы с текущим пользователем
private $db; // Объект базы данных, с которой работаем
private $bans; // Класс для проверки бана пользователя
private $user; // Класс для получения текущего пользователя
private $table_name; // Таблица, в которой будет хранится информация о счете пользователя
public function __construct(wpdb $db, lkBans $bans, lkUser $user, $table)
{
$this->db = $db;
$this->bans = $bans;
$this->user = $user;
$this->table_name = $table;
if (!$this->getUserInfo()) throw new Exception('Невозможно подключиться к таблице ' . $this->table_name);
}
...
class lkBans
{
private $db;
private $money;
public function __construct(wpdb $db, lkMoney $money)
{
$this->db = $db;
$this->money = $money;
}
...
И в самом коде я их создаю
global $wpdb;
$lkUser = new lkUser($wpdb);
$lkStatus = new lkStatus($wpdb, $lkUser);
$lkMoney = new lkMoney($wpdb, $lkBans, $lkUser, 'iconomy');
$lkBans = new lkBans($wpdb, $lkMoney);
$lkShop = new lkShop($wpdb, $lkMoney, $lkStatus);
И вот собственно возникает вопрос, а правильно ли я все понял и делаю? Заранее прошу извинить, если вопрос глупый, я просто только разбираюсь в теме. Нагуглить ничего толкого на этот счет не смог, и знакомых, которые могут что-то посоветовать нет, поэтому вновь вынужден написать вопрос сюда. Заранее спасибо за ваши ответы!