Abr_ya
@Abr_ya

Существует ли «чистая» установка Yii2?

Начинаю работать с данным фреймворком. Уже многое нравится! Начинают возникать вопросы, "как делать правильно?", "как делать лучше?". И это - один из них.
На оф. сайте рекомендуется два варианта установки:
php composer.phar create-project yiisoft/yii2-app-basic basic
php composer.phar create-project yiisoft/yii2-app-advanced advanced

Как я понял, это два варианта сборки под проекты разных масштабов (кстати, если где-то можно хорошо прочитать про общее-различное в этих сборках, буду благодарен!).
Я сейчас прохожу курс, в котором рекомендуют ставить так:
composer require "yiisoft/yii2:*"
Имеет ли такой подход смысл? Правильно ли его использовать? Что это дает и что я теряю?
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
@Mylistryx
composer require "yiisoft/yii2:*" - таким образом вы получите действительно чистую установку. По сути у вас будет только файлы composer.json, composer.lock и папка vendor в которой будет лежать сам фреймворк с зависимостями. Вы сможете строить структуру своего приложения самостоятельно, т.е. сами решать, где у вас будут лежать контроллеры, модели, view и прочее. Это можно изменить и в готовых шаблонах basic/advanced.
Теперь по шаблонам:
Basic - пример организации описанного выше. Используется обычно для небольших приложений с одной точкой входа (/web/index.php). Есть как свои преимущества, так и недостатки (если не менять структуру). Из преимуществ - реально проще, нет дублирования классов и т.д. Из недостатков - расширяемость только модулями, не очень удобный способ хранения конфигов (нельзя переопределять локальными значениями). Всё это конечно можно легко устранить.
Advanced - типа расширенный вариант. Нужен далеко не всем. Позволяет организовать несколько точек входа (frontend и backend по умолчанию) и легко добавлять свои. К примеру копируем папку backend, правим в ней namespace`ы и вуаля, у нас есть API, который настраиваем на уровне конфигов и он нам отдает только JSON. Мне так удобней по крайней мере. При этом все приложения могут использовать общие компоненты\модели\сервисы и т.д. из папки common.
Для лучшего понимания я рекомендую посмотреть\прочитать все, что есть в блоге у Elisdn (ссылку давали выше), мне в свое время это очень сильно помогло. Ну и рекомендую сначала ознакомиться с его же курсом по сервисному слою. Привыкнув к AR и т.д. тяжело потом будет перейти на что то другое. К примеру у меня сейчас как источники данных используется несколько сторонних сервисов, SOAP сервис и своя БД (и не одна!). Без сервисного слоя это было бы ооочень тяжело поддерживать и обслуживать в дальнейшем. А так - у меня есть сервисный слой, который представляет собой "черный ящик", и что и как у него там происходит внутри меня в принципе не интересует.
В интернете сейчас несколько книг и обучающих курсов обучающих работе с Yii2, но из всего этого я рекомендую Elisdn! 99% курсов дают общее понимание о фреймворке, но загоняют в жесткие рамки, что помоему очень плохо. Отсюда и мнение, что Yii2 умирает и всё прочее.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@kuftachev
Вот про разницу.

https://github.com/yiisoft/yii2-app-advanced/blob/...

Вообще смысл в том, что advanced - это демонстрация того, как можно использовать по сути несколько разных приложений, но с общими классами. Не сильно представляю для чего это нужно. Но оттуда можно взять работа с аккаунтом пользователя.

P.S. Присоединяюсь к совету учить его уже не актуально на данный момент, кроме случаев, когда знаешь другой, но предлагают хорошую работу на нём. Выбирайте между Laravel и Symfony, хоть они и оба ужасны.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы