Использование методов со своими свойствами, внутри методов других классов со своими свойствами?
Если сообщение является "командой" - создаю новый объект Command (у него одно свойство - String command). Запускаю метод DefineCommand (определяет какая команда). Взависимости от команды,
запускаю метод. Например /start = CommandStart или /games = CommandGames.
В этих методах, должны вызыватся методы других объектов.
Например, метод SendMessage, который находится в объекте Bot, метод принимает chat_id.
В общем, чтобы отправить сообщение внутри метода StartCommand, нужно в объект "Command" или в метод StartCommand, запихивать параметры: Object bot, chat_id.
Не является ли это не правильным решением? Видь Command и Bot разные вещи.
Как поступить?
Дополнительно:
Вы затрудняетесь в выборе между шаблонами 'внедрение зависимостей' и 'инверсия зависимостей'. Тут нет однозначно верного решения, поскольку для этого нужно знать каким образом будет (и будет ли) расширяться поведение ваших классов в будущем.
Исходя из описанного, я думаю, что оба способа будут иметь одинаковый результат. А в будущем вы легко сможете изменить выбранную архитектуру, если возникнет такая необходимость.
То есть, речь о том, что проблемы можно решать по мере их поступления.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для использования методов с их свойствами внутри других классов с их собственными свойствами в PHP можно применить следующий подход.
Для начала определим два класса: ClassA и ClassB. Класс ClassA будет содержать метод getA(), который возвращает значение своего свойства $a. Класс ClassB будет содержать метод, который использует метод getA() класса ClassA и выводит значение своего свойства $b.
Пример кода:
class ClassA {private $a = 10;
public function getA() {
return $this->a;
}
}
class ClassB {
private $b = 20;
private $classA;
public function __construct(ClassA $classA) {
$this->classA = $classA;
}
public function printValues() {
$aValue = $this->classA->getA();
echo "Value of a: " . $aValue . "