ИзмСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΠΎΠΌΠ°ΡŽΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ

Π₯отя большая Ρ‡Π°ΡΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° PHP 5 Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, всё ΠΆΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ измСнСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости:

ΠšΠ»ΡŽΡ‡ΠΈ массива Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ массива ΠΊΠ°ΠΊ свойства класса Ρ‡Π΅Ρ€Π΅Π· Π»ΠΈΡ‚Π΅Ρ€Π°Π» массива

РаньшС ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ свойства класса массивы, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… смСшались явныС ΠΈ нСявныС ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΌΠΎΠ³Π»ΠΈ Π±Π΅Π· прСдупрСТдСния ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ элСмСнты массива, Ссли явный ΠΊΠ»ΡŽΡ‡ пСрСсСкался с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ нСявным ΠΊΠ»ΡŽΡ‡ΠΎΠΌ. НапримСр:

<?php

class C
{
const
ONE = 1;

public
$array = [
self::ONE => 'foo',
'bar',
'quux',
];
}

var_dump((new C())->array);

?>

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² PHP 5.5:

array(2) {
  [0]=>
  string(3) "bar"
  [1]=>
  string(4) "quux"
}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² PHP 5.6:

array(3) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(4) "quux"
}

Π‘Ρ‚Ρ€ΠΎΠ³ΠΎΡΡ‚ΡŒ json_decode()

Π’Π΅ΠΏΠ΅Ρ€ΡŒ функция json_decode() Π² соотвСтствии со спСцификациСй JSON отклоняСт JSON-Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ true, false ΠΈ null, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°Π»ΠΈ Π½Π΅ строго Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС, ΠΈ, соотвСтствСнно, устанавливаСт ΠΊΠΎΠ΄ ошибки для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ json_last_error(). РаньшС Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π»ΠΈΡΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ json_decode() ΠΈ содСрТали ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· этих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΠΈΠ»ΠΈ смСшанном рСгистрС, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡŒ.

Π­Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ повлияСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ json_decode() Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ JSON. Π’ случаС ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ сформированного JSON Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ эффСкта Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Π΅ ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ сСртификаты Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΏΡ€ΠΈ использовании SSL/TLS

ВсС ΡˆΠΈΡ„Ρ€ΡƒΠ΅ΠΌΡ‹Π΅ клиСнтскиС ΠΏΠΎΡ‚ΠΎΠΊΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΏΠΈΡ€ΠΎΠ². По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ сСртификат ΠΏΠΈΡ€Π° провСряСтся ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ OpenSSL CA. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ для соСдинСния с сСрвСрами с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ SSL-сСртификатом, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ OpenSSL настроСн Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌΠΈ CA-ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ CA ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½ глобально с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ установки ΠΈΠ»ΠΈ openssl.cafile ΠΈΠ»ΠΈ openssl.capath строк ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΈΠ»ΠΈ ΠΆΠ΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΡ†ΠΈΠΈ контСкста cafile ΠΈΠ»ΠΈ capath.

Π₯отя это ΠΈ Π½Π΅ рСкомСндуСтся, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ сСртификата ΠΏΠΈΡ€Π° для запроса, установив verify_peer ΠΎΠΏΡ†ΠΈΡŽ контСкста Π² false, ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΈΡ€Π°, установив verify_peer_name Π² false.

РСсурсы GMP стали ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рСсурсы GMP β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ GMP, остался Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π² Π½Ρ‘ΠΌ явно Π½Π΅ использовались ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° рСсурс is_resource() ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ функция Mcrypt Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ IV

mcrypt_encrypt(), mcrypt_decrypt(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ecb(), mcrypt_generic() ΠΈ mcrypt_ofb() большС Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ IV с Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ, Π° Ρ€Π΅ΠΆΠΈΠΌΡ‹ Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΡˆΠΈΡ„Ρ€Π°, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ IV, Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ с ошибкой, Ссли Π΅Π³ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ.

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· cURL

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° с синтаксисом @file Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ установки для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° CURLOPT_SAFE_UPLOAD значСния false. ВмСсто этого слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс CURLFile.

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

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

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