Использование шаблонизатора при формировании представления (view) в контроллере

При формирования представления, по моему мнению, удобно использовать шаблонизаторы. У них есть много удобных и полезных возможностей, например, наследование шаблонов, фильтрация, функции, виджеты, переопределение блоков и так далее. Два из рассматриваемых нами фреймворков, а именно: Symfony и Laravel для формирования представлений предоставляют шаблонизаторы «из коробки», а вот Yii по умолчанию для этих целей использует чистый php, хотя не запрещает нам подключить и использовать в рамках фреймворка подходящий шаблонизатор.

Рассмотрим сначала как формируются шаблоны в Yii, а затем перейдём к рассмотрению вопроса использования в представлениях шаблонизаторов в рамках фреймворков Symfony и Laravel. Читать далее «Использование шаблонизатора при формировании представления (view) в контроллере»

Использование ORM для работы с БД

Перейдём к рассмотрению вопроса работы с базой данных. В настоящее время нет необходимости писать низкоуровневые SQL-CRUD-запросы для работы с сущностями базы данных, для этих целей созданы ORM (Object-Relational Mapping) обёртки, которые позволяют делать это легко и удобно в стиле ООП. Хотя все рассматриваемые нами фреймворки (а именно: Yii, Symfony и Laravel) не ограничивают нас в средствах работы с базой данных (то есть, если у нас сложная структура БД или нам нравится на каждое действие писать чистый SQL, то мы можем это делать беспрепятственно), однако имеют в своих арсеналах конкретные реализации ORM, которые заметно облегчают взаимодействие с БД. Читать далее «Использование ORM для работы с БД»

FunnyApp: разбираемся с роутингом

После того, как мы сделали обзор конфигурирования приложения, думаю будет логично рассмотреть, а как же устроен роутинг (routing) в каждом из фреймворков. Для этого предлагаю создать несколько страниц:

  • список организаций
  • список пользователей конкретной организации
  • подробная информация о пользователе
  • список категорий портфолио
  • список работ конкретной категории портфолио

Читать далее «FunnyApp: разбираемся с роутингом»

Разворачиваем проект на Yii 2.0

Начинаем разработку FunnyApp с Yii фреймворка. Данный фреймворк даёт возможность начать разработку с базового шаблона (basic application template), либо с продвинутого (advanced application template). В чём разница? Advanced шаблон ориентирует нас на разделение в приложении его пользовательской части (папка frontend) от бек-офиса (папка backend). Также мы можем выделить в отдельное подприложение будущее API. Таким образом пользовательская часть site.com будет ссылаться на папку frontend/web/, а админка будет на поддомене admin.site.com и будет ссылаться на backend/web/.

Страница с инструкцией по скачиванию фреймворка:
http://www.yiiframework.com/download/

Более развёрнуто тут:
http://www.yiiframework.com/doc-2.0/guide-start-installation.html

Последняя версия Yii 2.0.11, выпущенная 1 февраля 2017 требует PHP 5.4, как минимальную версию, при этом заявлена полная совместимость с PHP 7.x.

При установке Yii через композер возникла небольшая проблема:
Could not fetch https://api.github.com/repos/jquery/jquery-dist/commits/1472290917f17af05e98007136096784f9051fab, please create a GitHub OAuth token to go over the API rate limit.
Решил с помощью добавления «Personal access token» в настройках персонального аккаунта на гитхабе. Подробнее о проблеме тут:
https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens

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

php init

И выбрать окружение Development. Данная команда создаёт необходимые файлы для старта (например, frontend/web/index.php).

В качестве корневой папки для хоста пользовательской части устанавливаем папку frontend/web, а для хоста админ-панели устанавливаем backend/web.

Репозиторий проекта: https://github.com/loonin/yii-funnyapp

Пользовательская часть: http://yii.funnyapp.lynin.ru

Админ-часть: http://admin.yii.funnyapp.lynin.ru