Создание фреймворка. Виды и шаблоны. Урок 4

Создание фреймворка

От автора: приветствую вас, друзья. Продолжим создание собственного PHP фреймворка. По итогу мы должны получить вполне функциональное решение, а заодно познакомиться с принципами работы современных PHP фреймворков. В этом уроке мы реализуем функционал шаблонов, видов, а также передачи данных из контроллера в вид.

скачать исходникискачать урок

В видео версии урока вы найдете ответы на такие вопросы:

В чем разница между шаблонами и видами?

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее

Как реализовать автоматическое подключение шаблона и вида?

Как изменить подключаемые по умолчанию шаблон и вид?

Как отменить подключение шаблона и вида?

Как передать данные из контроллера в вид и шаблон?

Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Фреймворк YII2: теория и первая практика

Овладейте азами фреймворка Yii2 за 5 дней!

Получить

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Комментарии (10)

  1. Alexey

    Подскажите пожалуйста как можно узнать имя класса который наследует базовый класс Db

  2. Александр

    Для переключения шаблонов нужно в админке предусмотреть эту возможность (пользователи не полезут в код) и неплохо-бы подключить редактор «CodeMirror» что даст возможность править шаблон непосредственно на хосте …для контента подключить визуальный редактор,…(функционал сайт определяется функционалом админки) иначе для добавления какой-то возможности придётся лезть в код шаблона и т.д.

    • Андрей Кудлай

      Александр, Вы путаете фреймворк и CMS. Это в CMS все делается из админки и делается, собственно, сама админка. Мы же пишем фреймворк, т.е. средство, упрощающее создание CMS, средство для разработчиков CMS, которые уже могут предусмотреть выбор шаблона в админке. В этом и заключается ключевая разница: CMS создана в первую очередь для пользователей, не разбирающихся в веб-разработке, а фреймворки созданы исключительно для веб-разработчиков, а не для рядовых пользователей.

  3. Денис

    Спасибо за уроки, решили, будете продолжать или нет? В видео можно делать ссылки на другие уроки, к примеру рассказывая про регулярки сделав ссылку на уроки по регулярным выражениям. Даст доп траф, своеобразная переленковка.

    • Андрей Кудлай

      Пожалуйста) Да, продолжение уже записано и скоро будет опубликовано. За совет спасибо.

  4. Dima

    Уважаемый Андрей добрый день, есть такой вопрос:
    - В уроке вы переопределили для класcа Main 2 свойства:
    public $layout = ‘main’;
    public $view = ‘test’;
    У меня переопределяется только $layout. А $view отсается прежним т.е. не ‘test’ а ‘index’.
    При распечатке в видео-уроке этот момент виден:
    var_dump($layout);
    var_dump($view);
    Также скачал исходники урока, и получилось тоже саоме.
    Не понимаю почему не меняется $view?
    Спасибо за ваш труд, очень качественно!

    • Андрей Кудлай

      Здравствуйте, Дмитрий.
      Сложно что-то подсказать, здесь нужно смотреть код. Ради интереса скачал исходники — такой проблемы нет, вид и шаблон без проблем переопределяются. Если ошибку все же не найдете, тогда на форуме можете задать вопрос и дать ссылку на архив с Вашим проектом, я попробую посмотреть.

  5. Максим Ральянов

    У меня тоже самое, если переопределять view на уровне всего класса — то непереопределяется, если же переопределить на уровне экшена — то все работает. А в уроке Вы действительно на уровне класса переопределили только layout? на 35.24 секунде это четко видно.

    • Максим Ральянов

      Разобрался.
      Переопределилв конструкторе
      public function __construct($route)
      {
      parent::__construct($route);
      $this->view = ‘test’;
      }

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree