Как запросить все объеты класса?

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Ответить
fynto
Сообщения: 14
Зарегистрирован: Чт май 14, 2015 4:29 pm
Благодарил (а): 23 раза
Поблагодарили: 6 раз

Как запросить все объеты класса?

Сообщение fynto » Ср дек 09, 2020 10:48 am

Добрый день!

У меня есть класс Task в нем есть объекты, LightTask , LightTask2, LightTask3 и тд. У класса есть два свойства StartTime и EndTime, а также два метода обрабатывающие задание startTask и stopTask. Для срабатывания в onNewMinute помещен код для каждого задания вида:

Код: Выделить всё

if (getGlobal('LightTask.status')){
 if (timeIs(getGlobal('LightTask.startTime'))) {
  callMethod('LightTask.startTask');
 }
 if (timeIs(getGlobal('LightTask.stopTime'))) {
  callMethod('LightTask.stopTask');
 }
}
Подскажите, пожалуйста, как получить список всех объектов из класса Task, чтобы изменить код и не дублировать его для каждого объекта Task
Ubuntu 16.04.
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: Как запросить все объеты класса?

Сообщение tarasfrompir » Ср дек 09, 2020 11:31 am

fynto писал(а):
Ср дек 09, 2020 10:48 am
Добрый день!

У меня есть класс Task в нем есть объекты, LightTask , LightTask2, LightTask3 и тд. У класса есть два свойства StartTime и EndTime, а также два метода обрабатывающие задание startTask и stopTask. Для срабатывания в onNewMinute помещен код для каждого задания вида:

Код: Выделить всё

if (getGlobal('LightTask.status')){
 if (timeIs(getGlobal('LightTask.startTime'))) {
  callMethod('LightTask.startTask');
 }
 if (timeIs(getGlobal('LightTask.stopTime'))) {
  callMethod('LightTask.stopTask');
 }
}
Подскажите, пожалуйста, как получить список всех объектов из класса Task, чтобы изменить код и не дублировать его для каждого объекта Task
Было но такое - но похерить пришлось.... :oops: :oops: :oops:
Спасибо нам ПОМОЖЕТ..!
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 317 раз
Поблагодарили: 466 раз

Re: Как запросить все объеты класса?

Сообщение Logrus » Ср дек 09, 2020 12:13 pm

fynto писал(а):
Ср дек 09, 2020 10:48 am
Добрый день!

У меня есть класс Task в нем есть объекты, LightTask , LightTask2, LightTask3 и тд. У класса есть два свойства StartTime и EndTime, а также два метода обрабатывающие задание startTask и stopTask. Для срабатывания в onNewMinute помещен код для каждого задания вида:

Код: Выделить всё

if (getGlobal('LightTask.status')){
 if (timeIs(getGlobal('LightTask.startTime'))) {
  callMethod('LightTask.startTask');
 }
 if (timeIs(getGlobal('LightTask.stopTime'))) {
  callMethod('LightTask.stopTask');
 }
}
Подскажите, пожалуйста, как получить список всех объектов из класса Task, чтобы изменить код и не дублировать его для каждого объекта Task

Код: Выделить всё

$objects = getObjectsByClass($class_name);
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

Re: Как запросить все объеты класса?

Сообщение Chainik » Ср дек 09, 2020 8:04 pm

fynto писал(а):
Ср дек 09, 2020 10:48 am
...
Подскажите, пожалуйста, как получить список всех объектов из класса Task, чтобы изменить код и не дублировать его для каждого объекта Task
Попробуйте так:

Код: Выделить всё

$objects=getObjectsByClass("Task");
foreach($objects as $obj) {
if (getGlobal($obj['TITLE'].".status")){
 if (timeIs(getGlobal($obj['TITLE'].".startTime"))) {
  callMethod($obj['TITLE'].".startTask");
 }
 if (timeIs(getGlobal($obj['TITLE'].".stopTime"))) {
  callMethod($obj['TITLE'].".stopTask");
 }
}
}
Ответить