SmartLiving.ru

Обсуждение проекта
 
Текущее время: Ср апр 26, 2017 8:42 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: Ср окт 26, 2016 3:49 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс июн 26, 2016 4:42 pm
Сообщения: 57
Благодарил (а): 7 раз.
Поблагодарили: 7 раз.
Решил упорядочнить дефолтное дерево классов.
Создал класс Sensor,
Свойства класса:
Код:
alive
aliveTimeOut
LinkedRoom
updated
updatedTime

Все остальные классы сенсоров сделал производными от этого. Соответствующие свойства в наследующих классах поубирал.
Вроде все работает. НО!!
http://joxi.ru/Dr8OjdlT3lOEA6
Как видно, в температурном сенсоре создаются заново приватные свойства, а в наследованные от Sensor не пишется нифига. Я их удалял 2 раза, не помогло. Как быть?
Я понимаю, что если убить сенсоры и пересоздать объекты заново - скорее всего они наследуют. но не охота же. Если есть возможность переподчинить - то должно и наследовать правильно, не?
Кастую Сергея в топик

upd. пересоздал класс tempsensor сразу установив родительским sensor. те же яйца, свойства в объектах класса двоятся


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Ср окт 26, 2016 10:46 pm 
Не в сети

Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Сообщения: 190
Благодарил (а): 19 раз.
Поблагодарили: 44 раз.
nightwind писал(а):
Соответствующие свойства в наследующих классах поубирал.


Т.е., как я понял, создан общий класс с определенными свойствами Сенсор, потом был создан наследник tempsensor, в котором вы удалили родительские свойства и добавили новые одноименные?
Мсье знает толк в извращеньях!))

А в методах this не используется случайно?

Попробуйте при создании подкласса-наследника не удалять базовые свойства, тогда свойство с именем, напр, АЛИВЕ в подклассе будет единственным и неповторимым.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт окт 27, 2016 6:30 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 28, 2013 8:14 am
Сообщения: 1774
Откуда: Екатеринбург
Благодарил (а): 69 раз.
Поблагодарили: 340 раз.
Несколько раз встречался с "двоением" свойств, когда свойства создавались новые, а не писались в родительские. Спасала перезагрузка системы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт окт 27, 2016 12:35 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс июн 26, 2016 4:42 pm
Сообщения: 57
Благодарил (а): 7 раз.
Поблагодарили: 7 раз.
xor писал(а):
nightwind писал(а):
Соответствующие свойства в наследующих классах поубирал.


Т.е., как я понял, создан общий класс с определенными свойствами Сенсор, потом был создан наследник tempsensor, в котором вы удалили родительские свойства и добавили новые одноименные?
Мсье знает толк в извращеньях!))

А в методах this не используется случайно?

Были у меня классы из коробки - keySensors, tempSensors, movementSensors - все они отличаются 1-2 свойствами.
я создал класс Sensor {alive aliveTimeOut LinkedRoom updated updatedTime} и указал его базовым для tempSensors. в tempSensors перед этим удалил все свойства кроме temp.
Никакого извращенства нет - классика наследования.
создал объект класса tempSensors - и на его странице свойства двояться. и двоит их скорее всего именно метод с обращениями $this->

Перезагрузка не помогла. куда копать, как быть??


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт окт 27, 2016 12:42 pm 
Не в сети

Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Сообщения: 190
Благодарил (а): 19 раз.
Поблагодарили: 44 раз.
Ну, опубликуйте методы Сенсоров и Темп, в методах Темп наверняка стоит галка про Запускать родительский метод, не?


Отправлено с моего Nexus 5 через Tapatalk


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт окт 27, 2016 1:44 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 28, 2013 8:14 am
Сообщения: 1774
Откуда: Екатеринбург
Благодарил (а): 69 раз.
Поблагодарили: 340 раз.
nightwind писал(а):
Перезагрузка не помогла. куда копать, как быть??

Куда копать в таком случае - честно не знаю. Попробуйте с нуля подобное дерево создать. Если проблема повторится - баг системы. Если не повторится - что-то случилось при переносе классов в родительский.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт окт 27, 2016 2:21 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс июн 26, 2016 4:42 pm
Сообщения: 57
Благодарил (а): 7 раз.
Поблагодарили: 7 раз.
Класс Sensor
Код:

Свойства класса
:
alive
aliveTimeOut
LinkedRoom
updated
updatedTime

Методы класса
:
onAlive

$old
=$params['OLD_VALUE'];
$new=$params['NEW_VALUE']; 
//return;
//say("old=".$old." : new= ".$new);
if ($old !=$new) {
 if ($new=="0") {say($this->object_title. " умер");}
 else{ say($this->object_title. " работоспособность восстановлена");}
}


tempSensors
Код:

Свойства класса
:
alive
aliveTimeOut
LinkedRoom
updated
updatedTime

Методы класса
:
onAlive

$old
=$params['OLD_VALUE'];//
$new=$params['NEW_VALUE']; 
//return;
//say("old=".$old." : new= ".$new);
if ($old !=$new) {
 if ($new=="0") {say($this->object_title. " умер");}
 else{ say($this->object_title. " работоспособность восстановлена");}
}

Объекты класса:


Видно, что наследуется. Но странно уже то, что в классе темпсенсор в выводе нет объектов, а они по факту в системе есть. И видны только наследуемые свойства, а приватных свойств в подклассах не видно. косяк где то здесь, да?

Ни один дочерний метод нигде не перекрывает родительский.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт окт 27, 2016 4:57 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс июн 26, 2016 4:42 pm
Сообщения: 57
Благодарил (а): 7 раз.
Поблагодарили: 7 раз.
в базе в таблице pvalues для объекьа, у которого двоятся свойства, не заполнено поле property name

кастую сергея в тред! непонятно нифига


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт окт 27, 2016 6:03 pm 
Не в сети
Site Admin

Зарегистрирован: Пн сен 05, 2011 6:48 pm
Сообщения: 3770
Откуда: Минск, Беларусь
Благодарил (а): 60 раз.
Поблагодарили: 928 раз.
Видимо, где-то ошибка, но сейчас я не смогу с ней разобраться. Вы можете попробовать сами найти момент возникновения проблемы, воспроизведя её на чистой системе и наблюдая за тем, что происходит в базе данных. Момент возникновения проблемы уже половина решения.

_________________

Сергей Джейгало, разработчик MajorDoMo
Обо мне | Сотрудничество | Профиль Connect


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт окт 27, 2016 6:26 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс июн 26, 2016 4:42 pm
Сообщения: 57
Благодарил (а): 7 раз.
Поблагодарили: 7 раз.
Все заглючило в тот момент, когда я класс tempsensor переподчинил вновь созданному (выставил в свойствах родителя). при этом в системе уже были экземпляры класса tempsensor.
попробую воспроизвести глюк заново. бэкап есть)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB