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

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

Модератор: immortal

Ответить
fynto
Сообщения: 14
Зарегистрирован: Чт май 14, 2015 4:29 pm

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

Сообщение fynto »

Добрый день!

У меня есть класс 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
Откуда: Украина Пирятин

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

Сообщение tarasfrompir »

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

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

Сообщение Logrus »

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

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

Сообщение Chainik »

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");
 }
}
}
Ответить