These are chat archives for yiisoft/yii2/rus

22nd
May 2016
Alex
@Alex-Bond
May 22 2016 06:06
Народ, кто знаком с https://github.com/m8rge ?
Ilya Shashilov
@kvush
May 22 2016 08:06
Подскажите после отправки формы на сервер, при возникновении ошибки, как восстановить данные не обязательных полей и по которым никакой проверки не происходит. Они чето пропадают и юзеру повторно вбивать приходится.
Ilya Shashilov
@kvush
May 22 2016 08:19
Спасибо, решил проблему прописав в модели в rules всем таким полям 'safe'. Теперь они не пропадают.
KarmaBot
@KarmaBot
May 22 2016 08:19
@kvush, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
Ilya Shashilov
@kvush
May 22 2016 08:20
@kvush Спасибо
KarmaBot
@KarmaBot
May 22 2016 08:20
Так не честно, @kvush. Нельзя добавлять карму самому себе.
Ilya Shashilov
@kvush
May 22 2016 08:21
:) Я сам себе помог сам себе. Так что karmaBot ты не прав :)
Maxim Mukharev
@Carw
May 22 2016 09:20

@kingomost

даже не знаю, для меня продакшен - значит любые ошибки надо отключить. конечно в идеале их уже быть не может, но все не учтешь...

Я согласен, ошибок быть не должно на продакшене, особенно публичных. Но если ошибка проявляется только в окружении продакшена, нужно какие-то инструменты иметь для анализа. Хотя, может для таких специфических ситуаций действительно можно использовать логи апача/nginx/php

Konstantin Sirotkin
@beowulfenator
May 22 2016 09:25
юзер тебе никогда не пожалуется на ошибку
поэтому да, только логи веб-сервера
а в них уже стек трейс, конкретный текст ошибки, и т.п.
у меня вообще стоит логгер в ElasticSearch, и я периодически кибаной посматриваю все ошибки, которые не 404
Maxim Mukharev
@Carw
May 22 2016 09:28
@Alex-Bond вот спасибо... E96 стало быть на Yii выкладывает свои решения )
@beowulfenator круто, а почему именно в ElasticSearch? Для удобного поиска конкретных ошибок?
Konstantin Sirotkin
@beowulfenator
May 22 2016 09:31
там кибана
ну вообще да, конкретные ошибки искать хорошо, но можно делать другие полезные вещи
например, все логи от nginx пишутся через логсташ в эластик
по каждому запросу известно время, которое ушло на его выдачу
можно смотреть графики, выявлять тормозные страницы
ну или тормозные периоды
допустим, однажды я запустил на сервере одну ресурсоемкую процедуру, так среднее время запроса подскочило до секунды
хорошо, что быстро заметили и исправили
Maxim Mukharev
@Carw
May 22 2016 09:37
@beowulfenator Круто! Я на эту тему даже не думал еще ))
Konstantin Sirotkin
@beowulfenator
May 22 2016 09:38
я тоже когда-то не думал
по мере роста проекта приходится экономить время
Maxim Mukharev
@Carw
May 22 2016 09:39
@beowulfenator а как логи чистятся? По времени?
Konstantin Sirotkin
@beowulfenator
May 22 2016 09:39
в эластике?
пока никак
мы еще до этого не доросли
в смысле у нас пока логи не жмут
но вообще логсташ может писать логи в эластик по кускам
например, один кусок - один день
или неделя
Maxim Mukharev
@Carw
May 22 2016 09:40
а.. просто копятся пока значит. Но в целом в таком хранилище это никак и не должно напрягать, не то, что файлы, размеры которых потом начинают тормозить всякие процессы
Konstantin Sirotkin
@beowulfenator
May 22 2016 09:40
а потом в случае чего можно просто будет соответствующие индексы удалить
это да
я когда логсташ ставил, заметил лажу
access log у нас не оборачивался
так там файл до 4 гигов уже вырос
Maxim Mukharev
@Carw
May 22 2016 09:41
да, да... такая лажа мне знакома )))
Самое главное, что с таким файлом и сделать-то нормально ничего нельзя
Konstantin Sirotkin
@beowulfenator
May 22 2016 09:43
ну мне и не надо было
теоретически, можно было бы его втянуть в эластик
но в нем еще не было времени обслуживания запроса
потому что по дефолту nginx его не пишет
ну а нафига мне запросы за последний год?
Maxim Mukharev
@Carw
May 22 2016 09:44
именно
@beowulfenator спасибо за вектор. Может запаяю тоже ))
KarmaBot
@KarmaBot
May 22 2016 09:45
Спасибо (+1) для @beowulfenator принято! Текущая карма +20.
Alex
@Alex-Bond
May 22 2016 10:02
Ну если проэкт не гиганский и нет больших мощностей, то лучше сентри. Да и сентри больше ориентирован на ошибки.
В юии просто подключается
Maxim Mukharev
@Carw
May 22 2016 10:11
@Alex-Bond ага, спасибо, тоже гляну )
Alex
@Alex-Bond
May 22 2016 10:11
@Carw личная рекомендация - заблочь сохранение ошибок с NotFoundHttpException
Ни то засрет все логи)
Maxim Mukharev
@Carw
May 22 2016 10:15
записал себе в заметки. Как раз скоро планирую сервер переустанавливать, думаю как настроить его наиболее адекватно для использования нескольких не очень крупных проектов и одного покрупнее. :)
Stas So
@swods
May 22 2016 10:17
Уважаемые, не могу догнать как передать в checkAccess у REST кастомные параметры, к примеру, мне нужно еще проверять app_token
http://api.sp.loc/v1/users?auth_key=kBXTbP6XFbGO19q9aZLBZUzF2uaJvS4V&app_token=pYtvhbIi_qgzDW8jSPL_cvWEtHZgc56c
Stas So
@swods
May 22 2016 10:24
вообще видимо вот так Yii::$app->request->get('app_token');
@swods спасибо мне
KarmaBot
@KarmaBot
May 22 2016 10:24
Так не честно, @swods. Нельзя добавлять карму самому себе.
Stas So
@swods
May 22 2016 10:24
-.-
Konstantin Sirotkin
@beowulfenator
May 22 2016 10:30
@Alex-Bond 404 все равно надо анализировать
хотя наверное лучше это делать через логи веб-сервера, а не через логи yii
а что за сентри?
Alex
@Alex-Bond
May 22 2016 10:31
This message was deleted
jq
ой
не то
вот
VitaliyGit
@VitaliyGit
May 22 2016 10:40
подскажите, как выбрать последовательность применений миграций? можно ли выбрать, чтобы апнулась определенная?
Просто у меня в одной миграции создается таблица и внешние ключи на другие таблицы, но другие таблицы создаются в других миграциях. Правильно ли разбивать их на несколько миграций или лучше все связанные таблицы создавать в одной миграции?
Konstantin Sirotkin
@beowulfenator
May 22 2016 10:44
обычно миграции накатываются хронологически
у них же там вроде в начале дата/время
способа задать их порядок вроде нету
VitaliyGit
@VitaliyGit
May 22 2016 10:45
тогда это как-то грустно
Konstantin Sirotkin
@beowulfenator
May 22 2016 10:45
почему грустно?
как создается, так и выполняется
зачем тебе инжектировать новую миграцию между старыми?
VitaliyGit
@VitaliyGit
May 22 2016 10:57
в принципе, да, буду стараться просто не нарушать хрогологию
Mikhail Kudelia
@StickeydM
May 22 2016 13:03
Как мне настроить GridView чтобы количество строк зависило от количества записей в другой модели, а не в той которую я использую для датапровайдера?
Roman Salnikov
@RSalo
May 22 2016 13:36
@lynicidn с днюхой!
Maxim Mukharev
@Carw
May 22 2016 14:27
@VitaliyGit там же логика прямая. Сначала создаешь таблицы нужные, потом связи. Думать о том какую миграцию запустить, чтобы база в итоге работала - то еще развлечение.
Maxim Mukharev
@Carw
May 22 2016 14:32
Я сначала пытался таблицы делать в базе напрямую, а потом уже миграции сочинять. Тогда у меня тоже подобные мысли возникали о порядке. Потом стал сразу писать миграции, а потом накатывать. Вопросы исчезли.
lynicidn
@lynicidn
May 22 2016 15:20
@RSalo thx )
KarmaBot
@KarmaBot
May 22 2016 15:20
Спасибо (+1) для @RSalo принято! Текущая карма +75.
Mikhail Kudelia
@StickeydM
May 22 2016 15:32
Как мне создать dropdown в форме, в который будут загружаться строки из другой модели?
Больше ссылок по запросу в гугл "yii2 dropdownlist from model"
Mikhail Kudelia
@StickeydM
May 22 2016 15:59
@ezoterik Да, спасибо, я уже нашел, надо было сообщить об этом
@ezoterik Спасибо
KarmaBot
@KarmaBot
May 22 2016 15:59
Спасибо (+1) для @ezoterik принято! Текущая карма +17.
Mikhail Kudelia
@StickeydM
May 22 2016 17:05
Ребят, почему такой скрипт не распознается Yii2?
$this->registerJs(
    '$('.clockpicker').clockpicker(); });'
);
Хотя без yii2 в обычных html все окей
Все, разобрался, нужный скрипт забыл подключить
lynicidn
@lynicidn
May 22 2016 17:36
$clockpicker
\''.$colorPickerId.'\'
Roman Salnikov
@RSalo
May 22 2016 18:50
чуваки, кто делал подменю в другом месте сайта. кто может дать пример?
lynicidn
@lynicidn
May 22 2016 19:04
лайоут
гугли yii2 beginContent
Roman Salnikov
@RSalo
May 22 2016 19:08
@lynicidn не, там проблема в другом есть. я её уже решил. спс=)
KarmaBot
@KarmaBot
May 22 2016 19:08
Спасибо (+1) для @lynicidn принято! Текущая карма +64.
Roman
@Skinka
May 22 2016 19:53
@RSalo подменю в другом месте это как?
Roman Salnikov
@RSalo
May 22 2016 19:56
@Skinka ну, например есть основное меню, а где-то внизу сайта есть еще одно, зависящее от основного. проблема была в том, что при смене роута в нижней менюшке, в основном меню терялась активная вкладка
Roman
@Skinka
May 22 2016 19:57
так роут менялся же)
Roman Salnikov
@RSalo
May 22 2016 19:57
@Skinka ну вот в этом-то и проблема:D
была...
Roman
@Skinka
May 22 2016 19:57
@RSalo не менять роут?)
как решил?
Roman Salnikov
@RSalo
May 22 2016 19:58
@Skinka нет. просто сверять, что этот один и тот же контроллер и делать исходя из этого родительское меню активным
Roman
@Skinka
May 22 2016 19:59
@RSalo ну а там ще вроде была такая фигня! тру пишешь и он родительский включает
Roman Salnikov
@RSalo
May 22 2016 20:00
@Skinka а как ты её вниз страницы тогда перенесешь?
Roman
@Skinka
May 22 2016 20:00
хз! может он видет по роуту
Roman Salnikov
@RSalo
May 22 2016 20:01
@Skinka так роут ведь изменяется:D
Roman
@Skinka
May 22 2016 20:01
ну да
Dave
@aios
May 22 2016 20:10
щас от души душевно в душу насоветуют)
Ivan Orlov
@demisang
May 22 2016 22:01
Есть кто тут?)
Pavel Sokolov
@ComradePashka
May 22 2016 22:09
это соцопрос?™
Roman Salnikov
@RSalo
May 22 2016 22:11
это допрос
Mikhail Kudelia
@StickeydM
May 22 2016 23:20
Люди, у меня почему-то id стала инкрементится на 10 а не на 1
1, потом 11, потом 21, потом 31
что за фигня?
Ivan Orlov
@demisang
May 22 2016 23:22
Как в Yii2 замутить такую схему?
example.com -> /frontend/web/index.php
example.com/api/* -> /backend/web/index.php
То ли уже поздняя ночь, то ли я туплю...
Сервер apache2 обычный, тыкал разные RewriteRule, но лучшее, что мне удавалось, это вывести Not Found из backend по адресу /api/*
так же пробовал создать /frontend/web/api.php с конфигурацией от backend и тоже через RewriteRule, ну результат тот же самый. А через адрес /api.php всё ок работает, но мне нужно без .php
lynicidn
@lynicidn
May 22 2016 23:32
с форума выпилился?
Ivan Orlov
@demisang
May 22 2016 23:32
@lynicidn я?)
lynicidn
@lynicidn
May 22 2016 23:32
ога
атам есть ответ на это
Ivan Orlov
@demisang
May 22 2016 23:33
Да, я на форум давно не заходил)
lynicidn
@lynicidn
May 22 2016 23:33
гугли yii2 apache2 advanced conf
lynicidn
@lynicidn
May 22 2016 23:34
да твой ссыль норм
Ivan Orlov
@demisang
May 22 2016 23:34
ок, спасибо @lynicidn , выручаешь)
Ivan Orlov
@demisang
May 22 2016 23:52

Фигня какая-то...
У меня на самом деле есть только backend и api(я его переименовал из frontend, все пути правильные):

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/site/backend/web
    Options +FollowSymlinks

    <Directory "/var/www/site">
        AllowOverride All
        Options FollowSymLinks Indexes    
    </Directory>
</VirtualHost>

/api/config/main.php

'urlManager' => [
    'enablePrettyUrl' => true,
    'enableStrictParsing' => true,
    'showScriptName' => false,
    'rules' => [
        'POST event' => 'event/create',
        'GET event/<id:\d+>' => 'event/view',
        'GET events' => 'event/index',
    ],
],

url /api/events должен вернуть список событий из БД
ls -la для /backend/web:

lrwxrwxrwx  1 root root   13 May 22 23:37 api -> ../../api/web
drwxrwxrwx  7 root root 4096 May 22 21:47 assets
drwxr-xr-x  2 root root 4096 May 22 19:07 css
...

Url /api/ открывает норм сайт, а вот /api/events пишет Not found через backend приложение...

KarmaBot
@KarmaBot
May 22 2016 23:53
@demisang, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Ivan Orlov
@demisang
May 22 2016 23:54
В файле /backend/web/.htaccess:
<IfModule mod_rewrite.c>
    RewriteEngine on

    # if a directory or a file exists, use the request directly
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    # otherwise forward the request to index.php
    RewriteRule . index.php
</IfModule>
то же самое и в файле /api/web/.htaccess
Я спать лучше пойду)