
Dmitriy
11.04.2017
08:39:50
примерно так в апи

Konstantin
11.04.2017
08:39:50
ты не понял, я про структуру стандартную. модуль должен состоять из тех же моделей контрлоллеров и видов а у тебя там вообще шурум бурум )))

Dmitriy
11.04.2017
08:40:31
https://github.com/yiisoft/yii2/issues/1467
только после этого issues а лучше сделать чтобы контроллеры, как и все остальные классы, могли быть размещены в произвольных местах и неймспейсах.
Тогда можно забыть о всяких адвантедах

Mr.
11.04.2017
08:41:06

Google

Dmitriy
11.04.2017
08:41:50

Dmitriy
11.04.2017
08:43:30

Konstantin
11.04.2017
08:43:59
http://joxi.ru/nAyQxvZS1qoaAZ
я тут не вижу папку controllers в модуле api
я про это говорю а не про виды

Mr.
11.04.2017
08:44:47
там, скорее всего, в субдиректориях отдельно модули

Konstantin
11.04.2017
08:44:48
не вижу там же папки models

Dmitriy
11.04.2017
08:45:12
кто мне мешает на модулях строить структуру? )

Konstantin
11.04.2017
08:45:18
там только одна папка v1

Mr.
11.04.2017
08:45:21
типа роутинг
/api/v1/category/<контроллер>

Konstantin
11.04.2017
08:45:57
мешает инструкция что в yii принято делать эти папки в модулях ))

Dmitriy
11.04.2017
08:46:11
http://joxi.ru/zAN4YzNUDqjPm9

Konstantin
11.04.2017
08:46:12
а их там нет у тебя и меня это озадачило)))

Mr.
11.04.2017
08:46:13
api как модуль, v1 как модуль, и внутри каждой директории ещё модуль
а инструкции - это всего-лишь набор рекомендаций

Google

Mr.
11.04.2017
08:46:37

Dmitriy
11.04.2017
08:47:09

Mr.
11.04.2017
08:47:10
давайте, раз нас здесь уже много, вы мне подскажите такую вещь: кто-то сталкивался с стилизацией recaptcha?

Dmitriy
11.04.2017
08:47:47

Mr.
11.04.2017
08:49:12

Konstantin
11.04.2017
08:49:18
сам небось балушься
не знал что можно так модуль внутри модуля ? а модель внутри модели? или контроллер внутри контроллера? есть еще какие то такие штуки не по инструкции? ?

Mr.
11.04.2017
08:50:30

Nurik
11.04.2017
08:51:00
Блин вот же холивар. Зря я вкинул такой вопросик))
А вообще всем советую иметь своё мнение, а не "внедренную идею", которая кажется твоей.))
Если я вижу, что я могу тут накосячить, я от себя самого же пишу защиту, т.е. меняю что-то что может избавить в будущем от ошибок, если это приживается и имеет мало побочных эффектов, я использую дальше, иначе ищу дальше. Таким образом архитектура сама собирается с учетом ограничений и возникают вопросы, что уже хорошо.

Konstantin
11.04.2017
08:51:55

Dmitriy
11.04.2017
08:52:15

Mr.
11.04.2017
08:52:17
Блин вот же холивар. Зря я вкинул такой вопросик))
А вообще всем советую иметь своё мнение, а не "внедренную идею", которая кажется твоей.))
Если я вижу, что я могу тут накосячить, я от себя самого же пишу защиту, т.е. меняю что-то что может избавить в будущем от ошибок, если это приживается и имеет мало побочных эффектов, я использую дальше, иначе ищу дальше. Таким образом архитектура сама собирается с учетом ограничений и возникают вопросы, что уже хорошо.
ну я писал, основываясь на своём мнении, так как уже не один проект сделал на базе advanced'а, и для меня такое разделение было удобно
но при этом, для некоторых проектов, использую также и basic - когда не нужно делать никакого разделения


Dmitriy
11.04.2017
08:53:40
Блин вот же холивар. Зря я вкинул такой вопросик))
А вообще всем советую иметь своё мнение, а не "внедренную идею", которая кажется твоей.))
Если я вижу, что я могу тут накосячить, я от себя самого же пишу защиту, т.е. меняю что-то что может избавить в будущем от ошибок, если это приживается и имеет мало побочных эффектов, я использую дальше, иначе ищу дальше. Таким образом архитектура сама собирается с учетом ограничений и возникают вопросы, что уже хорошо.
"внедренную идею" даже если идея правильная =) ?
Может нужно вводить "внедренную идею" в yii2 сообщество ?
А то посмотришь на сторонние модули, и плакать хочется

Dmitriy
11.04.2017
08:55:00
Я выношу общие модели в корень именную их как ModelnameRecord если они от AR в модулях наследую и нагружаю логикой модуля. Так же в модулях сущностей создаю свои модели от baseModel и называю их как ModelnameModel они служат при необходимости слоем трансляций
Но если проект большой все равно в финале ад)

Konstantin
11.04.2017
08:55:43
а нельзя модели выносить в components ?
общие

Mr.
11.04.2017
08:56:03

Nurik
11.04.2017
08:56:48

Dmitriy
11.04.2017
08:56:53

Mr.
11.04.2017
08:57:36

Google

Mr.
11.04.2017
08:57:52
ибо получается
/app/modules/users/models/UserModel

Dmitriy
11.04.2017
08:58:09
Модель не обязательно должна быть связана с хранилещем данных

Mr.
11.04.2017
08:58:43
а, понятно) вот тут у каждого свой подход - я AR модели называю {ModelName}Record

Dmitriy
11.04.2017
08:59:21

Mr.
11.04.2017
08:59:26
нэйминги у каждого свои)
просто модели я обычно обзываю тем, что там есть (User, Category, Post), формы - добавляю в конце Form, AR - Record
для остального есть нэймспейсы

Dmitriy
11.04.2017
09:02:54

Nurik
11.04.2017
09:08:24
Ребят, вот все тут защищают шаблон advanced. Ок. хоть я и не разделяю такое мнение. Пример.Есть заказы, есть водители и клиенты. Модель Order в common. Её наследуют в модулях "клиент" и "водитель". В Order есть общая логика валидации. Например человеку, отвественному за модуль "клиента" вдумалось переписать валидацию для определенной ситуации, он добавил сценарий и переопределил метод rules, через parent:: получил правила. Но неожиданно запорол одно из общих правил валидации. Вот это хорошо ? А ведь по сути мы ожидаем что ОБЩАЯ ВАЛИДАЦИИ, должна работать НЕЗАВИСИМО от того сделали мы проверку или нет.

Dmitriy
11.04.2017
09:11:08

Nurik
11.04.2017
09:11:55
Что именно мне уточнить, чтобы стало понятно ?
Надо что-то переопределить для частного случая ? Переопределяй метод!

Nurik
11.04.2017
09:12:46
Вот такое говно.

Dmitriy
11.04.2017
09:13:54

Dmitriy
11.04.2017
09:14:21
я думаю сравнительно малый % пишет строго в эдванс по рекомендации )
или только свой первый проект на yii

Dmitriy
11.04.2017
09:18:04
Надо сюда Макарова бы позвать

Nurik
11.04.2017
09:23:19


Mr.
11.04.2017
09:23:28
Ребят, вот все тут защищают шаблон advanced. Ок. хоть я и не разделяю такое мнение. Пример.Есть заказы, есть водители и клиенты. Модель Order в common. Её наследуют в модулях "клиент" и "водитель". В Order есть общая логика валидации. Например человеку, отвественному за модуль "клиента" вдумалось переписать валидацию для определенной ситуации, он добавил сценарий и переопределил метод rules, через parent:: получил правила. Но неожиданно запорол одно из общих правил валидации. Вот это хорошо ? А ведь по сути мы ожидаем что ОБЩАЯ ВАЛИДАЦИИ, должна работать НЕЗАВИСИМО от того сделали мы проверку или нет.
Не совсем понятна задача и реализация
Если в order уже есть валидация, и нужно добавить еще одно правило, специфичное для модуля, то в rules модели модуля нужно сделать своё правило, добавив его ко всем остальным через array_merge (или ArrayHelper) с parent::rules()
Типа array_merge(parent::rules, [custom rule]

Google

Nurik
11.04.2017
09:23:58
Повторяю, вы никогда не знаете, кто будет пилить код, гуру или джуниор, но код нужно писать так, чтобы тебе было пофиг на это.

Mr.
11.04.2017
09:25:13
Ну а вообще, для AR моделей валидация должна быть, на мой взгляд, такой, чтобы модель в базу вставить можно было
Для остального я делаю формы, которые валидируют данные до передачи в AR модель
То есть, в данном кейсе у меня бы была OrderForm со своими правилами, в методе save которой была бы логика сохранения в AR

ivphpan
11.04.2017
09:27:45
а что вам мешает использовать сценарии?
для каждого случая
тем самым не создавая формы если те не являются составными

Nurik
11.04.2017
09:30:08
да блин чё вы придумываете, я не понимаю. Могу я в отнаследованной модели игнорировать правила родительской ? Да. Остальное — мимо.

Admin
ERROR: S client not available

Mr.
11.04.2017
09:30:33
а что вам мешает использовать сценарии?
Лично я не сильно еще гуру в yii, и сценариями пользоваться не совсем научен, но в формах можно реализовать много лишней логики, применимой к конкретной форме
Например, загрузка фоток

Artur
11.04.2017
09:30:54

ivphpan
11.04.2017
09:31:16

Nurik
11.04.2017
09:55:21
В общем, ладно. Может это у меня только такие проблемы. Из-за наследования из common, многое ломается не там где должно. Пример: Есть Модель, которая заполняется данными из API, я написал гидратор для модели, и кинул модель в common. Теперь новый человек, отвечающий за часть другого апи, отнаследовал модель и затер какие-то данные, теперь API его не впускает, когда собирается запрос и отправляется. А в коде мы это не увидем. ТОлько в рантайме. Тесты конечно тоже надо писать. Но не всегда получается вс1 покрыть тестами.

Dmitriy
11.04.2017
09:57:45
Я бы бил за наследования из common
когда же будут в пхп финал классы

Nurik
11.04.2017
09:58:43

Dmitriy
11.04.2017
09:59:41
а мы извращенцы тут множественное наследование хотим)

Dmitriy
11.04.2017
10:03:23

Google

Nurik
11.04.2017
10:05:05
Нужно бить просто так)) Не нужно причин. )))

Dmitriy
11.04.2017
10:05:52

Dmitriy
11.04.2017
10:05:56

Dmitriy
11.04.2017
10:06:31

Nurik
11.04.2017
10:06:31
Нужно вообще в коллективе иметь сумешедшего кодера-убийцу, который бы бегал с ножом за ошибки))
P.S. который сам будет писать неплохой код.

0x9d8e
11.04.2017
10:34:52

Владимир
11.04.2017
10:35:00
Коллеги, добрый вечер! Подскажите. Загружаю файл, всё хорошо. Но если сделать у него свойство обязательной загрузки ('skipOnEmpty' => false, либо добавить в required), то ломается - модель из вью приходит с пустым файлом.
То есть валидация не проходит, даже если файл кладешь. А если без этого флага, то загружается файл.
https://gist.github.com/anonymous/f1dcfef7a582b0cb0c123f9f87bb4e43

Dmytro
11.04.2017
11:04:03
Мне кажется, upload нужно делать перед валидацией

Владимир
11.04.2017
11:13:00

Dmitriy
11.04.2017
11:16:51

Владимир
11.04.2017
11:17:30

Artur
11.04.2017
11:45:14
Всем привет!
Есть экшн:
function actionXyu($param) {
.....
}
как мне в urlManager'е прописать параметр $param?
например
'GET url/to/xyu' => 'path/to/url/xyu?param=pizda'

ivphpan
11.04.2017
11:47:45
Нахуй отошли запрос)
?

Nurik
11.04.2017
11:49:40

ivphpan
11.04.2017
11:50:17
Зачем, если у него порно намечается)
весна видимо

Artur
11.04.2017
11:50:55
гармоны

Nurik
11.04.2017
11:52:13