Вот и покажите, как именно "некорректно" она работает.
для этого нужно три строчки: вот "очень длинное значение", вот его хэш, вот validatePassword выводит true.
И если внезапно выяснится, что validatePassword прекрасно работает с любыми значениями, то значит проблема не в нем, а где-то ещё
Вы пришли сюда с вопросом "Как сгенерировать безопасный хэш в yii2?".
Ответ на этот вопрос очевиден: использовать Yii::$app->security->generatePasswordHash()
Я не вижу, какая еще помощь тут нужна
Все эти веселые картинки не имеют отношения к утверждению "validatePassword всегда выводит true."
Для доказательства этого утверждения не нужно приводить кучу скриншотов, а достаточно привести код в три строчки: вот "очень длинное значение", вот его хэш, вот validatePassword выводит true.
Непонятно, что вы этим хотели сказать.
Соль в хэше и так есть, добавлять от себя ничего не надо.
Автору это тоже как корове седло - у него, якобы, хэши не проверяются, и добавление соли вряд ли ему поможет.
В таких вопросах нужна конкретика.
попробуйте обойтись без точных определений типа "большое количество", "моментально" и вместо них привести примерные цифры.
Stalker_RED, речь шла про обработку исключений, а не предупреждений.
Хотя теперь вижу, что ссылка была и про error handler. Но его роль сводится всего лишь к выбросу исключения.
То есть вместо колупания с трассировкой вручную все сводится к той же обработке исключений. Очень удобно
Stalker_RED, вот как раз эта функция тут не нужна - вся трассировка уже присутствует в объекте исключения.
правда при стрингизации она выводится в укороченной форме, но есть getTrace()
"Уведомления должен посылать PHP скрипт" - это, как бы, очевидно. Светить ключ от телеги на клиенте даже совсем дебил не будет.
"порядок тел в свойстве запроса с обфускацией" - это какой-то детский лепет. Вы явно никогда с такой задачей не сталкивались, а сейчас высосали эти рекомендации из пальца. Обойти эту "защиту" в 10 раз быстрее, чем сделать. Причем она еще и глючить будет неимоверно, "в зависимости от времени".
zkrvndm, если вы попробуете вывести $e, то РНР его прекрасно выведет, потому что в этом объекте реализован метод __toString().
Но речь сейчас не об этом. В глобальном обработчике можете отправлять как угодно, можете и по отдельности вызывать $e->getFile() и $e->getMessage(). Хотя по мне трассировка вызовов гораздо важнее. Главное чтобы это было написано в одном месте, а не раскидано по коду
Единый try catch тоже сгодится, хотя чисто по структуре, в роутере ему не место.
Я нигде не писал, что в $e->getMessage() содержится имя файла.
Отправка в телеграм - это тот же вывод.
И за него должен отвечать определенный блок программы.
В РНР можно определить обработчик исключений, и прописать там отправку куда угодно. В одном месте, а не распихивать эту отправку по всему коду.
Я писал выше, что объединять в одном классе и саму сущность (опрос) и CRUD для неё - это не очень хорошая практика. Но для простоты можно сделать в одном.
Что должен делать метод vote(), я не очень понимаю.
Но в целом да, у класса Опрос должен быть метод пройтиОпрос, который должен возвращать экземпляр еще одного класса, РезультатОпроса.
для этого нужно три строчки: вот "очень длинное значение", вот его хэш, вот validatePassword выводит true.
И если внезапно выяснится, что validatePassword прекрасно работает с любыми значениями, то значит проблема не в нем, а где-то ещё