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

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

London
Сообщения: 26
Зарегистрирован: Чт фев 07, 2019 12:17 pm
Благодарил (а): 5 раз
Поблагодарили: 7 раз

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

Сообщение London » Ср фев 13, 2019 11:20 am

В общем, заметил, что не работает если majordomo стоит на VirtualHost, отличном от дефолтного.
т.е., у меня majordomo был доступен по md.local (прописанном на 192.168.0.100), а по 192.168.0.100 открывался совершенно другой сайт, так же находящийся на этом сервере.
Основная часть функция работала нормально, но вот некоторые вещи не хотели работать ни в какую. пришлось уносить majordomo на хост по-умолчанию, стало всё ок.. не очень удобно, но как пофиксить не нашёл..
Ander
Сообщения: 40
Зарегистрирован: Вс авг 27, 2017 9:20 pm
Благодарил (а): 5 раз
Поблагодарили: 0

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

Сообщение Ander » Пт мар 15, 2019 8:23 am

Столкнулся с интересной проблемой.
Сделать класс, например class0 в нем подкласс class1 в нем class2.
Если в class0 прописать метод, а в class1 его переписать, то в class2 метод вызывается 2 раза.
Помогает костыль - вставить пустой метод в class2, но это как то не интересно.
Какие еще есть решения?
olehs
Сообщения: 1113
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 333 раза

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

Сообщение olehs » Пт мар 15, 2019 10:09 am

В class2 два раза какой метод вызывается: из class1 или из class0 ?
Ander
Сообщения: 40
Зарегистрирован: Вс авг 27, 2017 9:20 pm
Благодарил (а): 5 раз
Поблагодарили: 0

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

Сообщение Ander » Пт мар 15, 2019 11:37 am

метод один и тот же, определен в class0, в class1 - дописан, а в class 2 не изменяется - выполняется 2 раза,
если в class2 дописать хотя бы пустой код - то все ОК
Последний раз редактировалось Ander Пт мар 15, 2019 12:02 pm, всего редактировалось 1 раз.
olehs
Сообщения: 1113
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 333 раза

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

Сообщение olehs » Пт мар 15, 2019 11:53 am

Либо что-то задвоилось (попробуйте пересоздать всю структуру заново), либо свойство дергается 2 раза.
А так без конкретики, не понять. Добавьте DebMes где только можно и выкладывайте скрины/логи настроек
Ander
Сообщения: 40
Зарегистрирован: Вс авг 27, 2017 9:20 pm
Благодарил (а): 5 раз
Поблагодарили: 0

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

Сообщение Ander » Пт мар 15, 2019 12:21 pm

class0 - myMethod - пустой
class1 myMethod добавил (debmes(test)
class2 myMethod - не изменен
при вызове из объекта class2 в debMessage пишет test 2 раза
Структуру проверил класс чистый: для эксперимента - 1 свойство, 1 метод
olehs
Сообщения: 1113
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 333 раза

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

Сообщение olehs » Пт мар 15, 2019 12:29 pm

во вложении сделал тестовый класс. при изменении свойства в логе одна запись.
Вложения
class0.txt
(1.02 КБ) 292 скачивания
Ander
Сообщения: 40
Зарегистрирован: Вс авг 27, 2017 9:20 pm
Благодарил (а): 5 раз
Поблагодарили: 0

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

Сообщение Ander » Пт мар 15, 2019 1:14 pm

Вы использовали только 1 дочерний класс class1? В этом случае действительно все правильно.
Попробуйте создать для class1 дочерний класс и вызвать changed из него
olehs
Сообщения: 1113
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 333 раза

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

Сообщение olehs » Пт мар 15, 2019 1:21 pm

Это глюк экспорта или импорта, я хз.
У меня там есть еще class2, дочерний от class1
1.png
1.png (71.76 КБ) 1121 просмотр
Ander
Сообщения: 40
Зарегистрирован: Вс авг 27, 2017 9:20 pm
Благодарил (а): 5 раз
Поблагодарили: 0

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

Сообщение Ander » Пт мар 15, 2019 1:26 pm

да это глюк импорта я с этим уже сталкивался, пришлите экспорт только class2
Ответить