Концепция приложения 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 доступны для записи веб-серверу.

Репозиторий проекта: 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

Установка прошла без проблем.

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

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

Разворачиваем проект на 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)

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

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

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

Начинаем FunnyApp

В процессе моей рабочей деятельности довелось мне познакомиться с тремя известными фреймворками для web-разработки. Это yii, symfony и laravel. И решил я начать разработку некоторого приложения, которое будет разрабатываться параллельно на этих трёх фреймворках, чтобы наглядно сравнить их и выделить сильные и слабые стороны, удобства и неудобства. В результате этой разработки хотелось бы получить для себя аргументы в пользу того или иного фреймворка, чтобы чётко представлять какой фреймворк выбрать для разработки того или иного реального приложения. Также хотелось бы углубиться в основы этих трёх фреймворков.