Новая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Π―Π΄Ρ€ΠΎ PHP

Π₯ΡƒΠΊΠΈ для свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡΠΌ чтСния ΠΈ записи свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ повСдСния. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· Ρ…ΡƒΠΊ get, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ срабатываСт ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ свойства, ΠΈ Ρ…ΡƒΠΊ set, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ срабатываСт ΠΏΡ€ΠΈ записи значСния Π² свойство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π₯ΡƒΠΊΠΈ ΡƒΠΌΠ΅ΡŽΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ свойства Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ β€” Π±Π΅Π· Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

<?php

class Person
{
// Β«Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅Β» свойство. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ нСльзя
public string $fullName
{
get => $this->firstName . ' ' . $this->lastName;
}

// КаТдая опСрация записи значСния свойства ΠΏΡ€ΠΎΠΉΠ΄Ρ‘Ρ‚ Ρ‡Π΅Ρ€Π΅Π· Ρ…ΡƒΠΊ. Π’ свойство Π² ΠΈΡ‚ΠΎΠ³Π΅ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ вСрнётся ΠΈΠ· Ρ…ΡƒΠΊΠ°.
// Доступ ΠΊ свойству для чтСния значСния ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π² стандартном Ρ€Π΅ΠΆΠΈΠΌΠ΅
public string $firstName
{
set => mb_ucfirst(strtolower($value));
}

// КаТдая опСрация записи значСния свойства ΠΏΡ€ΠΎΠΉΠ΄Ρ‘Ρ‚ Ρ‡Π΅Ρ€Π΅Π· Ρ…ΡƒΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сам Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства.
// Доступ ΠΊ свойству для чтСния значСния ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π² стандартном Ρ€Π΅ΠΆΠΈΠΌΠ΅
public string $lastName
{
set {
if (
strlen($value) < 2) {
throw new
\InvalidArgumentException('Блишком короткая фамилия');
}

$this->lastName = $value;
}
}
}

$p = new Person();

$p->firstName = 'ΠΏΡ‘Ρ‚Ρ€';
print
$p->firstName; // ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ "ΠŸΡ‘Ρ‚Ρ€"

$p->lastName = 'ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²';
print
$p->fullName; // ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ "ΠŸΡ‘Ρ‚Ρ€ ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²"

$p->fullName = "ΠŸΡ‘Ρ‚Ρ€ 'ΠŸΠ΅Ρ‚Ρ' ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²"; // Выбросит ΠΎΡˆΠΈΠ±ΠΊΡƒ Error: "Property Person::$fullName is read-only"

?>

АсиммСтричная Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Π’ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи значСния β€” set Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ видимости свойств для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния β€” get.

<?php

class Example
{
// ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ управляСт Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ свойства для чтСния, Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ для записи.
// Π’ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ для чтСния нСльзя ΡΡƒΠΆΠ°Ρ‚ΡŒ сильнСС видимости для записи
public protected(set) string $name;

public function
__construct(string $name)
{
$this->name = $name;
}
}

?>

Π›Π΅Π½ΠΈΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

Π‘ PHP 8.4.0 Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, инициализация ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… откладываСтся Π΄ΠΎ обращСния ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. Π—Π° счёт Π»Π΅Π½ΠΈΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ доступ ΠΊ отсрочкС получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ зависимостСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

<?php

class Example
{
public function
__construct(private int $data) {}

// ...
}

$initializer = static function (Example $ghost): void {
// Fetch data or dependencies
$data = getData();

// Initialize
$ghost->__construct($data);
};

$reflector = new ReflectionClass(Example::class);
$object = $reflector->newLazyGhost($initializer);

?>

Атрибут #[\Deprecated]

Новый Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Deprecated ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ константы классов ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ. ПовСдСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ этим Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ, совпадаСт с ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° устарСвания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ прСдоставляСт сам PHP. ЕдинствСнноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ вмСсто ΠΊΠΎΠ΄Π° ошибки E_DEPRECATED PHP выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ уровня E_USER_DEPRECATED.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ самого PHP, которая устарСла ΠΏΡ€Π΅ΠΆΠ΄Π΅, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ этим Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ»ΠΎ Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π·Π° счёт Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ³ΠΎ пояснСния.

Π Π°Π·Π±ΠΎΡ€ HTTP-запросов, ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… отличаСтся ΠΎΡ‚ POST, ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ содСрТимого ΠΏΠΎ стандарту RFC1867

Для Ρ€Π°Π·Π±ΠΎΡ€Π° multipart-запросов ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ HTTP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ опрСдСляСт стандарт RFC1867 (multipart) ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ HTTP-запроса ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… отличаСтся ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° POST, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ request_parse_body().

ОбъСдинСниС Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² выраТСния new Π±Π΅Π· ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобок

ВыраТСниям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ конструктора, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ доступно Ρ€Π°Π·Ρ‹ΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅, поэтому Ρ‚Π°ΠΊΠΈΠ΅ выраТСния Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΏΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ свойствам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±Π΅Π· Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ выраТСния Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки.

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… класса WeakReference

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± слабых ссылках, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдставляСт класс WeakReference, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся слабая ссылка, ΠΈΠ»ΠΈ null, Ссли ссылка большС Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π°.

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… класса Closure

Π’Ρ‹Π²ΠΎΠ΄ магичСского ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Closure::__debugInfo() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π΅Ρ€Π½ΡƒΠ» Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅ Closure, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΈ строку, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Ρ… символов Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ… пространства ΠΈΠΌΡ‘Π½

Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· пространства ΠΈΠΌΡ‘Π½ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ символы. Π­Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ Π² Π±Π»ΠΎΠΊΠ΅ пространства ΠΈΠΌΡ‘Π½, Π΄Π°ΠΆΠ΅ Ссли ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ пространства ΠΈΠΌΡ‘Π½ объявил символ с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ cURL

Ѐункция curl_version() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ feature_list β€” ассоциативный массив со списком извСстных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ cURL, ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ: true, Ссли Π΄Π°, ΠΈΠ»ΠΈ false, Ссли Π½Π΅Ρ‚.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ константы CURL_HTTP_VERSION_3 ΠΈ CURL_HTTP_VERSION_3ONLY (доступны с libcurl 7.66 ΠΈ 7.88) ΠΊΠ°ΠΊ доступныС Ρ„Π»Π°Π³ΠΈ для ΠΎΠΏΡ†ΠΈΠΈ CURLOPT_HTTP_VERSION.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ константу CURLOPT_PREREQFUNCTION β€” опция модуля cURL, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с Ρ‚ΠΈΠΏΠΎΠΌ callable, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ послС установки соСдинСния, Π½ΠΎ Π΄ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ запроса. К Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅: Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ CURL_PREREQFUNC_OK, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ CURL_PREREQFUNC_ABORT, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ запрос.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΠΏΡ†ΠΈΡŽ CURLOPT_SERVER_RESPONSE_TIMEOUT, которая Π·Π°ΠΌΠ΅Π½ΠΈΠ»Π° ΠΎΠΏΡ†ΠΈΡŽ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ CURLOPT_FTP_RESPONSE_TIMEOUT. ОбС константы содСрТат ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ константу CURLOPT_DEBUGFUNCTION β€” опция модуля cURL, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с Ρ‚ΠΈΠΏΠΎΠΌ callable. Callback-функция вызываСтся Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½ΠΈ запроса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обрабатываСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ CurlHandle. Ѐункция ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ содСрТит Ρ‚ΠΈΠΏ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠ³ΠΎ сообщСния, ΠΈ строку, которая содСрТит ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠ΅ сообщСниС. Π’ΠΈΠΏ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠ³ΠΎ сообщСния ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ константы ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ списка:

ΠŸΡ€ΠΈ установкС ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ нСльзя ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ CURLINFO_HEADER_OUT, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Ρƒ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libcurl.

Ѐункция curl_getinfo() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ posttransfer_time_us, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит количСство микросСкунд ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ послСднСго Π±Π°ΠΉΡ‚Π°. ΠŸΡ€ΠΈ пСрСнаправлСниях врСмя ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса суммируСтся. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ функция curl_getinfo() ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ CURLINFO_POSTTRANSFER_TIME_T для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° option. Для этого трСбуСтся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° libcurl 8.10.0 ΠΈΠ»ΠΈ Π½ΠΎΠ²Π΅Π΅.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ DOM

Π’ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ пространство ΠΈΠΌΡ‘Π½ Dom с Π½ΠΎΠ²Ρ‹ΠΌΠΈ классами Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Dom\Node, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ классу DOMNode. НовыС классы совмСстимы с языком Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ HTML 5 ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ спСцификации WHATWG; Π½ΠΎΠ²Ρ‹Π΅ классы Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Π΄Π°Π²Π½ΠΈΠ΅ ошибки Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ DOM. Π‘Ρ‚Π°Ρ€Ρ‹Π΅ классы модуля DOM ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ доступны Π² цСлях сохранСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ DOMNode::compareDocumentPosition() ΠΈ связанныС с Π½ΠΈΠΌ константы:

ΠœΠ΅Ρ‚ΠΎΠ΄ DOMXPath::registerPhpFunctions() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ callable-значСния. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠ΅Ρ‚ΠΎΠ΄ DOMXPath::registerPhpFunctionNs() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠΌΠ΅Π΅Ρ‚ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ callback-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой синтаксис Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° Π½Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ php:function('name').

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Intl

Π Π΅ΠΆΠΈΠΌ округлСния NumberFormatter::ROUND_HALFEVEN Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ NumberFormatter::ROUND_HALFODD.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ OpenSSL

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π½Π° основС эллиптичСских ΠΊΡ€ΠΈΠ²Ρ‹Ρ… Curve25519 + Curve448. Π’ частности, поля x25519, ed25519, x448 ΠΈ ed448 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² функциях openssl_pkey_new(), openssl_pkey_get_details(), openssl_sign() ΠΈ openssl_verify(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»ΠΈ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ этих ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ PASSWORD_ARGON2. Для этого трСбуСтся ΠΌΠΎΠ΄ΡƒΠ»ΡŒ OpenSSL 3.2 ΠΈ NTS-сборка (Π°Π½Π³Π». сокр.: Non-Thread Safe).

ΠœΠΎΠ΄ΡƒΠ»ΡŒ PCRE

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ pcre2lib, которая поставляСтся Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ с PHP, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ Π΄ΠΎ вСрсии 10.44. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ JIT-компилятором процСссорной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ LoongArch, Π² Perl-совмСстимых элСмСнтах ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ рСтроспСктивныС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹.

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ pcre2lib вСрсии 10.44 ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏ Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ с 32 Π΄ΠΎ 128 символов.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° r (PCRE2_EXTRA_CASELESS_RESTRICT) ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Ρ€Π΅ΠΆΠΈΠΌΠ° (?r). ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ вмСстС с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ (i), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ рСгистронСзависимый поиск, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ смСшиваниС ASCII-символов ΠΈ символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ входят Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ASCII.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ PDO

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ подклассы, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ для Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½ΡƒΡŽ для Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. НовыС классы модуля PDO ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎΠΉ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. НовыС классы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π»ΠΈΠ±ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° PDO::connect(), Π»ΠΈΠ±ΠΎ нСпосрСдствСнно ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· подклассов, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Ρ… для Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ².

Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° SQL-парсСров, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Ρ… для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ². Если парсСр для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° нСдоступСн, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ парсСр ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΠ°Ρ€ΡΠ΅Ρ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚:

  • Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… с ΡƒΠ΄Π²ΠΎΠ΅Π½ΠΈΠ΅ΠΌ Π² качСствС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° экранирования
  • ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Π΄Π²ΡƒΡ… дСфисов, ΠΈ Π½Π΅Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² стилС языка C

Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ PDO_MYSQL

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ парсСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚:

  • Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… с ΡƒΠ΄Π²ΠΎΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ слСшСм Π² качСствС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° экранирования
  • Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ с ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ ΠΌΠ°ΡˆΠΈΠ½ΠΎΠΏΠΈΡΠ½Ρ‹ΠΌΠΈ апострофами, ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ, с ΡƒΠ΄Π²ΠΎΠ΅Π½ΠΈΠ΅ΠΌ Π² качСствС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° экранирования
  • ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Π΄Π²ΡƒΡ… дСфисов, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ слСдуСт ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ±Π΅Π», Π½Π΅Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² стилС языка C ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с символа Ρ€Π΅ΡˆΡ‘Ρ‚ΠΊΠΈ

Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ PDO_PGSQL

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ парсСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚:

  • Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… с ΡƒΠ΄Π²ΠΎΠ΅Π½ΠΈΠ΅ΠΌ Π² качСствС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° экранирования
  • «экранированиС» строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² Π² стилС языка C: E'string'
  • строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π½Π°ΠΊΠ°ΠΌΠΈ Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ²
  • ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Π΄Π²ΡƒΡ… дСфисов, ΠΈ Π½Π΅Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² стилС языка C
  • экранированиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ? ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ символов ??

Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ PDO_SQLITE

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ парсСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚:

  • Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ…, Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… с ΡƒΠ΄Π²ΠΎΠ΅Π½ΠΈΠ΅ΠΌ Π² качСствС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° экранирования
  • ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках
  • ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Π΄Π²ΡƒΡ… дСфисов, ΠΈ Π½Π΅Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² стилС языка C

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Phar

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ модуля ΠΌΠ΅Ρ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Unix для Zip-Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ².

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Readline

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ измСнСния ΠΏΡƒΡ‚ΠΈ .php_history Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния PHP_HISTFILE.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Reflection

Класс ReflectionAttribute Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ содСрТит свойство name, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ReflectionClassConstant::__toString() ΠΈ ReflectionProperty::__toString() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΠ»ΠΈ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ константы Π»Π΅Π½ΠΈΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²:

ΠœΠΎΠ΄ΡƒΠ»ΡŒ SOAP

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠšΠ»Π°Ρ€ΠΊΠ° для пространств ΠΈΠΌΡ‘Π½ Π² ΠΊΠ°Ρ€Ρ‚Π΅ классов. Π’ ΠΊΠ°Ρ€Ρ‚Π΅ классов Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ записи Π² Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠšΠ»Π°Ρ€ΠΊΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΈΠΏ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ пространством ΠΈΠΌΡ‘Π½ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π»ΡΡ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ класс. НапримСр: '{http://example.com}foo' => 'FooClass'.

ЭкзСмпляры интСрфСйса DateTimeInterface, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Π² xsd:datetime ΠΈΠ»ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ элСмСнты, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅, Π° Π½Π΅ ΠΊΠ°ΠΊ пустая строка.

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ сСссий Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΎΠ±Ρ‰ΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ сСссий.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΠ΅ пСрСчислСниС RoundingMode с понятными названиями ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с константами сСмСйства PHP_ROUND_* ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡ‚ΡŒΡŽ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠ° округлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· Π½ΠΎΠ²ΠΎΠ΅ пСрСчислСниС RoundingMode.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ XSL

Π Π°Π·Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄ XSLTProcessor::registerPhpFunctions() Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ callable-значСния Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π²ΠΈΠ΄Π΅ строк ΠΈΠ»ΠΈ массивов, Π½ΠΎ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ PHP.

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ свойства XSLTProcessor::$maxTemplateDepth ΠΈ XSLTProcessor::$maxTemplateVars для управлСния Π³Π»ΡƒΠ±ΠΈΠ½ΠΎΠΉ рСкурсии ΠΏΡ€ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ΅ XSL-шаблона.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Zip

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ константу ZipArchive::ER_TRUNCATED_ZIP, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€Π΅ΠΆΠ΄Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ libzip 1.11.

οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ добавляли примСчания для страницы