Архитектура приложения
-
- Сообщения: 2
- Зарегистрирован: 2017.08.07, 11:11
Архитектура приложения
Здравствуйте. У меня проблемы с архитектурой приложения на Yii2. Я как бы прочитал уже уйму статей на хабре, отдельные мануалы по темам, какая часть как используется я понимаю, но не могу собрать всё воедино и заставить работать! По сравнению с симфони мне не ясно где и что реализовывать.
Есть у меня юзер, в виде модели по пути models\User.php
Мне нужно осуществлять вход по openid и если юзер новый то добавлять данные в БД, как бы регистрировать его. Где должно происходить это добавление? В это модели models\User.php?
Далее. Мне нужно работать с юзером, оперировать его данными анкетными данными. То есть вообще всё будет вертеться вокруг сущности User. Опять же это та же модель models\User.php? Мне в неё добавлять свойства, методы, хелперы и т.д.?
Третье. Куда писать маршруты и правила доступа для них?
И еще есть уйма вопросов. Я понимаю что пойдут ответы "дело твоё" и "делай как ты хочешь". Но я не знаю как хочу! Есть какой-то пример архитектуры который можно взять за основу? Чтобы уже было понятно где модели, где маршруты, где сервисы?
Есть у меня юзер, в виде модели по пути models\User.php
Мне нужно осуществлять вход по openid и если юзер новый то добавлять данные в БД, как бы регистрировать его. Где должно происходить это добавление? В это модели models\User.php?
Далее. Мне нужно работать с юзером, оперировать его данными анкетными данными. То есть вообще всё будет вертеться вокруг сущности User. Опять же это та же модель models\User.php? Мне в неё добавлять свойства, методы, хелперы и т.д.?
Третье. Куда писать маршруты и правила доступа для них?
И еще есть уйма вопросов. Я понимаю что пойдут ответы "дело твоё" и "делай как ты хочешь". Но я не знаю как хочу! Есть какой-то пример архитектуры который можно взять за основу? Чтобы уже было понятно где модели, где маршруты, где сервисы?
Re: Архитектура приложения
Можете подсмотреть тут https://github.com/2amigos/yii2-usuario
Re: Архитектура приложения
Как раз для сбора всего этого воедино в Yii2 посмотрите http://www.elisdn.ru/yii2-shop. Все вопросы отпадут.
-
- Сообщения: 2
- Зарегистрирован: 2017.08.07, 11:11
Re: Архитектура приложения
Это что-то очень круто. Воедино собрано слишком много... но спасибо, я открываю и смотрю.
Вопрос более конкретный.
Юзер авторизуется через социальную сеть и ТОЛЬКО! Я поставил компонент eauth (https://github.com/Nodge/yii2-eauth-demo)
Мне нужно при первом входе запомнить его ID в БД, где-то сохранить что он авторизовался (наверное в сессии) и в дальнейшем использовать его учетные данные из БД.
Создал модель User extends ActiveRecord implements IdentityInterface и застопорился.
Где я должен делать инсерт в БД когда юзер еще новый? В этой модели в методе findByEAuth? Или в другом месте?
Где я должен сохранять его в сессию?
В какую модель мне добавлять остальной функционал касающийся работы с Юзером, например метод смены аватарки юзера, установка даты рождения? Всё в этой же модели User?
Вопрос более конкретный.
Юзер авторизуется через социальную сеть и ТОЛЬКО! Я поставил компонент eauth (https://github.com/Nodge/yii2-eauth-demo)
Мне нужно при первом входе запомнить его ID в БД, где-то сохранить что он авторизовался (наверное в сессии) и в дальнейшем использовать его учетные данные из БД.
Создал модель User extends ActiveRecord implements IdentityInterface и застопорился.
Где я должен делать инсерт в БД когда юзер еще новый? В этой модели в методе findByEAuth? Или в другом месте?
Где я должен сохранять его в сессию?
В какую модель мне добавлять остальной функционал касающийся работы с Юзером, например метод смены аватарки юзера, установка даты рождения? Всё в этой же модели User?
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Архитектура приложения
Для авторизации через социалки лучше официальный yii2-authclient.
Вот так хранится всё: https://github.com/samdark/yiipowered/b ... andler.php
Вот так хранится всё: https://github.com/samdark/yiipowered/b ... andler.php
Нравится Yii? Давайте сделаем его лучше!.
Re: Архитектура приложения
Ну когда используется ActiveRecord, есть несколько подходов
- Работать с ним прямо в контроллере (не рекомендуется, но в простых случаях вполне себе работает)
- Вынести это в отдельный, так называемый сервисный слой
- Реализовать паттерн репозиторий поверх паттерна ActiveRecord. Наиболее гибко, даёт возможность потом уйти от ActiveRecord
- Комбинация трёх выше перечисленных методов. Ну, собственно, что я обычно делаю.
Re: Архитектура приложения
А из репозитория что будет возвращаться? Не AR объекты?mkramer писал(а): ↑2017.11.07, 12:23 Ну когда используется ActiveRecord, есть несколько подходов
- Работать с ним прямо в контроллере (не рекомендуется, но в простых случаях вполне себе работает)
- Вынести это в отдельный, так называемый сервисный слой
- Реализовать паттерн репозиторий поверх паттерна ActiveRecord. Наиболее гибко, даёт возможность потом уйти от ActiveRecord
Re: Архитектура приложения
maleks, да. Не скажу, что сам всегда так делаю, но здравая мысль в этом есть