вызов метода при изменении свойства объекта
Модератор: immortal
Re: вызов метода при изменении свойства объекта
я понял почему у Вас работает, поставьте галочку Вызывать родительский метод: перед выполнением кода
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: вызов метода при изменении свойства объекта
понятно. почему так - не знаю. но если переопределить метод еще и в class2, то вызывается все по разу
- Рейтинг: 1.16%
Re: вызов метода при изменении свойства объекта
угу, про этот костыль я в начале написал. Сергея бы подключить похоже в objects.class.php собака зарыта
-
- Сообщения: 44
- Зарегистрирован: Пт июн 07, 2019 7:40 pm
- Благодарил (а): 3 раза
- Поблагодарили: 1 раз
Re: вызов метода при изменении свойства объекта
Доброго дня!
Направьте пожалуйста на путь истинный.
Имею класс "ESP_Mega"
У него есть свойство "ip"
и есть метод "ip_metod" (пока в таком виде):
--------------------------------------
$ip1 = gg("ESP1.ip1");
say("1й октет: ".gg("ESP1.ip1"));
$ip2 = gg("ESP1.ip2");
$ip3 = gg("ESP1.ip3");
$ip4 = gg("ESP1.ip4");
$ip = $ip1.".".$ip2.".".$ip3.".".$ip4;
sg("ESP1.IP",$ip);
--------------------------------------
У этого класса есть объект "ESP1" со свойствами:
ESP1.ip - унаследованный от класса
ESP1.ip1 ESP1.ip2 ESP1.ip3 ESP1.ip4 - октеты IP-адреса, полученного по MQTT
В последующем появятся ESP2, ESP3 и т.д.
Вопросов два:
1. Как мне подправить "ip_metod", чтобы он правил поле ESP1.ip и потом в последующих ESP2.ip и т.д.
2. В каком месте более правильным было бы выполнять этот метод? Я пока нашёл единственное место вызова, по изменению в MQTT
Но он там не вызывается, да и привязан только к свойствам ESP1
Направьте пожалуйста на путь истинный.
Имею класс "ESP_Mega"
У него есть свойство "ip"
и есть метод "ip_metod" (пока в таком виде):
--------------------------------------
$ip1 = gg("ESP1.ip1");
say("1й октет: ".gg("ESP1.ip1"));
$ip2 = gg("ESP1.ip2");
$ip3 = gg("ESP1.ip3");
$ip4 = gg("ESP1.ip4");
$ip = $ip1.".".$ip2.".".$ip3.".".$ip4;
sg("ESP1.IP",$ip);
--------------------------------------
У этого класса есть объект "ESP1" со свойствами:
ESP1.ip - унаследованный от класса
ESP1.ip1 ESP1.ip2 ESP1.ip3 ESP1.ip4 - октеты IP-адреса, полученного по MQTT
В последующем появятся ESP2, ESP3 и т.д.
Вопросов два:
1. Как мне подправить "ip_metod", чтобы он правил поле ESP1.ip и потом в последующих ESP2.ip и т.д.
2. В каком месте более правильным было бы выполнять этот метод? Я пока нашёл единственное место вызова, по изменению в MQTT
Но он там не вызывается, да и привязан только к свойствам ESP1
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: вызов метода при изменении свойства объекта
Вместо gg("ESP1.ip1") писать $this->getProperty ('ip1'), вместо setGlobal -- $this->setProperty('IP',$ip). Этим и хорош классовый метод.Ilfat писал(а):Доброго дня!
Направьте пожалуйста на путь истинный.
Имею класс "ESP_Mega"
У него есть свойство "ip"
и есть метод "ip_metod" (пока в таком виде):
--------------------------------------
$ip1 = gg("ESP1.ip1");
say("1й октет: ".gg("ESP1.ip1"));
$ip2 = gg("ESP1.ip2");
$ip3 = gg("ESP1.ip3");
$ip4 = gg("ESP1.ip4");
$ip = $ip1.".".$ip2.".".$ip3.".".$ip4;
sg("ESP1.IP",$ip);
--------------------------------------
У этого класса есть объект "ESP1" со свойствами:
ESP1.ip - унаследованный от класса
ESP1.ip1 ESP1.ip2 ESP1.ip3 ESP1.ip4 - октеты IP-адреса, полученного по MQTT
В последующем появятся ESP2, ESP3 и т.д.
Вопросов два:
1. Как мне подправить "ip_metod", чтобы он правил поле ESP1.ip и потом в последующих ESP2.ip и т.д.
2. В каком месте более правильным было бы выполнять этот метод? Я пока нашёл единственное место вызова, по изменению в MQTT
Но он там не вызывается, да и привязан только к свойствам ESP1
Вызывать его можно и по изменению свойства в классе (когда уже есть все данные --ip1, ip2,...) , не знаю, применимо ли это в данном случае (
Отправлено с моего Redmi 4X через Tapatalk
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 44
- Зарегистрирован: Пт июн 07, 2019 7:40 pm
- Благодарил (а): 3 раза
- Поблагодарили: 1 раз
Re: вызов метода при изменении свойства объекта
Вместо gg("ESP1.ip1") писать $this->getProperty ('ip1'), вместо setGlobal -- $this->setProperty('IP',$ip). Этим и хорош классовый метод.xor писал(а): ↑Сб июн 08, 2019 10:01 pmВопросов два:
1. Как мне подправить "ip_metod", чтобы он правил поле ESP1.ip и потом в последующих ESP2.ip и т.д.
2. В каком месте более правильным было бы выполнять этот метод? Я пока нашёл единственное место вызова, по изменению в MQTT
Но он там не вызывается, да и привязан только к свойствам ESP1
Вызывать его можно и по изменению свойства в классе (когда уже есть все данные --ip1, ip2,...) , не знаю, применимо ли это в данном случае (
[/quote]
Подправил по пункту 1. Всё стало на много лучше.
А вот вызов метода как-то не срастается. Прописал вызов по изменению в mqtt - перестал вызываться.
Или я что-то делаю не так.
Вот как пытаюсь вызвать: https://c2n.me/41ZBS2D
Вот как выглядет метод: https://c2n.me/41ZBTTz
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: вызов метода при изменении свойства объекта
по поводу москита ничего не скажу - не пользуюсь.Ilfat писал(а): ↑Вс июн 09, 2019 2:40 am
Подправил по пункту 1. Всё стало на много лучше.
А вот вызов метода как-то не срастается. Прописал вызов по изменению в mqtt - перестал вызываться.
Или я что-то делаю не так.
Вот как пытаюсь вызвать: https://c2n.me/41ZBS2D
Вот как выглядет метод: https://c2n.me/41ZBTTz
но, в качестве эксперимента, можно попробовать отвязать вызов метода из москита и повесить его в классе на изменение свойства ип4
по поводу метода - второй скрин - галку После выполнения кода -- осознанно ставили? Дело в том, что в классовом методе корневом там обычно Никогда стоит
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 44
- Зарегистрирован: Пт июн 07, 2019 7:40 pm
- Благодарил (а): 3 раза
- Поблагодарили: 1 раз
Re: вызов метода при изменении свойства объекта
Вообще-то мне не очень хотелось переменные ip1,ip2,ip3,ip4 вытаскивать в свойства класса, оставляя их на уровне свойств объекта. Но попробую.
Спасибо. Так стало намного лучше.
Не осознанно. Точнее просто пробовал.
-
- Сообщения: 25
- Зарегистрирован: Пн авг 19, 2013 4:17 pm
- Благодарил (а): 1 раз
- Поблагодарили: 0
Re: вызов метода при изменении свойства объекта
Всем привет, помогите плиз. Проблема в том, что на уровне класса в свойстве в поле - Запускать метод при изменении, выбрал нужный мне метод,(кстати свойство привязано к mqtt паблику), и теперь каждую секунду метод отрабатывает, хотя значение свойства не меняется. Я так понимаю это из за того , что каждую сек. обновляется состояние свойства, и хоть его значение не меняется, но МДМ понимает это по другому и вызывает метод. Как сделать так, чтобы метод вызывался только при смене значения свойства.