Вызов модели компонента при разработке в 2.0

 
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1827
В туториалах говорится, что чтобы использовать функцию модели в компоненте, нужно эту модель сначала вызвать.
Например в компоненте в экшенах фронтенда вызов функции модели выглядит так:
Код PHP:
  1. $list = $this->model->getFunction();
где-то так:
Код PHP:
  1. $list = $this->getFunction();
а где-то, прежде чем использовать функцию модели, сначала подключить модель.
Код PHP:
  1. $comp_model = cmsCore::getModel('comp');
  2. $list = $comp_model -> getFunction();
В чем разница этих вызовов? Как делать правильно? учитываем что фунции вызываются в рамках текущего компонента.
Есть ли разница, когда функции вызываются из разных файлов (экшены фронтента, экшены бакэнда, формы, хуки и т.д.)?
Редактировалось: 1 раз (Последний: 2 февраля 2015 в 21:23)
Мой блог с плюшками
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Первый вариант используется, когда функции вызываются из разных файлов (экшены фронтента, экшены бакэнда, формы, хуки и т.д.) в пределах данного компонента.
Второй вариант используется в самой модели компонента.
Третий вариант используется, когда надо получить данные из другого компонента.
Как-то так.
kreator:
Как делать правильно?
Ответ один - всегда.
Реклама
cms
InstantCMS Team
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1343
http://docs.instantcms.ru/dev/controllers
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1827
Спасибо за ссылку. Познавательно.

Так например в компоненте фотобатлы в хуке крон запускается функция так и в дефолтных компонентах:
Код PHP:
  1. $this->model->closeExpiredBattles();
в компоненте афиша написанная другим пользователем тоже также.

а вот в других сторонних компонентах, через вызов модели.
Мой блог с плюшками
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.