pavel
но буду рад взглянуть на ваш способ этого всего)
SiZE
тестирование? не, не слышал )))
Sergey
Toly
https://github.com/yiisoft/yii2/pull/12891 написал немного кода, буду рад конструктивным замечаниям
Разметку поломал. Должны быть пробелы, не табы. По идее, в diff должно быть две строки. Плюс, \Yii - так лучше не писать, добавь use Yii в класс.
Toly
С табами погорячился, упустил детали.
Виталий
ты просто вызвал 2 функции, какие могу быть замечания?
Посмотрел результат, в логах производительности не очень информативные записи получились
Виталий
\Yii::beginProfile($key); принимает строку, а в функцию get() приходит mixed
Виталий
Получается, ошибка
Виталий
Есть идеи, как сделать записи в логе более информативными?
Виталий
md5-хеш вряд ли является информативным
Andrey
Если честно, не понимаю, в чём преимущество use Yii перед \Yii. Поясните, пожалуйста.
Если пространство имён слишком большое то указываешь use очень\большой\неймспейс, а потом там где надо юзаешь просто неймспейс
Andrey
А так привычка хорошая
Toly
Если честно, не понимаю, в чём преимущество use Yii перед \Yii. Поясните, пожалуйста.
Причина проста - уменьшить количество diff при следующих коммитах в этот файл
Виталий
Как это поможет уменьшит diff?
Toly
Code-Style condition всегда с оглядкой на этот фактор разрабатывается.
Виталий
Если пространство имён слишком большое то указываешь use очень\большой\неймспейс, а потом там где надо юзаешь просто неймспейс
Давайте обсуждать конкретную ситуацию, а не абстрактную. Рекомендация для замены выдана конкретная, не понимаю, из чего она следует.
Toly
Коммит 1: + \Yii::beginProfile($key); + \Yii::endProfile($key); Коммит 2: // Кому-то понадобился импорт для чистоты кода (речь не обязательно об \Yii) + use Yii; - \Yii::beginProfile($key); + Yii::beginProfile($key); - \Yii::endProfile($key); + Yii::endProfile($key);
Toly
Следующему контрибьютору придётся вносить изменения, которые для реализации его собственной функциональности не необходимы, однако, для соблюдения консистентности они нужны.
Toly
Это попытка подъебать?
Sergey
почему ему придется вносить эти изменения?
Toly
Потому что в каких-то местах будет \Yii, а в каких-то Yii, что нарушает консистентность кода
Sergey
наличие функций с одним return и несколькими тоже нарушает консистентность кода?
Toly
Речь идёт о Code-Style, вопрос не в тему имхо
Sergey
use в алфавитном порядке?
Toly
Ну, это уже перебор, нет?)
Sergey
т.е. то что ты используешь - это консистентность кода, то что не используешь - это перебор
Toly
В некоторых ситуациях это может помогать при сложных слияниях, но это будет требовать постоянного внимания. В случае выше любая IDE может помочь импорнуть класс не отвлекая. Поэтому пмсм это перебор
Sergey
есть PSR, есть codesniffer, если твой код проходит через них то владельцу продукта без разницы используешь ты use или абсолютные пути, а использование своих практик в чужом монастыре не приветствуется
Toly
Ну это же ядро фреймворка. Qiang Xue мне в своё время по рукам надавал за такие коммиты
Toly
Неужели всё это было зря
Toly
Sergey
Неужели всё это было зря
суровый мир opensource https://github.com/yiisoft/yii2/blob/master/framework/console/controllers/HelpController.php#L185
Sergey
https://github.com/yiisoft/yii2/blob/master/framework/base/ErrorHandler.php#L111
Виталий
Если уважаемый Qiang Xue ведёт стандарты по оформлению merge-request, и мой коммит ему не соответствует, готов внести изменения. Но стандарт должен быть публично объявлен.
Виталий
Может, по функциональности есть предложения?
Дмитрий
Привет, как на yii2 запретить одновременно заходить под одним логином?
Sergey
запретить в смысле не пускать или запретить в смысле разлогинивать все предыдущии сессии?
Максим
Кто-то уже решал задачу отправки логов в Telegram?
Дмитрий
Не пускать
SiZE
Кто-то уже решал задачу отправки логов в Telegram?
ну таргет настроить вообще дело 5 секунд пмсм
mr.
Привет анонимным изучателям yii2 и контрибьюторам)
Виталий
https://github.com/yiisoft/yii2/blob/master/framework/assets/yii.activeForm.js#L701
Виталий
Почему сначала вызывается afterValidateAttribute, а потом у этого атрибута меняется статус?
Виталий
Написал обработку function hasError($form) { var attributes = $form.yiiActiveForm('data').attributes; var hasError = false; for (var i = 0; i < attributes.length; i++) { if (attributes[i].status !== 1) { hasError = true; break; } } return hasError; }
Виталий
Но она не работает, потому что status=1 ещё не присвоен
Dmitry
Нужны мидл+ на удалёнку фултайм. Стучитесь в личку!
Виталий
PJAX + клиентская валидация + сценарии ActiveForm не работают вместе?
Виталий
Скиньте пример, если есть рабочий
SiZE
Работают
Виталий
Надо отправить форму onChange при прошедших валидацию полях, указанных в сценарии, как это сделать?
Виталий
Иными словами, первый шаг, как заставить pjax отправить форму без нажатия на submit?
SiZE
Я не у компа надо курить yii.activeform.js
SiZE
По необходимости расширять объект формы
imcarrow
Всем привет. Подскажите, пожалуйста, как в обработчике события afterValidateAttribute получить статус валидации всей формы, чтобы удалить атрибут disabled у кнопки(submit)?
Antony
afterValidateAttribute выполняется после валидации одного аттрибута. Смотри в сторону afterValidate /** * afterValidate event is triggered after validating the whole form. * The signature of the event handler should be: * function (event, messages, errorAttributes) * where * - event: an Event object. * - messages: an associative array with keys being attribute IDs and values being error message arrays * for the corresponding attributes. * - errorAttributes: an array of attributes that have validation errors. Please refer to attributeDefaults for the structure of this parameter. */ afterValidate: 'afterValidate' Ну и вообще глянь тут как все работает https://github.com/yiisoft/yii2/blob/master/framework/assets/yii.activeForm.js В случае чего можно переопределить yii\widgets\ActiveFormAsset и задать свой обработчик yii.activeForm.js
Mikhail
Exception – yii\base\Exception Failed to create directory "/var/www/site/runtime/logs": mkdir(): Permission denied Что-то я не вкурил. Вроде, и 777 выставил, и владельцем поставил nginx:nginx.
Mikhail
Что я упустил?
Toly
nginx не создаёт директорию, это делает обычно php-fpm, смотри из под какого юзера он запущен
Mikhail
Ща
Mikhail
$ ps aux | grep php-fpm root 12735 0.0 0.4 276216 15656 ? Ss 00:03 0:00 php-fpm: master process (/etc/php-fpm.conf) nginx 12739 0.0 0.3 279284 13304 ? S 00:03 0:00 php-fpm: pool www nginx 12740 0.0 0.2 278300 8780 ? S 00:03 0:00 php-fpm: pool www nginx 12741 0.0 0.2 278300 10592 ? S 00:03 0:00 php-fpm: pool www nginx 12742 0.0 0.2 278300 8780 ? S 00:03 0:00 php-fpm: pool www nginx 12743 0.0 0.3 279284 13304 ? S 00:03 0:00 php-fpm: pool www user 13737 0.0 0.0 118516 2248 pts/3 S+ 00:19 0:00 grep —color=auto php-fpm
Toly
Пробуй sudo -u nginx mkdir <dir> Если прав нет, то проблема имеет системный характер
Toly
Убедись, что у тебя selinux не стоит в системе, например
Mikhail
Стоит :(
Mikhail
Fedora 23, есличё.
Mikhail
У меня user не в sudousers
Mikhail
user — это логин
Mikhail
А как выполнить это из-под рута?
Toly
Так же
Mikhail
# sudo -u nginx mkdir /var/www/rap/runtime/logs
Mikhail
Отлично создался каталог
Mikhail
Отключил selinux — заработало. Спасибо.
Mikhail
public function actionIndex() { return $this->render('//index/main'); } По какому принципу выбирается layout?