'PHP 8.3 — це значне оновлення мови PHP. Воно містить багато нових можливостей, таких як явна типізація констант класів, глибоке клонування readonly-властивостей і доповнення до функціоналу генерування випадкових чисел. Як завжди, воно також включає покращення продуктивності, виправлення помилок і загальний рефакторинг.',
'documentation' => 'Документація',
'main_title' => 'Випущено!',
'main_subtitle' => 'PHP 8.3 — це значне оновлення мови PHP.
Воно містить багато нових можливостей, таких як явна типізація констант класів, глибоке клонування readonly-властивостей і доповнення до функціоналу генерування випадкових чисел. Як завжди, воно також включає покращення продуктивності, виправлення помилок і загальний рефакторинг.',
'upgrade_now' => 'Оновіться до PHP 8.3 прямо зараз!',
'readonly_title' => 'Глибоке клонування readonly-властивостей',
'readonly_description' => 'Щоб забезпечити можливість глибокого клонування властивостей, доступних лише для читання, readonly
властивості тепер можуть бути модифіковані один раз, за допомогою магічного методу __clone
.',
'json_validate_title' => 'Нова функція json_validate()
',
'json_validate_description' => 'Функція json_validate()
дозволяє перевірити, чи є рядок синтаксично правильним JSON, при цьому є ефективнішою за функціюjson_decode()
.',
'typed_class_constants_title' => 'Типізовані константи класу',
'override_title' => 'Новий атрибут #[\Override]
',
'override_description' => 'Додавши до методу атрибут #[\Override]
, PHP буде впевнюватися, що метод із такою ж назвою існує у батьківському класі або реалізованому інтерфейсі. Додавання цього атрибута дає можливість зрозуміти, що перевизначення батьківського методу є навмисним і спрощує рефакторинг, оскільки видалення перевизначеного батьківського методу не залишиться непоміченим.',
'randomizer_getbytesfromstring_title' => 'Новий метод Randomizer::getBytesFromString()
',
'randomizer_getbytesfromstring_description' => 'Модуль Random, що додано у PHP 8.2, було розширено новим методом генерування випадкових рядків, які складаються лише з певних байтів. Цей метод дозволяє розробнику легко генерувати випадкові ідентифікатори, такі як імена доменів і числові рядки довільної довжини.',
'randomizer_getfloat_nextfloat_title' => 'Нові методи Randomizer::getFloat()
і Randomizer::nextFloat()
',
'randomizer_getfloat_nextfloat_description' => '
Через обмежену точність і неявне округлення чисел з рухомою комою, генерування незміщеного числа з рухомою комою, що лежить у межах певного інтервалу, є нетривіальним завданням, а загальноприйняті користувацькі рішення можуть генерувати зміщені результати або числа, що виходять за межі заданого діапазону.
Клас Randomizer було розширено двома методами для неупередженого генерування випадкових чисел з рухомою комою. Метод Randomizer::getFloat()
використовує алгоритм y-section, який було опубліковано у статті Drawing Random Floating-Point Numbers from an Interval. Frédéric Goualard, ACM Trans. Model. Comput. Simul., 32:3, 2022.
Лінтер командного рядка тепер може приймати декілька імен файлів для перевірки
', 'new_classes_title' => 'Нові класи, інтерфейси та функції', 'new_dom' => 'Нові методиDOMElement::getAttributeNames()
, DOMElement::insertAdjacentElement()
, DOMElement::insertAdjacentText()
, DOMElement::toggleAttribute()
, DOMNode::contains()
, DOMNode::getRootNode()
, DOMNode::isEqualNode()
, DOMNameSpaceNode::contains()
і DOMParentNode::replaceChildren()
.',
'new_intl' => 'Нові методи IntlCalendar::setDate()
, IntlCalendar::setDateTime()
, IntlGregorianCalendar::createFromDate()
і IntlGregorianCalendar::createFromDateTime()
.',
'new_ldap' => 'Нові функції ldap_connect_wallet()
і ldap_exop_sync()
.',
'new_mb_str_pad' => 'Нова функція mb_str_pad()
.',
'new_posix' => 'Нові функції posix_sysconf()
, posix_pathconf()
, posix_fpathconf()
і posix_eaccess()
.',
'new_reflection' => 'Новий метод ReflectionMethod::createFromMethodName()
.',
'new_socket' => 'Нова функція socket_atmark()
.',
'new_str' => 'Нові функції str_increment()
, str_decrement()
і stream_context_set_options()
.',
'new_ziparchive' => 'Новий метод ZipArchive::getArchiveFlag()
.',
'new_openssl_ec' => 'Підтримка генерування EC-ключів із власними EC-параметрами у модулі OpenSSL.',
'new_ini' => 'Новий параметр INI zend.max_allowed_stack_size
для встановлення максимально дозволеного розміру стека.',
'ini_fallback' => 'php.ini тепер підтримує синтаксис запасних значень/значень за замовчуванням.',
'anonymous_readonly' => 'Анонімні класи тепер доступні лише для читання.',
'bc_title' => 'Застаріла функціональність і зміни у зворотній сумісності',
'bc_datetime' => 'Доречніші винятки у модулі Date/Time.',
'bc_arrays' => 'Присвоєння від\'ємного індексу n
до порожнього масиву тепер гарантує, що наступним індексом буде n + 1
замість 0
.',
'bc_range' => 'Внесено зміни до функціїrange()
.',
'bc_traits' => 'Зміни у повторному оголошенні статичних властивостей у трейтах.',
'bc_umultipledecimalseparators' => 'Константу U_MULTIPLE_DECIMAL_SEPERATORS
оголошено застарілою, натомість рекомендується використовувати U_MULTIPLE_DECIMAL_SEPARATORS
.',
'bc_mtrand' => 'Механізм Mt19937 MT_RAND_PHP
оголошено застарілим.',
'bc_reflection' => 'ReflectionClass::getStaticProperties()
тепер не повертає значення null
.',
'bc_ini' => 'Параметри INI assert.active
, assert.bail
, assert.callback
, assert.exception
і assert.warning
оголошено застарілими.',
'bc_standard' => 'Можливість виклику функції get_class()
і get_parent_class()
без аргументів оголошено застарілою.',
'bc_sqlite3' => 'SQLite3: Режим помилок за замовчуванням встановлено на винятки.',
'footer_title' => 'Краща продуктивність, кращий синтаксис, покращена безпека типів.',
'footer_description' => 'Для завантаження початкового коду PHP 8.3 відвідайте сторінку downloads. Двійкові файли Windows можна знайти на сайті PHP for Windows. Перелік змін описано на сторінці ChangeLog.
Посібник з міграції знаходиться у посібнику з PHP. Будь ласка, ознайомтеся з ним, щоб отримати детальніший список нових функцій і несумісних змін.
', ];