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:*"
Имеет ли такой подход смысл? Правильно ли его использовать? Что это дает и что я теряю?
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 2
@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 умирает и всё прочее.
Ответ написан
@kuftachev
Вот про разницу.

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

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

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

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

Войти через центр авторизации
Похожие вопросы
Bezlimit Москва
от 100 000 до 130 000 руб.
Sky Way Capital Москва
от 100 000 до 150 000 руб.
26 авг. 2019, в 10:39
500 руб./за проект
26 авг. 2019, в 10:37
1000 руб./в час
26 авг. 2019, в 10:32
10000 руб./за проект