Я создаю PHP OOP MVC Framework для личного использования.Как получить доступ к другим методам классов в классе (PHP)
Я хотел бы знать, если есть способ или правильное выполнение следующих функций:
Будучи в состоянии вызвать метод из «подкласса» (не расширенный) к другому «подкласс». Я имею в виду ... У меня есть класс, который создает новые объекты для каждого подкласса вместо использования наследования. Давайте назовем это MainClass, и имеет 3 "подклассы", как этот
class MainClass {
public $db;
public $forms;
public $pagination;
function __construct() {
$this->db = new class_db();
$this->forms = new class_forms();
$this->utils = new class_utils();
}
}
И инициализацию, которая
$MainClass = new MainClass();
я могу сделать, например
$MainClass->utils->show_text("Hello World");
И работает отлично.
Что бы я хотел сделать ... внутри $ MainClass-> utils-> test() (Другой метод тестирования), должен иметь доступ к $ MainClass-> db без использования глобальных или $ GLOBALS ,
Есть ли альтернативный способ достижения этого? Чтобы иметь доступ к методам и методам MainClass в другом подтеме (доступ к db из utils и с главной страницы, где MainClass инициализирован)? Как это будет? Я хочу иметь доступ ко всем подтекстам, например utils, которые могут обращаться к методу db и forms. а также страницы, которые находятся за пределами MainClass.
Спасибо
Добавить «Dependency Injection» для вашего поиска существующих ответов на некоторые идеи возможно. – ficuscr
Внесите свой экземпляр MainClass в vfw_constructor, используя '$ this-> utils = new vfw_utils ($ this);' когда вы его создаете .... измените конструктор vfw_utils, чтобы установить этот аргумент как свойство, et voilà –