diff --git a/reference/mongodb/architecture.xml b/reference/mongodb/architecture.xml index a87641fa5..f6989cc19 100644 --- a/reference/mongodb/architecture.xml +++ b/reference/mongodb/architecture.xml @@ -1,5 +1,5 @@ - + Архитектура и внутреннее устройство драйвера @@ -674,6 +674,24 @@ class UpperClass implements MongoDB\BSON\Persistable { + + "bson" + + + Превращает BSON массив в MongoDB\BSON\PackedArray + и BSON документ в MongoDB\BSON\Document, + независимо от того, есть ли у BSON документа свойство __pclass + . + + + + Значение bson доступно только для трёх корневых типов, + но не в отображениях для конкретных полей. + + + + + любая другая строка @@ -718,7 +736,9 @@ class UpperClass implements MongoDB\BSON\Persistable { MongoDB\Driver\Cursor::setTypeMap для объекта MongoDB\Driver\Cursor или аргумента $typeMap в - MongoDB\BSON\toPHP. Каждый из трёх + MongoDB\BSON\toPHP, + MongoDB\BSON\Document::toPHP и + MongoDB\BSON\PackedArray::toPHP. Каждый из трёх классов (root, document, и array) может быть задан индивидуально, в дополнение к типам полей. diff --git a/reference/mongodb/bson/int64/construct.xml b/reference/mongodb/bson/int64/construct.xml index c79e24044..388c8fecd 100644 --- a/reference/mongodb/bson/int64/construct.xml +++ b/reference/mongodb/bson/int64/construct.xml @@ -1,29 +1,74 @@ - + - MongoDB\BSON\Int64::__construct - Создаёт новый Int64 (не используется) + Создаёт новый Int64 &reftitle.description; - final private MongoDB\BSON\Int64::__construct - + final public MongoDB\BSON\Int64::__construct + intstringvalue - MongoDB\BSON\Int64 объекты создаются путём - преобразования из 64-разрядного целочисленного типа BSON на 32-разрядной платформе и не могут быть - созданы напрямую. + Создаёт новый экземпляр MongoDB\BSON\Int64 + для заданного целого числа. &reftitle.parameters; - &no.function.parameters; + + + value (intstring) + + + Значение, присваиваемое экземпляру Int64. + Это значение может быть предоставлено как целое число (int) или строка (string), + последнее требуется на 32-битных платформах для представления 64-битных значений. + + + + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + PECL mongodb 1.16.0 + + + Метод стал доступен для поддержки создания экземпляров Int64 + при работе с необработанным BSON. + + + + + + + + + + + &reftitle.errors; + + &mongodb.throws.argumentparsing; + Выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException, + если строка value не может быть разобрана как 64-битное целое число. + diff --git a/reference/oci8/ocilob/read.xml b/reference/oci8/ocilob/read.xml index 8d8dcec12..28f9e29bd 100644 --- a/reference/oci8/ocilob/read.xml +++ b/reference/oci8/ocilob/read.xml @@ -1,5 +1,5 @@ - + @@ -14,14 +14,13 @@ intlength - Читает и возвращает length байт данных с текущей - позиции объекта LOB. + Читает length байтов (BLOB) или символов (CLOB) + с текущей позиции объекта LOB. - Чтение останавливается, если длина прочтённых данных равна - length или если достигнут конец объекта. - Внутренний указатель перемещается на столько байт, сколько было - прочитано. + Чтение останавливается, когда прочитано length байтов для BLOB, + length символов для CLOB или когда достигнут конец объекта. + Внутренний указатель объекта будет сдвинут на количество прочитанных байт/символов. @@ -33,7 +32,8 @@ length - Длина считываемых данных, в байтах. Большие значения округляются вниз до 1 MB. + Длина считываемых данных, в байтах (BLOB) или символах (CLOB). + Большие значения округляются вниз до 1 MB. diff --git a/reference/pdo_mysql/constants.xml b/reference/pdo_mysql/constants.xml index 899d406cd..00131630b 100644 --- a/reference/pdo_mysql/constants.xml +++ b/reference/pdo_mysql/constants.xml @@ -1,5 +1,5 @@ - +
&reftitle.constants; @@ -8,26 +8,27 @@ PDO::MYSQL_ATTR_USE_BUFFERED_QUERY - (int) + (bool) - Если этот атрибут установлен в &true; в - PDOStatement, MySQL-драйвер - будет использовать буферизованные версии API MySQL. - Если вы пишете переносимый на другие библиотеки код, - вы должны использовать PDOStatement::fetchAll. + По умолчанию все запросы выполняются + в буферизованном режиме. + Если этот атрибут установлен в значение &false; + для объекта PDO, + драйвер MySQL будет использовать небуферизованный режим. - Буферизация запросов в MySQL + Установка небуферизованного режима MySQL getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') { - $stmt = $db->prepare('select * from foo', - array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true)); -} else { - die("приложение работает только с mysql; Следует использовать \$stmt->fetchAll() вместо этого"); +$pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_password'); +$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false); + +$unbufferedResult = $pdo->query("SELECT Name FROM City"); +foreach ($unbufferedResult as $row) { + echo $row['Name'] . PHP_EOL; } ?> ]]> diff --git a/reference/session/security.xml b/reference/session/security.xml index 92abb31d0..b5d8495b6 100644 --- a/reference/session/security.xml +++ b/reference/session/security.xml @@ -1,14 +1,13 @@ - + - Безопасность сессий Внешние ссылки: Атака "Фиксация сессии" - Работа с HTTP-сессиями является основой веб-безопасности. Должны быть применены + Работа с HTTP-сессиями является основой веб-безопасности. Должны быть применены все возможные меры для обеспечения безопасности сессии. Разработчик должен включать и использовать соответствующие настройки соответствующим образом. @@ -31,7 +30,7 @@ приводят к ухудшению удобства для конечного пользователя. Например, если необходимо защитить пользователя от простейших методов социальной инженерии, следует включить - session.use_only_cookies. В данном случае со стороны + session.use_only_cookies. В данном случае со стороны пользовательского ПО обязательна поддержка cookie, иначе механизм сессий не будет работать. @@ -149,7 +148,8 @@ - В версиях PHP до 7.1.0 необходимо использовать CSPRNG, то есть /dev/urandom или + В версиях PHP до 7.1.0 необходимо использовать CSPRNG, + например, /dev/urandom или random_bytes и функции хеширования для генерации нового идентификатора сессии. session_create_id имеет встроенная функциональность обнаружения коллизий и генерирует идентификатор @@ -182,7 +182,7 @@ Идентификатор сессии должен пересоздаваться при повышении привилегий пользователя, например при аутентификации. Функция session_regenerate_id должна вызываться до записи - авторизационной информации в $_SESSION. + авторизационной информации в $_SESSION. (session_regenerate_id сохраняет данные текущей сессии автоматически). Убедитесь, что только текущая сессия отмечена как авторизованная. @@ -209,8 +209,8 @@ старых сессий сохраняются до момента запуска сборщика мусора. В то же время, разработчики должны убедиться, что данные истёкших сессий удалены. Однако разработчики НЕ должны удалять данные активных сессий немедленно. - Например, никогда не вызывайте session_regenerate_id(true); - и session_destroy совместно для активных сессий. + Например, никогда не вызывайте session_regenerate_id(true); + и session_destroy совместно для активных сессий. Это может показаться противоречивым, но это обязательное требование. @@ -236,7 +236,7 @@ Вместо немедленного удаления старых сессий вы должны сохранять их непродолжительное время, например, установив специальный флаг и - время окончательного истечения сессии в $_SESSION, запретив + время окончательного истечения сессии в $_SESSION, запретив кому-либо обращаться к этим данным. @@ -264,9 +264,9 @@ - Не недооценивайте риск DoS. use_strict_mode=On + Не недооценивайте риск DoS. session.use_strict_mode=On обязателен для общей безопасности идентификаторов сессий! - Все сайты должны использовать use_strict_mode. + Все сайты должны использовать session.use_strict_mode. DoS (отказ в обслуживании) может произойти только тогда, когда аккаунт @@ -339,7 +339,7 @@ Для уменьшения риска DoS с использованием блокировки сессий, минимизируйте их. Используйте блокировку "read only", когда сессию не нужно обновлять. Используйте опцию 'read_and_close' с session_start. - session_start(['read_and_close'=>1]); + session_start(['read_and_close'=>1]); Закрывайте сессию с помощью session_commit сразу, как только вы закончили обновлять $_SESSION. @@ -415,7 +415,7 @@ в качестве ключей автологина с помощью setcookie. Используйте безопасное хеширование, посильнее чем SHA-2, например SHA-256 или выше со случайными данными из random_bytes - или /dev/urandom. + или /dev/urandom. @@ -515,9 +515,9 @@ "cookie". Большинство приложений должны использовать cookie для идентификатора сессии. - Если session.use_only_cookies=Off, + Если session.use_only_cookies=Off, модуль сессии будет использовать идентификатор, установленный - через GET/POST/URL, если "cookie" не была выставлена заранее. + через GET или POST, если "cookie" не была выставлена заранее. @@ -527,7 +527,7 @@ Крайне рекомендуется включать - session.use_strict_mode. По умолчанию не включено. + session.use_strict_mode. По умолчанию не включено. Это не позволит сессионному модулю использовать неинициализированные @@ -539,7 +539,7 @@ Из-за особенностей спецификации cookie, атакующий может сделать cookie с идентификатором сессии неудаляемой с помощью локальной базы cookie или JavaScript-инъекцией. - session.use_strict_mode может не дать + session.use_strict_mode может не дать атакующему использовать этот идентификатор. @@ -548,7 +548,7 @@ и выставить его жертве. Они должны будут поддерживать сессию в активном состоянии для злоупотреблений. Атакующим понадобится совершить дополнительные действия для проведения атаки по этому сценарию. - Поэтому session.use_strict_mode + Поэтому session.use_strict_mode служит как предотвращение этому. @@ -610,7 +610,7 @@ session.gc_maxlifetime=[выбрать наименьший из возможных] - session.gc_maxlifetime настройка для удаления устаревших + session.gc_maxlifetime настройка для удаления устаревших идентификаторов сессий. Полагаться на эту опцию категорически не рекомендуется. Вы должны управлять жизненным циклом сессии самостоятельно. @@ -688,7 +688,7 @@ Если session.use_trans_sid включён, то рекомендуется использовать эту опцию, если это возможно. Это уменьшает риск для инъекции сессионного ID. Если ваш сайт - находится по адресу http://example.com/, то установите этой опции значение http://example.com/. + находится по адресу http://example.com/, то установите этой опции значение http://example.com/. Обратите внимание, что при использовании HTTPS, браузер не отправляет referrer заголовок. Таким образом, этот параметр не является достаточно надёжным показателем безопасности, но, всё же, рекомендуется его использовать. @@ -702,10 +702,10 @@ Убедитесь, что содержимое HTTP не кешируется для аутентификационной сессии. Допускается кешировать только неконфиденциальный контент. Иначе - содержимым могут воспользоваться. Можно использовать значение "private", + содержимым могут воспользоваться. Можно использовать значение "private", если содержимое HTTP не содержит чувствительные к безопасности данные. Учтите, что - "private" может оставлять конфиденциальные данные в общем кеше клиентов. - Значение "public" можно использовать только, если HTTP-контент вообще не содержит + "private" может оставлять конфиденциальные данные в общем кеше клиентов. + Значение "public" можно использовать только, если HTTP-контент вообще не содержит никаких конфиденциальных данных. diff --git a/reference/strings/functions/utf8-decode.xml b/reference/strings/functions/utf8-decode.xml index 48fbbb6a0..ce6849a54 100644 --- a/reference/strings/functions/utf8-decode.xml +++ b/reference/strings/functions/utf8-decode.xml @@ -1,5 +1,5 @@ - + @@ -131,6 +131,107 @@ string(1) "?" + + &reftitle.notes; + + Устаревание и альтернативы + + Функция устарела, начиная с PHP 8.2.0 и будет удалена в будущей версии. + Существующие варианты использования должны быть проверены и заменены подходящими альтернативами. + + + Аналогичной функциональности можно достичь с помощью функции mb_convert_encoding, + которая поддерживает ISO-8859-1 и многие другие кодировки символов. + + + +]]> + + &example.outputs; + + + + + + + Другие опции, которые могут быть доступны в зависимости от установленных модулей: + UConverter::transcode и iconv. + + + Все следующие варианты дают один и тот же результат: + + + +]]> + + &example.outputs; + + + + + Указание '?' в качестве опции 'to_subst' + в методе UConverter::transcode даёт тот же результат, + что и функция utf8_decode для строк, + которые являются недопустимыми или не могут быть представлены в ISO 8859-1. + + + '?'] +); +var_dump($iso8859_1_string); +?> +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; diff --git a/reference/strings/functions/utf8-encode.xml b/reference/strings/functions/utf8-encode.xml index 013a28d49..bb35b6127 100644 --- a/reference/strings/functions/utf8-encode.xml +++ b/reference/strings/functions/utf8-encode.xml @@ -1,5 +1,5 @@ - + @@ -122,6 +122,85 @@ echo bin2hex($utf8_string), "\n"; + + &reftitle.notes; + + Устаревание и альтернативы + + Функция устарела, начиная с PHP 8.2.0 и будет удалена в будущей версии. + Существующие варианты использования должны быть проверены и заменены подходящими альтернативами. + + + Аналогичной функциональности можно достичь с помощью функции mb_convert_encoding, + которая поддерживает ISO-8859-1 и многие другие кодировки символов. + + + +]]> + + &example.outputs; + + + + + + + Другие опции, которые могут быть доступны в зависимости от установленных модулей: + UConverter::transcode и iconv. + + + Все следующие варианты дают один и тот же результат: + + + +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; diff --git a/reference/url/functions/urlencode.xml b/reference/url/functions/urlencode.xml index 99028b03d..959f02b10 100644 --- a/reference/url/functions/urlencode.xml +++ b/reference/url/functions/urlencode.xml @@ -1,5 +1,5 @@ - + @@ -58,10 +58,19 @@ '; ?> ]]> + &example.outputs; + + +]]> + @@ -70,11 +79,23 @@ echo ''; '; ?> ]]> + &example.outputs; + + +]]> +