Size: a a a

2020 July 13

AM

Alexander Makarov in Yii Framework 3
Дмитрий
если запрещает расширение через наследование, то обязательно нужно оставлять возможность расширения через интерфейс/абстрактный класс
Не всегда. Есть кейсы когда 100% никогда не будет ничего другого.
источник

А

Алексей R in Yii Framework 3
Alexander Makarov
Не всегда. Есть кейсы когда 100% никогда не будет ничего другого.
такое тоже быват - пример в пакете data
источник

А

Алексей R in Yii Framework 3
data/Sort
источник

Д

Дмитрий in Yii Framework 3
Alexander Makarov
Не всегда. Есть кейсы когда 100% никогда не будет ничего другого.
почему тогда в этом случае расчет идет в сторону добавления final?
источник

AM

Alexander Makarov in Yii Framework 3
Дмитрий
почему тогда в этом случае расчет идет в сторону добавления final?
Потому что мы не хотим наследования кроме тех случаев, когда точно хотим.
источник

AM

Alexander Makarov in Yii Framework 3
источник

AM

Alexander Makarov in Yii Framework 3
Смотри, у нас фронт дебага состоит из 2-х частей.
источник

AM

Alexander Makarov in Yii Framework 3
Первая это приложение отдельное.
источник

AM

Alexander Makarov in Yii Framework 3
Вторая - это панелька.
источник

AM

Alexander Makarov in Yii Framework 3
Вопросы:

1. Панельку там же планируется?
2. Не будет ли всё это дело конфликтовать с другой версией Angular в самом приложении?
источник

A

A in Yii Framework 3
Дмитрий
В таком случае реквест = форма.
Реквест для передачи параметров внутрь приложения, больше от него не нужно.
К тому же, данные лучше сохранять не в модельке, а в каком-нибудь сервисе (а.к.а. репозитории).
А перед сохранением хорошо бы прогнать через процесс создания модели данных по образу входящих валидных данных (форма, дто).
Если всё сложить, то больше ничего и не нужно. Просто кто-то навязывает шорткаты, выдавая это за правильность.
Не всегда это нужно делать.
Если брать yii2, то на одном проекте, где мне довелось работать, то там один из ведущих программистов придумал такую штуку, я её в других проектах где-то не встречал, поэтому, скорее всего, это было что-то авторское

Он как делал:
Допустим, есть active record модель post, и нам нужно сохранить запись

Он просто в backend/models заводил уже обычную yii Model, инжектил туда модель Post

В обычной модели, как свойства перечислял то, что он будет сохранять, валидировал всё это дело и сохранял

Из каких-то особенностей

Он в конструкторе проверял
$post->isNewRecord вроде, если модель не новая, то свойства заполнял данными из поста, чтобы, если это редактирование записи, чтобы данные подставлялись в инпуты

Вот так это примерно выглядело, но это уже на yii3: https://github.com/aushev06/yii3/blob/master/src/Todos/Todo/TodoForm.php


Я это имел в виду под модельками
источник

AM

Alexander Makarov in Yii Framework 3
Ну, обычная модель формы. Странно что в проектах на Yii 2 не встречалось.
источник

AM

Alexander Makarov in Yii Framework 3
В более-менее крупных такое часто.
источник

AM

Alexander Makarov in Yii Framework 3
Потому что на сценариях и AR далеко не уедешь...
источник

AM

Alexander Makarov in Yii Framework 3
Занятная тудушница. Видно что три месяца назад у нас надо было писать сильно больше букв :)
источник

A

A in Yii Framework 3
Я как увидел этот способ, везде уже пытаюсь по такому принципу идти 😀 будь то ларавел (тут обычно сервисы завожу) или ещё что-то

Я в принципе, от него и услышал про такие штуки, как ddd, tdd и тд
источник

A

A in Yii Framework 3
Alexander Makarov
Занятная тудушница. Видно что три месяца назад у нас надо было писать сильно больше букв :)
Да, я тоже заметил это)
источник

A

A in Yii Framework 3
Но было бы классно же просто запросы валидировать
А не модели
источник

A

A in Yii Framework 3

$request->getAttribute('csrf_token');

Вот так каждый раз доставать токен и прокидывать его
Мне показалось, что это не очень удобно
источник

A

A in Yii Framework 3
И urlGenerator

Его сначала нужно заинжектить
Потом в каждом файле указывать, как комментарий, что у тебя есть такая переменная, чтобы ide подсказывал, тоже не ахти показалось
источник