Я стал мужем и отцом!

Друзья! Всем привет! Пришло время вдохнуть новую жизнь в это интернет-пространство!

За это время случились очень важные события в моей жизни, я стал счастливейшем мужем и отцом! Сын растёт, радуется жизни и дарит радость всем вокруг! Я собираюсь стать настоящим отцом! И надеюсь на всеобщую поддержку! На мой взгляд, это очень важная тема на данный момент в нашей Великой Стране. Да, сейчас можно найти людей, у которых получилось стать хорошими отцами. По моим ощущениям, большая часть — это священнослужители Русской Православной Церкви. Найти простого мирянина, который может сказать с полной уверенностью, что он стал настоящим отцом, достаточно сложно (буду рад, если читатель укажет мне на конкретные примеры, чтобы я смог поучиться у этих людей). По крайней мере — это явление далеко не повсеместное, и в настоящее время, как мне кажется, мало кто задумывается о том, чтобы стать настоящим отцом, а как же они нужны нашей стране, нашему народу! Настоящие отцы! Есть мужья, есть папы, а настоящих отцов, как смокв на дереве, после сбора урожая.

Семья Луниных коллаж 2018
Семья наша Луниных. 2018 год.

Воспитание позиции заботы об общей системе…

«Едва ли не главнейшей функцией менеджера программного проекта должно быть воспитание позиции заботы об общей системе, ориентировки на пользователя.»

Фредерик Брукс «Мифический человеко-месяц или Как создаются программные системы».

Использование шаблонизатора при формировании представления (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: разбираемся с роутингом»

Проектируем базу данных

Для проектирования базы данных воспользуемся online инструментом: https://www.draw.io/

На мой взгляд очень удобный инструмент с богатым функционалом для создания диаграмм и схем. Бесплатный.

Как показала практика, лучше сначала всё продумать на бумажке, а затем готовую схему перенести в draw.io, так как в процессе осмысления структуры происходят множественные поправки, и на бумаге это сделать быстрее и легче.

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

ERP схема базы данных FunnyApp

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

Концепция приложения

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

Пользовательская часть приложения будет выполнена с помощью стандартных возможностей шаблонизации, админку будем писать в виде одностраничного приложения (single page application) с использованием JavaScript фреймворков. Это приложение будет общаться с сервером через API.

P.S. В процессе написания заметок ко мне пришло понимание, что грамотное формулирование и изложение своих мыслей — это нелёгкий труд.

Разворачиваем проект на Laravel 5.4

Пришло время развернуть основу для нашего проекта на Laravel 5.4.

Инструкция по установке:
https://laravel.com/docs/5.4/installation

Устанавливаем через композер.

После установки рекомендуется проверить, что папки storage и bootstrap/cache доступны для записи веб-серверу.

В качестве корневой папки для хоста устанавливаем папку public.

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

URL приложения: http://laravel.funnyapp.lynin.ru/

Разворачиваем проект на Symfony 3.2

Теперь давайте займёмся разворачиванием каркаса Symfony для нашего приложения FunnyApp.  Последняя стабильная версия фреймворка на данный момент 3.2.4.

Инструкция по установке:
http://symfony.com/doc/current/setup.html

Установка прошла без проблем. В качестве корневой папки для хоста устанавливаем папку web.

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

URL приложения: http://symfony.funnyapp.lynin.ru/