Ander писал(а): Пт мар 15, 2019 1:26 pm да это глюк импорта я с этим уже сталкивался, пришлите экспорт только class2
вызов метода при изменении свойства объекта
Модератор: immortal
Re: вызов метода при изменении свойства объекта
- Вложения
-
- class2.txt
- (311 байт) 598 скачиваний
Re: вызов метода при изменении свойства объекта
я понял почему у Вас работает, поставьте галочку Вызывать родительский метод: перед выполнением кода
Re: вызов метода при изменении свойства объекта
понятно. почему так - не знаю. но если переопределить метод еще и в class2, то вызывается все по разу 
Re: вызов метода при изменении свойства объекта
угу, про этот костыль я в начале написал. Сергея бы подключить похоже в objects.class.php собака зарыта
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
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
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
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
Re: вызов метода при изменении свойства объекта
Вообще-то мне не очень хотелось переменные ip1,ip2,ip3,ip4 вытаскивать в свойства класса, оставляя их на уровне свойств объекта. Но попробую.xor писал(а): Вс июн 09, 2019 7:21 pm по поводу москита ничего не скажу - не пользуюсь.
но, в качестве эксперимента, можно попробовать отвязать вызов метода из москита и повесить его в классе на изменение свойства ип4
Спасибо. Так стало намного лучше.
Не осознанно. Точнее просто пробовал.xor писал(а): Вс июн 09, 2019 7:21 pm по поводу метода - второй скрин - галку После выполнения кода -- осознанно ставили? Дело в том, что в классовом методе корневом там обычно Никогда стоит
Re: вызов метода при изменении свойства объекта
Всем привет, помогите плиз. Проблема в том, что на уровне класса в свойстве в поле - Запускать метод при изменении, выбрал нужный мне метод,(кстати свойство привязано к mqtt паблику), и теперь каждую секунду метод отрабатывает, хотя значение свойства не меняется. Я так понимаю это из за того , что каждую сек. обновляется состояние свойства, и хоть его значение не меняется, но МДМ понимает это по другому и вызывает метод. Как сделать так, чтобы метод вызывался только при смене значения свойства.