Страница 4 из 6

Re: вызов метода при изменении свойства объекта

Добавлено: Пт мар 15, 2019 1:28 pm
olehs
Ander писал(а):
Пт мар 15, 2019 1:26 pm
да это глюк импорта я с этим уже сталкивался, пришлите экспорт только class2

Re: вызов метода при изменении свойства объекта

Добавлено: Пт мар 15, 2019 1:30 pm
Ander
я понял почему у Вас работает, поставьте галочку Вызывать родительский метод: перед выполнением кода

Re: вызов метода при изменении свойства объекта

Добавлено: Пт мар 15, 2019 1:41 pm
olehs
понятно. почему так - не знаю. но если переопределить метод еще и в class2, то вызывается все по разу :o

Re: вызов метода при изменении свойства объекта

Добавлено: Пт мар 15, 2019 1:47 pm
Ander
угу, про этот костыль я в начале написал. Сергея бы подключить похоже в objects.class.php собака зарыта

Re: вызов метода при изменении свойства объекта

Добавлено: Сб июн 08, 2019 8:44 pm
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

Re: вызов метода при изменении свойства объекта

Добавлено: Сб июн 08, 2019 10:01 pm
xor
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
Вместо gg("ESP1.ip1") писать $this->getProperty ('ip1'), вместо setGlobal -- $this->setProperty('IP',$ip). Этим и хорош классовый метод.
Вызывать его можно и по изменению свойства в классе (когда уже есть все данные --ip1, ip2,...) , не знаю, применимо ли это в данном случае (

Отправлено с моего Redmi 4X через Tapatalk

Re: вызов метода при изменении свойства объекта

Добавлено: Вс июн 09, 2019 2:40 am
Ilfat
xor писал(а):
Сб июн 08, 2019 10:01 pm
Вопросов два:
1. Как мне подправить "ip_metod", чтобы он правил поле ESP1.ip и потом в последующих ESP2.ip и т.д.
2. В каком месте более правильным было бы выполнять этот метод? Я пока нашёл единственное место вызова, по изменению в MQTT

Но он там не вызывается, да и привязан только к свойствам ESP1
Вместо gg("ESP1.ip1") писать $this->getProperty ('ip1'), вместо setGlobal -- $this->setProperty('IP',$ip). Этим и хорош классовый метод.
Вызывать его можно и по изменению свойства в классе (когда уже есть все данные --ip1, ip2,...) , не знаю, применимо ли это в данном случае (
[/quote]

Подправил по пункту 1. Всё стало на много лучше.
А вот вызов метода как-то не срастается. Прописал вызов по изменению в mqtt - перестал вызываться.
Или я что-то делаю не так.
Вот как пытаюсь вызвать: https://c2n.me/41ZBS2D
Вот как выглядет метод: https://c2n.me/41ZBTTz

Re: вызов метода при изменении свойства объекта

Добавлено: Вс июн 09, 2019 7:21 pm
xor
Ilfat писал(а):
Вс июн 09, 2019 2:40 am

Подправил по пункту 1. Всё стало на много лучше.
А вот вызов метода как-то не срастается. Прописал вызов по изменению в mqtt - перестал вызываться.
Или я что-то делаю не так.
Вот как пытаюсь вызвать: https://c2n.me/41ZBS2D
Вот как выглядет метод: https://c2n.me/41ZBTTz
по поводу москита ничего не скажу - не пользуюсь.
но, в качестве эксперимента, можно попробовать отвязать вызов метода из москита и повесить его в классе на изменение свойства ип4

по поводу метода - второй скрин - галку После выполнения кода -- осознанно ставили? Дело в том, что в классовом методе корневом там обычно Никогда стоит

Re: вызов метода при изменении свойства объекта

Добавлено: Вс июн 09, 2019 9:26 pm
Ilfat
xor писал(а):
Вс июн 09, 2019 7:21 pm
по поводу москита ничего не скажу - не пользуюсь.
но, в качестве эксперимента, можно попробовать отвязать вызов метода из москита и повесить его в классе на изменение свойства ип4
Вообще-то мне не очень хотелось переменные ip1,ip2,ip3,ip4 вытаскивать в свойства класса, оставляя их на уровне свойств объекта. Но попробую.
Спасибо. Так стало намного лучше.
xor писал(а):
Вс июн 09, 2019 7:21 pm
по поводу метода - второй скрин - галку После выполнения кода -- осознанно ставили? Дело в том, что в классовом методе корневом там обычно Никогда стоит
Не осознанно. Точнее просто пробовал.

Re: вызов метода при изменении свойства объекта

Добавлено: Пн янв 27, 2020 11:41 pm
alexpzas
Всем привет, помогите плиз. Проблема в том, что на уровне класса в свойстве в поле - Запускать метод при изменении, выбрал нужный мне метод,(кстати свойство привязано к mqtt паблику), и теперь каждую секунду метод отрабатывает, хотя значение свойства не меняется. Я так понимаю это из за того , что каждую сек. обновляется состояние свойства, и хоть его значение не меняется, но МДМ понимает это по другому и вызывает метод. Как сделать так, чтобы метод вызывался только при смене значения свойства.