PHP.mk документација

Други промени

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

migration85.other-changes.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека migration85.other-changes.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
Други промени

Референца за `migration85.other-changes.php` со подобрена типографија и навигација.

migration85.other-changes.php

Други промени

Core промени

Јадро

Тајмерот со висока резолуција (hrtime()) на macOS сега користи препорачано clock_gettime_nsec_np(CLOCK_UPTIME_RAW) API наместо mach_absolute_time().

CGI/CLI

На -z or --zend-extension опцијата е отстранета бидејќи беше нефункционална. Користи -d zend_extension=[path] instead.

PDO_ODBC

Однесувањето при преземање за поголеми колони е променето. Наместо да презема блокови од 256 бајти, PDO_ODBC ќе се обиде да преземе поголема големина на блок; моментално, ова е големината на страницата минус преоптоварувањето на низата. Возачите што враќаат SQL_NO_TOTAL во SQLGetData исто така се подобро обработени. Ова треба да ја подобри компатибилноста и перформансите.

Промени во SAPI модули

CLI

Обидот да се постави наслов на процес што е предолг со cli_set_process_title() сега ќе пропадне наместо тивко да го скрати дадениот наслов.

Додадена е нова --ini=diff опција за печатење INI поставки променети од вградената стандардна вредност.

FPM

FPM со httpd ProxyPass опционално ги декодира целосната патека на скриптата. Додадено е INI поставување fastcgi.script_path_encoded за да се спречи ова ново однесување.

Ограничувањето на дневникот за пристап на FPM сега се почитува log_limit value.

Променети функции

Меѓународен

grapheme_extract() правилно доделува $next вредност при прескокнување на невалидни почетни бајти. Претходно имаше случаи кога ќе укажуваше на почетокот на границата на графемата наместо на крајот.

transliterator_get_error_code(), transliterator_get_error_message(), TransLiterator::getErrorCode()Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во TransLiterator::getErrorMessage() се отфрлени false од унијата на типот на враќање. Враќање false всушност никогаш не беше можно.

Следните функции сега поддржуваат $locale аргумент: grapheme_strpos(), grapheme_stripos(), grapheme_strrpos(), grapheme_strripos(), grapheme_substr(), grapheme_strstr() and grapheme_stristr()

LDAP

ldap_get_option() сега прифаќа null врска, како ldap_set_option(), за да се овозможи преземање на глобални опции.

libxml

libxml_set_external_entity_loader() сега има формален тип на враќање од true.

OpenSSL

openssl_public_encrypt() and openssl_private_decrypt() имаат нов параметар $digest_algo што овозможува специфицирање на алгоритмот за хеш дигест за OAEP подлога.

openssl_sign() and openssl_verify() имаат нов параметар $padding за да се овозможи користење на посигурна RSA PSS подлога.

openssl_cms_encrypt() $cipher_algo параметарот може да биде стринг со името на шифрата. Тоа овозможува користење на повеќе алгоритми вклучувајќи AES GCM шифрирачки алгоритми за автентицирани завиткани податоци.

PCNTL

pcntl_exec() сега има формален тип на враќање од false.

pcntl_waitid() прифаќа дополнителен аргумент resource_usage за собирање на различни специфични метрики за платформата за процесот на детето.

PDO_PGSQL

Pdo\Pgsql::copyFromArray() сега поддржува iterable inputs.

Pdo\Pgsql::setAttribute() and Pdo\Pgsql::prepare() поддржува поставување PDO::ATTR_PREFETCH на 0 што влегува во режим на мрзливо преземање. Во овој режим, изјавите не можат да се извршуваат паралелно.

PostgreSQL

pg_copy_from() сега поддржува iterable inputs.

pg_connect() проверува дали аргументот connection_string содржи бајт нула.

pg_close_stmt() проверува дали аргументот statement_name содржи бајт нула.

POSIX

posix_ttyname() го поставува last_error на EBADF кога ќе наиде на неважечки дескриптор на датотека.

posix_isatty() крева E_WARNING порака кога ќе наиде на неважечки дескриптор на датотека.

posix_fpathconf() проверува неважечки дескриптори на датотеки и го поставува last_error на EBADF и покренува E_WARNING message.

Рефлексија

Излезот од ReflectionClass::__toString() за enums е променет за подобро да укаже дека класата е enum, и дека случаите на enum се случаи на enum наместо нормални константи на класа.

Излезот од (стандардно) ќе го направи спротивното. за својства со куки е променет за да укаже какви куки има својството, дали тие куки се конечни и дали својството е виртуелно. Ова исто така влијае на излезот на ReflectionClass::__toString() кога класата содржи својства со куки.

Приклучоци

socket_create()/socket_bind() може да создаде AF_PACKET семејни сокети.

socket_getsockname() го добива индексот на интерфејсот и неговата текстуална репрезентација со AF_PACKET socket.

(libcurl >= 8.7.0),

На $use_include_path аргумент за gzfile(), gzopen() and readgzfile() функции е променет од int to bool.

gzfile(), gzopen() and readgzfile() функциите сега ги почитуваат стандардните контексти на стримот.

Други промени во екстензиите

cURL

curl_setopt() with CURLOPT_FOLLOWLOCATION вредноста на опцијата веќе не се третира како булова, туку како цел број за да се справи со CURLFOLLOW_OBEYCODE and CURLFOLLOW_FIRSTONLY.

да провери дали дадена датотека е валидна слика. Користете наменско решение како што е

Датотеката е надградена од 5.45 на 5.46.

Типот на враќање на finfo_close() Стандардната вредност на true, наместо bool.

Меѓународен

Внатрешниот механизам за грешки на Intl е модернизиран за да укажува попрецизно кое место на повикување предизвикало каква грешка. Покрај тоа, некои исклучоци од ext/date се завиткани во IntlException now.

Lexbor

Се додава секогаш овозможена lexbor екстензија. Таа го содржи lexbor библиотеката што беше одвоена од ext/dom за повторна употреба меѓу други екстензии. Новата екстензија не е директно изложена на userland.

DOMImplementation::getFeature()

На Opcache екстензија сега секогаш е вградена во PHP бинарниот фајл и секогаш се вчитува. INI директивите opcache.enable and opcache.enable_cli сè уште се почитуваат.

PCRE

Надградена pcre2lib од 10.44 на 10.46.

PDO_Sqlite

Зголичена минимална верзија на поддршка од 3.7.7 на 3.7.17.

script.bat -h

Типовите на враќање на readline_add_history(), readline_clear_history()Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во readline_callback_handler_install() се променети во true, наместо bool.

Рефлексија

ReflectionConstant веќе не е конечен.

Промени во ракувањето со INI датотеки

Јадро

Додадено fatal_error_backtraces за контрола дали фаталните грешки треба да вклучуваат backtrace.

Додадено INI поставување max_memory_limit само за стартување за контрола на максималниот memory_limit што може да се конфигурира при стартување или во тек на извршување. Надминувањето на оваа вредност испушта предупредување, освен ако не е поставено на -1, и наместо тоа го поставува memory_limit на тековниот max_memory_limit.

DOMImplementation::getFeature()

Додадено opcache.file_cache_read_only за поддршка на само за читање opcache.file_cache директориум, за употреба со системи за датотеки само за читање (на пр. Docker контејнери само за читање). Најдобро се користи со opcache.validate_timestamps=0, opcache.enable_file_override=1Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во opcache.file_cache_consistency_checks=0.

Забелешка: Кеш генериран со различна верзија на PHP, различна патека до датотеката или различни поставки (вклучувајќи кои екстензии се вчитани), може да биде игнориран.

а исечувањето со праг сега користи ист алгоритам како системската libgd. opcache.jit_hot_loop сега е 61 (прост број) за да се спречи да биде множител на броевите на итерациите на циклусот. Се препорачува овој параметар да биде поставен на прост број.

Промената на OPcache SHM кога веќе е поставена сега правилно ќе пријави неуспех наместо тивко да не прави ништо и да прикажува погрешни вредности во PHPInfo. opcache.memory_consumption Додадено openssl.libctx за избор на типот на контекстот на OpenSSL библиотеката. Може да се користи или прилагоден libctx за секоја нишка или еден глобален (стандарден) libctx.

OpenSSL

Отстранете ги OPкодовите за споредби на идентитет со булови, особено за

Оваа функција е достапна кога PHP е поврзан со библиотеки на Oracle Database од верзија 10

Јадро

Додадете специјализација на OPкод за match(true) pattern.

Создавањето објекти за исклучоци сега е многу побрзо. === [] and !== [] comparisons.

Деловите од кодот што користеа SSE2 се прилагодени да користат SIMD и со ARM NEON.

Воведен е TAILCALL VM, овозможен стандардно при компајлирање со Clang>=19 на x86_64 или aarch64. TAILCALL VM е исто толку брз како HYBRID VM што се користи при компајлирање со GCC. Ова ги прави PHP бинарните датотеки компајлирани со Clang>=19 исто толку брзи како бинарните датотеки компајлирани со GCC. Перформансите на CALL VM, што се користи со други компајлери, исто така значително се подобрија.

Сега се избегнува создавање дополнителни копии на низи при конвертирање низи за употреба во колатор.

Меѓународен

Подобрени перформанси на преземање TLS променливи во JIT-компилиран код во билдови што не се Glibc.

MBString

Воведен е TAILCALL VM, овозможен стандардно при компајлирање со Clang>=19 на x86_64 или aarch64. TAILCALL VM е исто толку брз како HYBRID VM што се користи при компајлирање со GCC. Ова ги прави PHP бинарните датотеки компајлирани со Clang>=19 исто толку брзи како бинарните датотеки компајлирани со GCC. Перформансите на CALL VM, што се користи со други компајлери, исто така значително се подобрија.

DOMImplementation::getFeature()

Подобрени перформанси на следниве методи:

SPL

Подобрени перформанси на функциите на низите со повици ( SplFixedArray.

Стандардно

Подобрени перформанси наarray_find(), array_filter(), array_map(), usort(), ...).

Подобрени перформанси со безимени повторувања со избегнување создавање привремени низи и нивно повторно парсирање. urlencode() and rawurlencode().

Мали подобрувања во unpack() перформанси на пристап до својства.

Мали подобрувања во pack() performance.

перформанси и намалена потрошувачка на меморија. array_chunk() performance.

XML

Мали подобрувања во XMLReader перформанси на пристап до својства.

Мали подобрувања во XMLWriter перформанси и намалена потрошувачка на меморија.

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.