Страница 1 из 1
[3.2] Изменения в расширениях по сравнению с версией 3.1
Добавлено: 01.07.2016 11:55
Борис Бердичевский
Только здесь сумел открыть тему.
Давайте заносить сюда важную информацию для разработчиков расширений, чтобы переводить расширения на 3.2.
Итак, что мной замечено.
В версии 3.1 было:
Код: Выделить всё
$username = utf8_normalize_nfc(request_var('username', '', true));
В версии 3.2 должно быть:
Код: Выделить всё
$username = utf8_clean_string($this->request->variable('username', '', true));
Полагаем, что переменная
request
имеется в классе в коде листенера.
Re: Изменения в расширениях по сравнению с версией 3.1
Добавлено: 01.07.2016 12:26
LavIgor
Борис Бердичевский писал(а): В версии 3.2 должно быть
Не обязательно.
request_var
сейчас задаётся
вот здесь и будет удалена только в phpBB 3.3.
Re: Изменения в расширениях по сравнению с версией 3.1
Добавлено: 01.07.2016 13:06
Борис Бердичевский
Ну, если будет удалена, то лучше уже сейчас заменить. А что насчёт замены utf8_normalize_nfc
на utf8_clean_string
? Это я опытным путём обнаружил.
Re: Изменения в расширениях по сравнению с версией 3.1
Добавлено: 01.07.2016 13:26
LavIgor
Борис Бердичевский, utf8_normalize_nfc
и так вызывается при использовании $request->variable
, поэтому дополнительная "обёртка" больше не нужна.
Re: Изменения в расширениях по сравнению с версией 3.1
Добавлено: 01.07.2016 13:50
Борис Бердичевский
Гм, вот кусок кода из captcha/plugins/qa:
Код: Выделить всё
/**
* The actual validation
*/
function check_answer()
{
global $db, $request;
$answer = ($this->question_strict) ? $request->variable('qa_answer', '', true) : utf8_clean_string($request->variable('qa_answer', '', true));
Отправлено спустя 4 минуты 51 секунду:
Да,
utf8_clean_string
в моём случае не нужно:
Код: Выделить всё
$username = $this->request->variable('username', '', true);
Re: Изменения в расширениях по сравнению с версией 3.1
Добавлено: 01.07.2016 14:00
LavIgor
Борис Бердичевский, clean используется для своих целей (например, есть поле username, а есть также username_clean).
В подробности этого вопроса не вдавался, но в Coding Guidelines сказано следующее:
phpBB offers a special method utf8_clean_string
which can be used to make sure string identifiers are unique. This method uses Normalization Form Compatibility Composition (NFKC) instead of NFC and replaces similarly looking characters with a particular representative of the equivalence class. This method is currently used for usernames and group names to avoid confusion with similarly looking names.
Re: Изменения в расширениях по сравнению с версией 3.1
Добавлено: 01.07.2016 14:06
Борис Бердичевский
Мне это нужно для печати в логе. Так что не нужно применять эту функцию. А в существующем коде проверки ответа, как я понял, есть вариант сверки строгий (большие и малые буквы) и обычный -- в этом случае и применяют utf8_clean_string
.
Re: [3.2] Изменения в расширениях по сравнению с версией 3.1
Добавлено: 23.01.2017 10:32
LBeaver