ΠΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
Π―Π΄ΡΠΎ PHP
Π’ΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°
Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠ° ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ².
ΠΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Ρ
$user->id ΠΏΠΎΠ»ΡΡΠΈΡΡΡ
ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ ΡΠΈΠΏΠΎΠΌ
int, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Ρ
$user->name β
ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ ΡΠΈΠΏΠΎΠΌ
string.
Π‘ΡΡΠ΅Π»ΠΎΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
Π‘ΡΡΠ΅Π»ΠΎΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΠΎΠΊΡΠ°ΡΡΠ½Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ
Ρ Π½Π΅ΡΠ²Π½ΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½Π°Ρ ΠΊΠΎΠ²Π°ΡΠΈΠ°ΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ ΡΠΈΠΏΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ:
ΠΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π°Π²ΡΠΎΠ·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΠ΅Π»ΡΠ·Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΠΈΠΏΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈ Π²Π½ΡΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈ ΡΡΡΠ»ΠΊΠ΅
Π½Π° ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ° Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°.
ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ null
Π Π°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π²Π½ΡΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π² ΡΠΈΡΠ»ΠΎΠ²ΡΡ
Π»ΠΈΡΠ΅ΡΠ°Π»Π°Ρ
ΠΠ΅ΠΆΠ΄Ρ Π·Π½Π°ΠΊΠ°ΠΌΠΈ ΡΠΈΡΠ»ΠΎΠ²ΡΡ
Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠ² ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΠΎΠ΄ΡΡΡΠΊΠΈΠ²Π°Π½ΠΈΡ.
Π‘Π»Π°Π±ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ
Π‘Π»Π°Π±ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Ρ
ΡΠ°Π½ΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ,
ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΠ΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°, ΠΊΠΎΠ³Π΄Π° ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ ΠΎΡΡΠ°Π»ΠΎΡΡ.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ __toString()
Π ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ __toString() ΡΠ°Π·ΡΠ΅ΡΠΈΠ»ΠΈ
Π²ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. Π Π°Π½ΡΡΠ΅ ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π»ΠΎ ΡΠ°ΡΠ°Π»ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅
ΠΎΡΠ»Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΡΡΡΠΎΠΊΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΠΈ
Π² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° Error.
ΠΠΎΠ΄ΡΠ»Ρ cURL
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠ°Π½Π°Π΄ΡΡΠ½ΡΠΌ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠ»Π°ΡΡ CURLFile ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ
ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΡΡΠΊΠΈ, Π΅ΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠ±ΡΠ°Π»ΠΈ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ libcurl >= 7.56.0.
ΠΠΎΠ΄ΡΠ»Ρ Filter
Π€ΠΈΠ»ΡΡΡ FILTER_VALIDATE_FLOAT ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ min_range ΠΈ max_range,
Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠΌΡΡΠ»ΠΎΠΌ, ΡΡΠΎ ΠΈ ΡΠΈΠ»ΡΡΡ FILTER_VALIDATE_INT.
ΠΠΎΠ΄ΡΠ»Ρ FFI
FFI β Π½ΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΡΠ·ΠΎΠ²Π°
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ, Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ
ΠΈ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΡΡΠΊΡΡΡΠ°ΠΌ Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ
Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ.
ΠΠΎΠ΄ΡΠ»Ρ GD
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ IMG_FILTER_SCATTER Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΡΡΠ΅ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ ΡΠΈΠ»ΡΡΡΠ° ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ.
ΠΠΎΠ΄ΡΠ»Ρ Hash
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° crc32c, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ Β«Ρ
Π΅ΡΒ» Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ° ΠΠ°ΡΡΠ°Π½ΠΎΠ»ΠΈ.
Π‘ ΡΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° CRC32 ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ iSCSI, SCTP, Btrfs ΠΈ ext4.
ΠΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ mb_str_split(), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ
ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ str_split(), Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
Ρ ΠΊΠΎΠ΄ΠΎΠ²ΡΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ, Π° Π½Π΅ Ρ Π±Π°ΠΉΡΠ°ΠΌΠΈ.
Π Π΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅ Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ ΡΠ·ΡΠΊΠ° Perl
Π€ΡΠ½ΠΊΡΠΈΠΈ preg_replace_callback() ΠΈ preg_replace_callback_array()
ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ flags Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠ»Π°Π³ΠΎΠ²
PREG_OFFSET_CAPTURE ΠΈ PREG_UNMATCHED_AS_NULL.
ΠΠ½ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠΎΡΠΌΠ°Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΎΠ²ΠΏΠ°Π²ΡΠΈΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π² callback-ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠΎΠ΄ΡΠ»Ρ PDO
ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ DSN-ΡΡΡΠΎΠΊΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΠ»ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ
Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² mysql, mssql, sybase, dblib, firebird ΠΈ oci. Π Π°Π½ΡΡΠ΅ ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΎΡΡ
ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° pgsql. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½Π΅Π΅,
Π΅ΡΠ»ΠΈ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ ΡΠΊΠ°Π·Π°Π»ΠΈ ΠΈ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅, ΠΈ Π² DSN-ΡΡΡΠΎΠΊΠ΅.
Π SQL-Π·Π°ΠΏΡΠΎΡΠ°Ρ
ΡΠ°Π·ΡΠ΅ΡΠΈΠ»ΠΈ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΎΠΏΡΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΠΊΠΈ, ΡΡΠΎΠ±Ρ
ΠΎΠ½ΠΈ Π½Π΅ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ ΠΊΠ°ΠΊ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΠ°ΠΏΠΈΡΡ ?? ΠΎΡΠΏΡΠ°Π²ΠΈΡ ΠΎΠ΄ΠΈΠ½ Π·Π½Π°ΠΊ Π²ΠΎΠΏΡΠΎΡΠ° Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
,
ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π‘Π£ΠΠ PostgreSQL, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ?,
ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ ΡΡΠΎΠ»Π±Π΅Ρ JSON ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ.
ΠΡΠ°ΠΉΠ²Π΅Ρ PDO_SQLite
ΠΡΠ·ΠΎΠ² PDOStatement::getAttribute(PDO::SQLITE_ATTR_READONLY_STATEMENT)
ΠΏΡΠΎΠ²Π΅ΡΠΈΡ, Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π»ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ,
Ρ. Π΅. Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π»ΠΈ Π·Π°ΠΏΡΠΎΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
.
ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ PDO::setAttribute(PDO::SQLITE_ATTR_EXTENDED_RESULT_CODES, true)
ΠΌΠ΅ΡΠΎΠ΄Ρ PDO::errorInfo() ΠΈ PDOStatement::errorInfo()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Π‘Π£ΠΠ SQLite3.
SQLite3
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ SQLite3::lastExtendedErrorCode(),
ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ SQLite3::enableExtendedResultCodes($enable = true),
ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΡΠ°Π²ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ SQLite3::lastErrorCode()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΎΠΊ.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ·ΡΠΊΠ°
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΡΠ΅ΡΠ΅Π· Π΄Π²Π° Π½ΠΎΠ²ΡΡ
ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄Π°: __serialize
ΠΈ __unserialize.
ΠΠΎΠ²ΡΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
Serializable,
ΠΊΠΎΡΠΎΡΡΠΉ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ²ΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ.
Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²
Π€ΡΠ½ΠΊΡΠΈΠΈ array_merge() ΠΈ array_merge_recursive()
ΡΡΠ°Π»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ² Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΏΡΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ².
Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° spread-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ: array_merge(...$arrays).
Π€ΡΠ½ΠΊΡΠΈΡ proc_open() ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² Π²ΠΌΠ΅ΡΡΠΎ
ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ
Π½Π°ΠΏΡΡΠΌΡΡ, Π±Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, Π° PHP ΡΠΊΡΠ°Π½ΠΈΡΡΠ΅Ρ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
Π€ΡΠ½ΠΊΡΠΈΡ proc_open() ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ
Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ redirect ΠΈ null.
ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ Argon2i ΠΈ argon2id Π±Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ libargon
Π€ΡΠ½ΠΊΡΠΈΡ password_hash() ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π°ΡΠΈΠ°Π½ΡΡ Ρ
Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ argon2i ΠΈ argon2id
ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ Sodium, Π΅ΡΠ»ΠΈ PHP ΡΠΎΠ±ΡΠ°Π»ΠΈ Π±Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ libargon.