{"id":388575,"date":"2024-06-29T08:01:42","date_gmt":"2024-06-29T08:01:42","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=388575"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=388575","title":{"rendered":"<span>PHP \u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u2116 213 (27 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u2013 11 \u043e\u043a\u0442\u044f\u0431\u0440\u044f 2021)<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><a href=\"https:\/\/habr.com\/ru\/post\/582776\/\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/vi\/c9\/ds\/vic9dsuoenk3xxbeypgxrgfkvpy.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/vi\/c9\/ds\/vic9dsuoenk3xxbeypgxrgfkvpy.jpeg\" data-blurred=\"true\"\/><\/div>\n<p><\/a> <em>\u0424\u043e\u0442\u043e: <a href=\"https:\/\/twitter.com\/nauleyco\" rel=\"nofollow noopener noreferrer\">Noriko YAMAMOTO<\/a>.<\/em><\/p>\n<p>  \u041f\u043e\u0434\u0431\u043e\u0440\u043a\u0430 \u0441\u0432\u0435\u0436\u0438\u0445 \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439 \u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0438\u0437 \u043c\u0438\u0440\u0430 PHP.<\/p>\n<p>  \u0414\u043b\u044f PHP 8.2 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0438\u043f <code>null<\/code>; \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 PHP \u0441 disable_functions, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c; \u043d\u043e\u0432\u044b\u0439 \u0441\u0430\u0439\u0442 \u043e\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u2014 phpopendocs.com; PHP 8.1 RC 3, Xdebug 3.1 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0440\u0435\u043b\u0438\u0437\u044b.<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0432 \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u043f\u043e\u0440\u0446\u0438\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438, \u0432\u0438\u0434\u0435\u043e.<\/p>\n<p>  \u041f\u0440\u0438\u044f\u0442\u043d\u043e\u0433\u043e \u0447\u0442\u0435\u043d\u0438\u044f!<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<blockquote><p> \u042d\u0442\u043e\u0442 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 <a href=\"https:\/\/twitter.com\/DonnaInsolita\" rel=\"nofollow noopener noreferrer\">Insolita<\/a>. \u0415\u0441\u043b\u0438 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a, \u043f\u043b\u044e\u0441\u0430\u043d\u0438\u0442\u0435 \u043f\u043e\u0441\u0442, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.  <\/p><\/blockquote>\n<p>  <\/p>\n<h2><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/me\/id\/pk\/meidpksjztqawpy47dfyf2djaig.png\" width=\"20\" data-src=\"https:\/\/habrastorage.org\/webt\/me\/id\/pk\/meidpksjztqawpy47dfyf2djaig.png\"\/> \u041d\u043e\u0432\u043e\u0441\u0442\u0438<\/h2>\n<p>  <\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/www.php.net\/archive\/2021.php#2021-09-30-1\" rel=\"nofollow noopener noreferrer\">PHP 8.1.0 RC 3<\/a><\/h4>\n<p>   \u041e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0435\u043b\u0438\u0437-\u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u043e <a href=\"https:\/\/wiki.php.net\/todo\/php81#timetable\" rel=\"nofollow noopener noreferrer\">\u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e<\/a>. \u0427\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0432 PHP 8.1 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u043f\u043e\u0441\u0442\u0430\u0445 <a href=\"https:\/\/stitcher.io\/blog\/new-in-php-81\" rel=\"nofollow noopener noreferrer\">What&#8217;s new in PHP 8.1<\/a> \u0438 <a href=\"https:\/\/stitcher.io\/blog\/php-81-before-and-after\" rel=\"nofollow noopener noreferrer\">PHP 8.1: before and after<\/a> \u0438 <a href=\"https:\/\/php.watch\/versions\/8.1\" rel=\"nofollow noopener noreferrer\">\u043d\u0430 PHP.Watch<\/a>.<\/p>\n<p>  \u0421\u0432\u0435\u0436\u0438\u0439 \u043f\u043e\u0441\u0442 \u043e\u0442 Brent Roose \u043f\u0440\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 <code>new<\/code> \u0434\u043b\u044f \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432: <a href=\"https:\/\/stitcher.io\/blog\/php-81-new-in-inititalizers\" rel=\"nofollow noopener noreferrer\">PHP 8.1: new in initializers<\/a>.<\/p>\n<\/li>\n<li>\n<h4>\u00ab\u0423\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c\u00bb \u0432 PHP \u0434\u043b\u044f \u043e\u0431\u0445\u043e\u0434\u0430 <code>disable_functions<\/code><\/h4>\n<p>   \u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c <a href=\"https:\/\/github.com\/mm0r1\/exploits\/tree\/master\/php-filter-bypass\" rel=\"nofollow noopener noreferrer\">\u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b<\/a> \u043c\u0435\u0442\u043e\u0434 \u043e\u0431\u0445\u043e\u0434\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439, \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b <code>disable_functions<\/code> \u0432 <code>php.ini<\/code>.<\/p>\n<p>  \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/www.php.net\/manual\/en\/ini.core.php#ini.disable-functions\" rel=\"nofollow noopener noreferrer\"><code>disable_functions<\/code><\/a> \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 PHP-\u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c <code>system<\/code>, <code>exec<\/code>, <code>proc_open<\/code> \u0438 <code>shell_exec<\/code> \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c.<br \/>   \/\/ <code>eval()<\/code>, \u043a\u0441\u0442\u0430\u0442\u0438, <a href=\"https:\/\/tech.geekjob.ru\/disable-evil-eval-in-php-8\/\" rel=\"nofollow noopener noreferrer\">\u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c<\/a>.<\/p>\n<p>  \u0423\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e <code>disable_functions<\/code> \u2014 \u044d\u0442\u043e \u043d\u0435 \u0441\u0435\u043a\u044c\u044e\u0440\u0438\u0442\u0438 \u0444\u0438\u0447\u0430 \u0438 \u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043d\u0435\u0435 \u0440\u0430\u0434\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u2014 \u043f\u043b\u043e\u0445\u0430\u044f \u0438\u0434\u0435\u044f.<\/p>\n<p>  \u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u043b\u0438 \u0432\u044b <code>disable_functions<\/code>?<\/p>\n<p>  \u0426\u0438\u0442\u0430\u0442\u0430 \u041d\u0438\u043a\u0438\u0442\u044b \u041f\u043e\u043f\u043e\u0432\u0430 <a href=\"https:\/\/www.reddit.com\/r\/PHP\/comments\/q2cvkb\/yet_another_php_7080_disable_functions_bypass\/hflmnfc\/?context=3\" rel=\"nofollow noopener noreferrer\">\u043d\u0430 Reddit<\/a>:   <\/p>\n<blockquote><p> \u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0443\u0433\u0440\u043e\u0437\u044b. \u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 PHP, \u0442\u043e \u043d\u0430\u0448\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u0443\u0433\u0440\u043e\u0437\u044b \u2014 \u044d\u0442\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a. \u041c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0441\u0435\u043a\u044c\u044e\u0440\u0438\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439, \u043a\u043e\u0433\u0434\u0430 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u0438\u043c\u0435\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 PHP-\u043a\u043e\u0434 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 (RCE).   <\/p><\/blockquote>\n<p>   \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 PHP \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0430 \u0447\u0442\u043e \u043d\u0435\u0442: <a href=\"https:\/\/wiki.php.net\/security\" rel=\"nofollow noopener noreferrer\">wiki.php.net\/security<\/a>.<\/p>\n<p>  \u0410 \u0435\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u0442\u043e <a href=\"https:\/\/x-c3ll.github.io\/posts\/UAF-PHP-disable_functions\/\" rel=\"nofollow noopener noreferrer\">\u0432\u043e\u0442<\/a> \u043a\u043b\u0430\u0441\u0441\u043d\u044b\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 <code>disable_functions<\/code> \u0438 \u043a\u0430\u043a <a href=\"https:\/\/x-c3ll.github.io\/posts\/UAF-PHP-disable_functions\/\" rel=\"nofollow noopener noreferrer\">\u0443\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u044d\u043a\u0441\u043f\u043b\u043e\u0438\u0442\u044b<\/a>. \u0418 \u0434\u0430\u0436\u0435 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/x-c3ll.github.io\/\/posts\/find-bypass-disable_functions\/\" rel=\"nofollow noopener noreferrer\">\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b<\/a>.<\/p>\n<p>  \u0412 \u0442\u0435\u043c\u0443 \u0440\u0430\u0437\u0431\u043e\u0440 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 RCE-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 <a href=\"https:\/\/github.com\/fiveai\/Cachet\" rel=\"nofollow noopener noreferrer\">fiveai\/Cachet<\/a>, \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043d\u0430 Laravel: <a href=\"https:\/\/blog.sonarsource.com\/cachet-code-execution-via-laravel-configuration-injection\" rel=\"nofollow noopener noreferrer\">Code Execution via Laravel Configuration Injection<\/a>.<\/p>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/github.com\/composer\/composer\/releases\/tag\/2.1.9\" rel=\"nofollow noopener noreferrer\">composer\/composer 2.1.9<\/a><\/h4>\n<p>   \u0412 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u043d\u0430 Windows (<a href=\"https:\/\/github.com\/composer\/composer\/security\/advisories\/GHSA-frqg-7g38-6gcf\" rel=\"nofollow noopener noreferrer\">CVE-2021-41116<\/a>). \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c Windows \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f.<\/li>\n<li>\n<h4><a href=\"https:\/\/phpopendocs.com\/about\" rel=\"nofollow noopener noreferrer\">PHPOpenDocs.com<\/a><\/h4>\n<p>   \u042d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0430\u0439\u0442 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u043f\u043e PHP.<\/p>\n<p>  \u0418\u0437 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e \u0443\u0436\u0435 \u0435\u0441\u0442\u044c, <a href=\"https:\/\/phpopendocs.com\/sponsoring\" rel=\"nofollow noopener noreferrer\">\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0434\u043b\u044f \u0441\u043f\u043e\u043d\u0441\u043e\u0440\u0441\u0442\u0432\u0430<\/a> \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u043a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u043e\u0440\u043e\u0432 \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0432\u0435\u0440\u0441\u0438\u044f\u043c PHP. \u0410 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u0434\u0435\u043b <a href=\"https:\/\/phpopendocs.com\/internals\" rel=\"nofollow noopener noreferrer\">Internals<\/a> \u0441 \u043a\u0443\u0447\u0435\u0439 \u0441\u0441\u044b\u043b\u043e\u043a \u043f\u0440\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043a\u043e\u0434\u0430 PHP \u0438 \u043a\u0430\u043a \u043d\u0430\u0447\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u0438\u0442\u044c.<\/p>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/phprussia.ru\/moscow\/2022\" rel=\"nofollow noopener noreferrer\">PHP Russia 2022<\/a><\/h4>\n<p>   \u0423\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u0434\u0430\u0442\u044b \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u2014 6-7 \u0438\u044e\u043d\u044f. \u041d\u0430\u0447\u0430\u043b\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u0438 \u043f\u0440\u0438\u0435\u043c \u0437\u0430\u044f\u0432\u043e\u043a \u043d\u0430 \u0434\u043e\u043a\u043b\u0430\u0434\u044b!<\/p>\n<\/li>\n<\/ul>\n<h2><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/vd\/22\/tf\/vd22tfegfi8rr3njuljlr-94why.png\" width=\"20\" data-src=\"https:\/\/habrastorage.org\/webt\/vd\/22\/tf\/vd22tfegfi8rr3njuljlr-94why.png\"\/> PHP Internals<\/h2>\n<p>  <\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/wiki.php.net\/rfc\/null-standalone-type\" rel=\"nofollow noopener noreferrer\">[RFC] Allow null as standalone type<\/a><\/h4>\n<p>   \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>null<\/code> \u0432 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0446\u0438\u044f\u0445 \u0442\u0438\u043f\u043e\u0432.<\/p>\n<p>  \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u044d\u0442\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0441\u043e\u043a \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0442\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0442\u0438\u043f\u043e\u0432 \u0432 PHP \u2014 \u0435\u0441\u0442\u044c <code>mixed<\/code>, \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 <code>never<\/code>, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f, \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Unit_type\" rel=\"nofollow noopener noreferrer\">\u044e\u043d\u0438\u0442-\u0442\u0438\u043f\u0430<\/a>.<\/p>\n<p>  \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0442\u0430\u043a\u043e\u0439 \u0442\u0438\u043f \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u043a\u0440\u044b\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0438 \u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437.<\/p>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0445 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0441\u0435\u0432\u0434\u043e\u0442\u0438\u043f <code>false<\/code>, \u043d\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>false|null<\/code>, \u0442\u043e\u043b\u044c\u043a\u043e <code>bool|null<\/code>.<\/p>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/wiki.php.net\/rfc\/deprecate_partially_supported_callables\" rel=\"nofollow noopener noreferrer\">[RFC] Deprecate partially supported callables<\/a><\/h4>\n<p>   \u042d\u0442\u043e\u0442 RFC \u0443\u0436\u0435 \u043d\u0430 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0438 \u0438, \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u043f\u0440\u043e\u0439\u0434\u0435\u0442 \u0432 PHP 8.2. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0447\u0438\u0442\u0430\u0439\u0442\u0435 <a href=\"https:\/\/habr.com\/ru\/post\/577660\/#:~:text=%5BRFC%5D%20Deprecate%20partially%20supported%20callables\">\u0432 PHP-\u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0435 \u2116 211<\/a>.   <\/li>\n<\/ul>\n<h2><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/me\/u9\/xu\/meu9xukzxff8r_9frujrgl0eclu.png\" width=\"20\" data-src=\"https:\/\/habrastorage.org\/webt\/me\/u9\/xu\/meu9xukzxff8r_9frujrgl0eclu.png\"\/> \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b<\/h2>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/xdebug.org\/announcements\/2021-10-04\" rel=\"nofollow noopener noreferrer\">Xdebug 3.1.0<\/a> \u2014 \u041e\u0431\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u0434\u043b\u044f PHP. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 PHP 8.1, \u043c\u043d\u043e\u0433\u043e \u0444\u0438\u043a\u0441\u043e\u0432 \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0437\u043a\u043e\u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0438\u0447.<\/li>\n<li><a href=\"https:\/\/github.com\/php-runtime\/runtime\" rel=\"nofollow noopener noreferrer\">php-runtime\/runtime<\/a> \u2014 \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 Runtime \u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442 \u043b\u043e\u0433\u0438\u043a\u0443 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0442 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u0438 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043b\u044e\u0431\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\u0445 \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 PHP-FPM, ReactPHP, Swoole \u0438 \u0442.\u0434.<br \/>   \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u044d\u0442\u043e \u0431\u044b\u043b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0434\u043b\u044f Symfony, \u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0440\u043e\u0448, \u0447\u0442\u043e \u0430\u0432\u0442\u043e\u0440\u044b \u0432\u044b\u0434\u0435\u043b\u0438\u043b\u0438 \u0435\u0433\u043e \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u043d\u0430 \u0413\u0438\u0442\u0445\u0430\u0431\u0435.<\/li>\n<li><a href=\"https:\/\/github.com\/rindow\/rindow-neuralnetworks\" rel=\"nofollow noopener noreferrer\">rindow\/rindow-neuralnetworks<\/a> \u2014 \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439 \u043f\u043e \u043c\u043e\u0442\u0438\u0432\u0430\u043c <a href=\"https:\/\/keras.io\" rel=\"nofollow noopener noreferrer\">Python Keras<\/a>. \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e <a href=\"https:\/\/rindow.github.io\/neuralnetworks\/index.html#hello-there\" rel=\"nofollow noopener noreferrer\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a> \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 GPU \u043f\u043e\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434 Windows.<\/li>\n<li><a href=\"https:\/\/github.com\/nunomaduro\/termwind\" rel=\"nofollow noopener noreferrer\">nunomaduro\/termwind<\/a> \u2014 \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0441 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c \u0432 \u0441\u0442\u0438\u043b\u0435 Tailwind CSS. PHP 8+<\/li>\n<li><a href=\"https:\/\/github.com\/termage\/termage\" rel=\"nofollow noopener noreferrer\">termage\/termage<\/a> \u2014 \u0415\u0449\u0435 \u043e\u0434\u043d\u0430 \u043f\u043e\u0445\u043e\u0436\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c. <\/li>\n<li><a href=\"https:\/\/github.com\/piko-framework\/router\" rel=\"nofollow noopener noreferrer\">piko-framework\/router<\/a> \u2014 PHP-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u0438\u0441\u0430\u043b\u0438 \u0440\u043e\u0443\u0442\u0435\u0440\u044b \/s \u0438 \u0432\u043e\u0442 \u043e\u0434\u0438\u043d \u043d\u0430 \u0431\u0430\u0437\u0435 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Radix_tree\" rel=\"nofollow noopener noreferrer\">\u0441\u0436\u0430\u0442\u043e\u0433\u043e \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430<\/a>. \u0415\u0441\u043b\u0438 \u0432\u0435\u0440\u0438\u0442\u044c \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0430\u043c, \u0442\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0440\u043e\u0443\u0442\u0435\u0440\u0430 Symfony.<\/li>\n<li><a href=\"https:\/\/github.com\/unitpay\/shamir\" rel=\"nofollow noopener noreferrer\">unitpay\/shamir<\/a> \u2014 \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0445\u0435\u043c\u044b \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u043a\u0440\u0435\u0442\u0430 \u0428\u0430\u043c\u0438\u0440\u0430 (Shamir&#8217;s Secret Sharing). \u041f\u0440\u0438\u0441\u043b\u0430\u043b <a href=\"https:\/\/habr.com\/ru\/users\/alexgx\/\" class=\"user_link\">AlexGx<\/a>.<\/li>\n<li><a href=\"https:\/\/github.com\/icanhazstring\/random-issue-picker\" rel=\"nofollow noopener noreferrer\">icanhazstring\/random-issue-picker<\/a> \u2014 \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 Hacktoberfest, \u043d\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435 \u0441 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0430\u0442\u044c, \u0442\u043e \u0432\u043e\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0431\u0435\u0440\u0435\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u0443\u044e issue \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431\u0435 \u0438\u043b\u0438 \u0433\u0438\u0442\u043b\u0430\u0431\u0435.<\/li>\n<\/ul>\n<h2><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/web\/96b\/65e\/921\/96b65e92179a40f2bd1884549973ddd5.png\" width=\"16\" data-src=\"https:\/\/habrastorage.org\/web\/96b\/65e\/921\/96b65e92179a40f2bd1884549973ddd5.png\"\/> Symfony<\/h2>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/symfony.com\/blog\/a-week-of-symfony-771-4-10-october-2021\" rel=\"nofollow noopener noreferrer\">\u041d\u0435\u0434\u0435\u043b\u044f Symfony #771 (4-10 \u043e\u043a\u0442\u044f\u0431\u0440\u044f 2021)<\/a><\/li>\n<\/ul>\n<h2><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/web\/314\/bd0\/f0d\/314bd0f0dfc54e3fa7f0c0daef1a2d25.png\" width=\"16\" data-src=\"https:\/\/habrastorage.org\/web\/314\/bd0\/f0d\/314bd0f0dfc54e3fa7f0c0daef1a2d25.png\"\/> Laravel<\/h2>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/sajya\/server\" rel=\"nofollow noopener noreferrer\">sajya\/server<\/a> \u2014 JSON-RPC 2.0 API \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043b\u044f Laravel.<\/li>\n<li><img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/io\/0k\/zl\/io0kzl3yhcrbdbidq6hzaeqzje8.png\" width=\"12\" data-src=\"https:\/\/habrastorage.org\/webt\/io\/0k\/zl\/io0kzl3yhcrbdbidq6hzaeqzje8.png\"\/> <a href=\"https:\/\/habr.com\/ru\/post\/579904\/\">\u0420\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0438 \u0442\u0435\u043a\u0441\u0442\u0430: \u043f\u0435\u0440\u0432\u0430\u044f \u0440\u0430\u0431\u043e\u0447\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f<\/a><\/li>\n<li><img decoding=\"async\" alt=\"ru\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/v2\/r1\/ak\/v2r1ake6qijxftbralm4knou9ck.png\" width=\"12\" data-src=\"https:\/\/habrastorage.org\/webt\/v2\/r1\/ak\/v2r1ake6qijxftbralm4knou9ck.png\"\/> <a href=\"https:\/\/laravel.demiart.ru\/laravel-resources\/\" rel=\"nofollow noopener noreferrer\">\u0420\u0435\u0441\u0443\u0440\u0441\u044b \u0434\u043b\u044f API \u0432 Laravel<\/a><\/li>\n<li><img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\" width=\"14\" data-src=\"https:\/\/habrastorage.org\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\"\/> Laravel Worldwide Meetup #10: <a href=\"https:\/\/www.youtube.com\/watch?v=2UyDBArGLDY&amp;t=161s\" rel=\"nofollow noopener noreferrer\">\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e AWS Lambda<\/a>, \u0438 \u043f\u0440\u043e <a href=\"https:\/\/www.youtube.com\/watch?v=2UyDBArGLDY&amp;t=3211s\" rel=\"nofollow noopener noreferrer\">\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432 Pest<\/a>.<\/li>\n<li><img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\" width=\"14\" data-src=\"https:\/\/habrastorage.org\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=81-r9THrJhI\" rel=\"nofollow noopener noreferrer\">\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c PHPUnit \u0432 Pest<\/a><\/li>\n<li><img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\" width=\"14\" data-src=\"https:\/\/habrastorage.org\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=-0C04evVV9A&amp;list=PLKJBt7aeK3k8Ry6aNd4wUOvfXtlnQh5-O&amp;index=1&amp;t=5s\" rel=\"nofollow noopener noreferrer\">\u041f\u0438\u0448\u0435\u043c \u043e\u043d\u043b\u0430\u0439\u043d-\u043c\u0430\u0433\u0430\u0437\u0438\u043d \u043d\u0430 Laravel<\/a> \u2014 \u0421\u0435\u0440\u0438\u044f \u0441\u0442\u0440\u0438\u043c\u043e\u0432.<\/li>\n<\/ul>\n<h2><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/4d\/xz\/tg\/4dxztg-x7krqwoqw9ln1p_lfzno.png\" width=\"20\" data-src=\"https:\/\/habrastorage.org\/webt\/4d\/xz\/tg\/4dxztg-x7krqwoqw9ln1p_lfzno.png\"\/> \u0421\u0442\u0430\u0442\u044c\u0438<\/h2>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/road-to-php.com\/static\" rel=\"nofollow noopener noreferrer\">The Road to PHP: Static Analysis<\/a> \u2014 \u0420\u0430\u0441\u0441\u044b\u043b\u043a\u0430 \u0432 10 \u0434\u043d\u0435\u0439 \u043e\u0442 Brent Roose \u043f\u0440\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437.<\/li>\n<li><a href=\"https:\/\/www.strangebuzz.com\/en\/blog\/the-php-exceptions-cheatsheet\" rel=\"nofollow noopener noreferrer\">\u0428\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430 \u043f\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u043c \u0432 PHP<\/a>.<\/li>\n<li><a href=\"https:\/\/www.binarymoon.co.uk\/2021\/09\/creating-generative-art-with-php\/\" rel=\"nofollow noopener noreferrer\">\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u043e (generative art) \u043d\u0430 PHP<\/a> \u2014 \u0410\u0432\u0442\u043e\u0440 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0430\u0432\u0430\u0442\u0430\u0440\u043e\u043a \u0434\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u044b\u0445 \u0433\u043e\u0440\u043e\u0434\u043e\u0432:\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gz\/6o\/zi\/gz6ozixdzmffmpttyvekxb1qrnk.png\" width=\"500\" data-src=\"https:\/\/habrastorage.org\/webt\/gz\/6o\/zi\/gz6ozixdzmffmpttyvekxb1qrnk.png\"\/>   <\/li>\n<li>\u0418\u0433\u0440\u0430 \u043d\u0430 FFI: <a href=\"https:\/\/github.com\/quasilyte\/kphp-game\" rel=\"nofollow noopener noreferrer\">quasilyte\/kphp-game<\/a><br \/>   \u0420\u0435\u0431\u044f\u0442\u043a\u0438 \u0438\u0437 KPHP \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 FFI, \u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0434\u0435\u043c\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043d\u0430 \u043d\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0438\u0433\u0440\u0443.\n<p>  \u0427\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e, KPHP-FFI \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c \u0441 FFI \u0438\u0437 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e PHP, \u0442\u043e \u0435\u0441\u0442\u044c \u0438\u0433\u0440\u0443 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438 \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u043e\u043c PHP 7.4+.<\/p>\n<p>  \u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b <a href=\"https:\/\/habr.com\/ru\/users\/serafimarts\/\" class=\"user_link\">SerafimArts<\/a> \u043d\u0430 \u0441\u0432\u043e\u0438\u0445 \u0441\u0442\u0440\u0438\u043c\u0430\u0445 \u043f\u0440\u043e <a href=\"https:\/\/www.youtube.com\/watch?v=v6ueRknSqc0&amp;list=PLDI5V3o4oKBXOpbAijmk1fjz-h7OBZbqj\" rel=\"nofollow noopener noreferrer\">PHP + Vulcan<\/a>.<\/p>\n<p>  \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e FFI \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/thephp.website\/en\/issue\/php-ffi\/\" rel=\"nofollow noopener noreferrer\">\u0442\u0443\u0442<\/a>.   <\/li>\n<\/ul>\n<h2><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/oo\/bw\/-z\/oobw-zrs_c4jhryndltxfunnhmw.png\" width=\"20\" data-src=\"https:\/\/habrastorage.org\/webt\/oo\/bw\/-z\/oobw-zrs_c4jhryndltxfunnhmw.png\"\/> \u0410\u0443\u0434\u0438\u043e\/\u0412\u0438\u0434\u0435\u043e<\/h2>\n<p>  <\/p>\n<ul>\n<li><img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\" width=\"14\" data-src=\"https:\/\/habrastorage.org\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=8jed0wIQv_A\" rel=\"nofollow noopener noreferrer\">PHP-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442: \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 [\u0425\u0435\u043a\u0441\u043b\u0435\u0442]<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<hr\/>\n<p>  <\/p>\n<blockquote><p> \u041f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 Telegram-\u043a\u0430\u043d\u0430\u043b <strong><a href=\"https:\/\/t.me\/phpdigest\" rel=\"nofollow noopener noreferrer\">PHP Digest<\/a><\/strong>.  <\/p><\/blockquote>\n<p>  <\/p>\n<blockquote><p> \u042d\u0442\u043e\u0442 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 <a href=\"https:\/\/twitter.com\/DonnaInsolita\" rel=\"nofollow noopener noreferrer\">Insolita<\/a>. \u0415\u0441\u043b\u0438 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430, \u043f\u043b\u044e\u0441\u0430\u043d\u0438\u0442\u0435 \u043f\u043e\u0441\u0442, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/p>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438, \u042e\u043b\u044f \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0437\u0430\u043c\u0435\u0442\u043a\u0443 <a href=\"https:\/\/donnainsolita.medium.com\/postgres-%D0%B8-%D0%B4%D0%BD%D0%B8-%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F-4c2c760d821e\" rel=\"nofollow noopener noreferrer\">\u043f\u0440\u043e \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0434\u043d\u0435\u0439 \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432 Postgres<\/a>.  <\/p><\/blockquote>\n<p>  \u0417\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0443 \u0438\u043b\u0438 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0443? \u0421\u043e\u043e\u0431\u0449\u0438\u0442\u0435 \u0432 <a href=\"https:\/\/habrahabr.ru\/conversations\/pronskiy\/\" rel=\"nofollow noopener noreferrer\">\u043b\u0438\u0447\u043a\u0443 \u0445\u0430\u0431\u0440\u0430<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/t.me\/pronskiy\" rel=\"nofollow noopener noreferrer\">\u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c<\/a>.<\/p>\n<p> \u041f\u0440\u0438\u0441\u043b\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/bit.ly\/php-digest-add-link\" rel=\"nofollow noopener noreferrer\">\u0447\u0435\u0440\u0435\u0437 \u0444\u043e\u0440\u043c\u0443<\/a> \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0432 \u043c\u043d\u0435 \u0432 <a href=\"https:\/\/t.me\/pronskiy\" rel=\"nofollow noopener noreferrer\">\u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c<\/a>.<br \/>  <a href=\"https:\/\/pronskiy.com\/php-digest\/\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u0438\u0441\u043a \u0441\u0441\u044b\u043b\u043e\u043a \u043f\u043e \u0432\u0441\u0435\u043c \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430\u043c<\/a><br \/>   \u2190 <a href=\"https:\/\/habr.com\/ru\/post\/580210\/\">\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0432\u044b\u043f\u0443\u0441\u043a: PHP-\u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u2116 212<\/a>  <\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><\/p>\n<div class=\"tm-article-poll-container\"><!--[--><\/p>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/582776\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u041d\u0443\u0436\u0435\u043d \u043b\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f null \u0432 PHP?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">62.25% <\/span><span class=\"tm-article-poll__answer-label\">\u0414\u0430<\/span><span class=\"tm-article-poll__answer-votes\">94<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 62.25%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">37.75% <\/span><span class=\"tm-article-poll__answer-label\">\u041d\u0435\u0442<\/span><span class=\"tm-article-poll__answer-votes\">57<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 37.75%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b 151 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c.   \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0438\u0441\u044c 30 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. <\/div>\n<p><!--]--><\/div>\n<p><!--]--><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/582776\/\"> https:\/\/habr.com\/ru\/articles\/582776\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><a href=\"https:\/\/habr.com\/ru\/post\/582776\/\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/vi\/c9\/ds\/vic9dsuoenk3xxbeypgxrgfkvpy.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/vi\/c9\/ds\/vic9dsuoenk3xxbeypgxrgfkvpy.jpeg\" data-blurred=\"true\"\/><\/div>\n<p><\/a> <em>\u0424\u043e\u0442\u043e: <a href=\"https:\/\/twitter.com\/nauleyco\" rel=\"nofollow noopener noreferrer\">Noriko YAMAMOTO<\/a>.<\/em><\/p>\n<p>  \u041f\u043e\u0434\u0431\u043e\u0440\u043a\u0430 \u0441\u0432\u0435\u0436\u0438\u0445 \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439 \u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0438\u0437 \u043c\u0438\u0440\u0430 PHP.<\/p>\n<p>  \u0414\u043b\u044f PHP 8.2 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0438\u043f <code>null<\/code>; \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 PHP \u0441 disable_functions, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c; \u043d\u043e\u0432\u044b\u0439 \u0441\u0430\u0439\u0442 \u043e\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u2014 phpopendocs.com; PHP 8.1 RC 3, Xdebug 3.1 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0440\u0435\u043b\u0438\u0437\u044b.<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0432 \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u043f\u043e\u0440\u0446\u0438\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438, \u0432\u0438\u0434\u0435\u043e.<\/p>\n<p>  \u041f\u0440\u0438\u044f\u0442\u043d\u043e\u0433\u043e \u0447\u0442\u0435\u043d\u0438\u044f!  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-388575","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/388575","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=388575"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/388575\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=388575"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=388575"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=388575"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}