ΠΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π·ΡΠ΅ΡΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ΅ΡΠ΅Π· Ρ
ΡΠΊ 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, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ°ΡΠ΅Π»Π° ΠΏΡΠ΅ΠΆΠ΄Π΅, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠΈΠ»ΠΈ ΡΡΠΈΠΌ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ, ΡΡΠΎ ΡΠ»ΡΡΡΠΈΠ»ΠΎ Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π·Π° ΡΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΡΠ°ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ.
ΠΠ»Ρ ΡΠ°Π·Π±ΠΎΡΠ° multipart-Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ HTTP, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡ RFC1867 (multipart) ΠΈ ΠΌΠ΅ΡΠΎΠ΄ HTTP-Π·Π°ΠΏΡΠΎΡΠ° ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄Π° POST, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ request_parse_body().
new Π±Π΅Π· ΠΊΡΡΠ³Π»ΡΡ
ΡΠΊΠΎΠ±ΠΎΠΊΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°, ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΊΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ»Π΅Π½Π°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π±Π΅Π· Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΡΠ»Π°Π±ΡΡ
ΡΡΡΠ»ΠΊΠ°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ WeakReference,
ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ²Π΅Π΄Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ»Π°Π΅ΡΡΡ ΡΠ»Π°Π±Π°Ρ ΡΡΡΠ»ΠΊΠ°, ΠΈΠ»ΠΈ null, Π΅ΡΠ»ΠΈ ΡΡΡΠ»ΠΊΠ° Π±ΠΎΠ»ΡΡΠ΅
Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π°.
ΠΡΠ²ΠΎΠ΄ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Closure::__debugInfo() ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π΅ΡΠ½ΡΠ» Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ Closure, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΈ ΡΡΡΠΎΠΊΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅.
ΠΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΡΠ½ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΡΠΈΡΠ°Π΅Ρ Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ. ΠΡΠΎ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» Π² Π±Π»ΠΎΠΊΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΡΠ½, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ Π±Π»ΠΎΠΊ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΡΠ½ ΠΎΠ±ΡΡΠ²ΠΈΠ» ΡΠΈΠΌΠ²ΠΎΠ» Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ.
Π€ΡΠ½ΠΊΡΠΈΡ 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_TEXTCURLINFO_HEADER_INCURLINFO_HEADER_OUTCURLINFO_DATA_INCURLINFO_DATA_OUTCURLINFO_SSL_DATA_INCURLINFO_SSL_DATA_OUTCURLINFO_HEADER_OUT,
ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ libcurl.
Π€ΡΠ½ΠΊΡΠΈΡ curl_getinfo() ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ
ΠΊΠ»ΡΡ posttransfer_time_us, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ
ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄ ΠΎΡ Π½Π°ΡΠ°Π»Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π±Π°ΠΉΡΠ°.
ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ
Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΡΡΠΌΠΌΠΈΡΡΠ΅ΡΡΡ.
ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ curl_getinfo()
ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ CURLINFO_POSTTRANSFER_TIME_T
Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° option.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libcurl 8.10.0 ΠΈΠ»ΠΈ Π½ΠΎΠ²Π΅Π΅.
Π ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½ Dom Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Dom\Node, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΊΠ»Π°ΡΡΡ DOMNode. ΠΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Ρ ΡΠ·ΡΠΊΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ HTML 5 ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ WHATWG; Π½ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠ΅ΡΠ°ΡΡ Π΄Π°Π²Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ DOM. Π‘ΡΠ°ΡΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ DOM ΠΎΡΡΠ°ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΡΠ΅Π»ΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ DOMNode::compareDocumentPosition() ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ:
DOMNode::DOCUMENT_POSITION_DISCONNECTEDDOMNode::DOCUMENT_POSITION_PRECEDINGDOMNode::DOCUMENT_POSITION_FOLLOWINGDOMNode::DOCUMENT_POSITION_CONTAINSDOMNode::DOCUMENT_POSITION_CONTAINED_BYDOMNode::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
ΠΠ΅ΡΠΎΠ΄ DOMXPath::registerPhpFunctions() ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ callable-Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠ΅ΡΠΎΠ΄ DOMXPath::registerPhpFunctionNs()
ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΌΠ΅Π΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ callback-ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ
ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π½Π΅ Π²ΡΠ·ΠΎΠ²Ρ Π²ΡΠΎΠ΄Π΅ php:function('name').
Π Π΅ΠΆΠΈΠΌ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ NumberFormatter::ROUND_HALFEVEN
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΠΌ ΡΠ΅ΠΆΠΈΠΌΠΎΠΌ NumberFormatter::ROUND_HALFODD.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ»Π»ΠΈΠΏΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΡΠΈΠ²ΡΡ 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).
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ pcre2lib, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅ Ρ PHP, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 10.44. ΠΠΎΡΡΠΎΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ LoongArch, Π² Perl-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠ³ΡΡΠ½ΡΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π΅Π»Ρ ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ΅ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ.
Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ pcre2lib Π²Π΅ΡΡΠΈΠΈ 10.44 ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π΄Π»ΠΈΠ½Ρ ΠΌΠ΅ΡΠΎΠΊ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ
Π³ΡΡΠΏΠΏ Π·Π°Ρ
Π²Π°ΡΠ°
ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Ρ 32 Π΄ΠΎ 128 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° r (PCRE2_EXTRA_CASELESS_RESTRICT)
ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΠ΅ΠΆΠΈΠΌΠ° (?r).
ΠΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ (i), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΠΏΠΎΠΈΡΠΊ,
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΠ΅ ASCII-ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²Ρ
ΠΎΠ΄ΡΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ASCII.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ PDO ΡΠ»ΡΡΡΠ°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° PDO::connect(), Π»ΠΈΠ±ΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠ², Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΡ Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ².
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° SQL-ΠΏΠ°ΡΡΠ΅ΡΠΎΠ², Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ². ΠΡΠ»ΠΈ ΠΏΠ°ΡΡΠ΅Ρ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠ°ΡΡΠ΅Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ°ΡΡΠ΅Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ:
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΠ°ΡΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ:
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΠ°ΡΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ:
E'string'
?
ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ??
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΠ°ΡΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ:
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠ΅ΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Unix Π΄Π»Ρ Zip-Π°ΡΡ ΠΈΠ²ΠΎΠ².
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΡΠΈ .php_history
ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ PHP_HISTFILE.
ΠΠ»Π°ΡΡ ReflectionAttribute ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ name, ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΡΠΈΡΡ ΠΎΠΏΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
ΠΠ΅ΡΠΎΠ΄Ρ ReflectionClassConstant::__toString() ΠΈ ReflectionProperty::__toString() ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠΈΠ»ΠΈ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π»Π΅Π½ΠΈΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²:
ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE
ReflectionClass::SKIP_DESTRUCTOR
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π½ΠΎΡΠ°ΡΠΈΠΈ ΠΠ»Π°ΡΠΊΠ° Π΄Π»Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΡΠ½ Π² ΠΊΠ°ΡΡΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ².
Π ΠΊΠ°ΡΡΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π·Π°ΠΏΠΈΡΠΈ Π² Π½ΠΎΡΠ°ΡΠΈΠΈ ΠΠ»Π°ΡΠΊΠ°,
ΡΡΠΎΠ±Ρ ΡΠΈΠΏ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΠΌ ΠΈΠΌΡΠ½ ΡΠ°Π·ΡΠ΅ΡΠ°Π»ΡΡ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΊΠ»Π°ΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: '{http://example.com}foo' => 'FooClass'.
ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° DateTimeInterface, ΠΊΠΎΡΠΎΡΡΠ΅
ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ Π² xsd:datetime ΠΈΠ»ΠΈ ΠΏΠΎΡ
ΠΎΠΆΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ
ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠ²ΡΠ΅, Π° Π½Π΅ ΠΊΠ°ΠΊ ΠΏΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°.
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΠΉ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΎΠ±ΡΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΡΠ΅ΡΡΠΈΠΉ.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ RoundingMode Ρ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ
ΠΈ ΡΠ»ΡΡΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π°
PHP_ROUND_* ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡΡΡ.
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ΅ΡΡΡΠ΅ Π½ΠΎΠ²ΡΡ
ΡΠ΅ΠΆΠΈΠΌΠ° ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ,
ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ RoundingMode.
Π Π°Π·ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΠ΅, ΡΠ°ΠΊ ΠΈ Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ.
Π ΠΌΠ΅ΡΠΎΠ΄ XSLTProcessor::registerPhpFunctions() ΡΠ°Π·ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ callable-Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊ ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², Π½ΠΎ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ PHP.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° XSLTProcessor::$maxTemplateDepth ΠΈ XSLTProcessor::$maxTemplateVars Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π³Π»ΡΠ±ΠΈΠ½ΠΎΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΠΏΡΠΈ ΠΎΡΠ΅Π½ΠΊΠ΅ XSL-ΡΠ°Π±Π»ΠΎΠ½Π°.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ZipArchive::ER_TRUNCATED_ZIP,
ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ libzip 1.11.