Непонятки с MVC. Учусь создавать компоненты

Тема в разделе "Создание расширений для Joomla", создана пользователем like-nix, 24.08.2015.

  1. Offline

    like-nix Недавно здесь

    Регистрация:
    29.02.2012
    Сообщения:
    14
    Симпатии:
    0
    Пол:
    Мужской
    Здравствуйте.

    Читаю цикл статей по созданию компонента:
    https://help.joomla.org/proxy/?opti.../tutorial/Developing_an_MVC_Component/Part_09

    Объясните мне зачем тут

    Код (PHP):
    1. <?php
    2.  
    3. // No direct access to this file
    4. defined('_JEXEC') or die;
    5.  
    6. jimport('joomla.application.component.controlleradmin');
    7.  
    8. class HelloWorldControllerHelloWorlds extends JControllerAdmin
    9. {
    10.  
    11.     public function getModel($name = 'HelloWorld', $prefix = 'HelloWorldModel')
    12.     {
    13.         $model = parent::getModel($name, $prefix, array('ignore_request' => true));
    14.         return $model;
    15.     }
    16.  
    17. }


    Используем модель HelloWorldModelHelloWorld вместо HelloWorldModelHelloWorlds

    В статье конечно есть объяснение, типа это сделано для того чтобы не дублировать функционал в два контроллера.

    Но про какой функционал идет речь?

    Если посмотреть на представление HelloWorldViewHelloWorlds то все что ему нужно от модели это два метода getItem и getPagination и эти методы реализованы в JModelList от которого наследована модель HelloWorldModelHelloWorlds. Т.е. все и так должно работать и если закомментировать

    Код (PHP):
    1. public function getModel($name = 'HelloWorld', $prefix = 'HelloWorldModel')
    2.     {
    3.         $model = parent::getModel($name, $prefix, array('ignore_request' => true));
    4.         return $model;
    5.     }


    То все будет работать.

    Объясните мне пожалуйста. Спасибо.
     
    Последнее редактирование: 24.08.2015
  2.  
  3. Offline

    like-nix Недавно здесь

    Регистрация:
    29.02.2012
    Сообщения:
    14
    Симпатии:
    0
    Пол:
    Мужской
    если кому интересно то сюда
     
  4. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 042
    Симпатии:
    519
    Пол:
    Мужской
    Думаю для облегчения понимания работы компонента
     
  5. woojin
    Offline

    woojin Местный Команда форума

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    все модели и контроллеры которые ты прописываешь у себя в компоненте заменяют собой стандартные (которые есть в ядре)
    это сделано для того что бы можно было произвести какие то отличные от стандартных действия по работе с контентом

    в принципе, если у тебя компонент похож на com_content то можно обойтись только таблицами в БД и одним стартовым файлом и одним файлом шаблона default
    все остальные модели, контроллеры, вьюеры могут быть пропущены
     
  6. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    @like-nix, следуя логике Joomla MVC (ну и здравому смыслу):
    • HelloWorldsModel - получает из базы инфу для формирования группы элементов (например, все материалы категории);
    • HelloWorldModel - получает из базы инфу по одному конкретному элементу (например, страница материала категории).
    Аналогично с контроллерами, видами и шаблонами.
    J:{
     
  7. Offline

    like-nix Недавно здесь

    Регистрация:
    29.02.2012
    Сообщения:
    14
    Симпатии:
    0
    Пол:
    Мужской
    спасибо за ответы
     

Поделиться этой страницей

Загрузка...