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

Discussion in 'Создание расширений для Joomla' started by like-nix, Aug 24, 2015.

  1. Offline

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

    Joined:
    Feb 29, 2012
    Messages:
    14
    Likes Received:
    0
    Gender:
    Male
    Здравствуйте.

    Читаю цикл статей по созданию компонента:
    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.     }


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

    Объясните мне пожалуйста. Спасибо.
     
    Last edited: Aug 24, 2015
  2.  
  3. Offline

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

    Joined:
    Feb 29, 2012
    Messages:
    14
    Likes Received:
    0
    Gender:
    Male
    если кому интересно то сюда
     
  4. OlegK
    Offline

    OlegK Russian Joomla! Team Staff Member ⇒ Профи ⇐

    Joined:
    Jan 17, 2011
    Messages:
    7,812
    Likes Received:
    771
    Gender:
    Male
    Думаю для облегчения понимания работы компонента
     
  5. woojin
    Offline

    woojin Местный Staff Member => Cпециалист <=

    Joined:
    May 31, 2009
    Messages:
    3,204
    Likes Received:
    334
    Gender:
    Male
    все модели и контроллеры которые ты прописываешь у себя в компоненте заменяют собой стандартные (которые есть в ядре)
    это сделано для того что бы можно было произвести какие то отличные от стандартных действия по работе с контентом

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

    AKopytenko Russian Joomla! Team Staff Member

    Joined:
    Sep 1, 2011
    Messages:
    1,963
    Likes Received:
    168
    Gender:
    Male
    @like-nix, следуя логике Joomla MVC (ну и здравому смыслу):
    • HelloWorldsModel - получает из базы инфу для формирования группы элементов (например, все материалы категории);
    • HelloWorldModel - получает из базы инфу по одному конкретному элементу (например, страница материала категории).
    Аналогично с контроллерами, видами и шаблонами.
    J:{
     
  7. Offline

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

    Joined:
    Feb 29, 2012
    Messages:
    14
    Likes Received:
    0
    Gender:
    Male
    спасибо за ответы
     

Share This Page

Loading...