{"id":317626,"date":"2021-02-08T03:00:20","date_gmt":"2021-02-08T03:00:20","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=317626"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=317626","title":{"rendered":"PHP \u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u2116 198 (25 \u044f\u043d\u0432\u0430\u0440\u044f \u2013 8 \u0444\u0435\u0432\u0440\u0430\u043b\u044f 2021)"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\"><a href=\"https:\/\/habr.com\/ru\/post\/541300\/\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ib\/mq\/7s\/ibmq7sj2bn6vlqyj4_c2t7xojmu.jpeg\"><\/div>\n<p><\/a> <em>\u0424\u043e\u0442\u043e: <a href=\"https:\/\/t.me\/phpshnik\" rel=\"nofollow noopener noreferrer\">\u0418\u0432\u0430\u043d \u0413\u0430\u043d\u0446\u0435\u0432<\/a>.<\/em><\/p>\n<p>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 PSR-6 \u0438 PSR-13, \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043e\u043f\u043a\u0435\u0448, \u0430\u043a\u0441\u0435\u0441\u0441\u043e\u0440\u044b \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438 \u0438\u0437 PHP Internals, \u0434\u0438\u0430\u043b\u0435\u043a\u0442 Lisp \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0432 PHP, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b, \u0432\u0438\u0434\u0435\u043e, \u043f\u043e\u0434\u043a\u0430\u0441\u0442\u044b \u0438 <a href=\"https:\/\/habr.com\/ru\/post\/541300\/#digest-live\">PHP \u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442 Live<\/a>.<\/p>\n<p>  \u041f\u0440\u0438\u044f\u0442\u043d\u043e\u0433\u043e \u0447\u0442\u0435\u043d\u0438\u044f!<\/p>\n<p>  <a name=\"habracut\"><\/a>  <\/p>\n<h3><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f57\/4e9\/991\/f574e9991c42407b8fa789a66b854f8d.png\" width=\"20\"> \u041d\u043e\u0432\u043e\u0441\u0442\u0438 \u0438 \u0440\u0435\u043b\u0438\u0437\u044b<\/h3>\n<p>  <\/p>\n<ul>\n<li><strong><a href=\"https:\/\/www.php.net\/ChangeLog-8.php#8.0.2\" rel=\"nofollow noopener noreferrer\">PHP 8.0.2<\/a>, <a href=\"https:\/\/www.php.net\/ChangeLog-7.php#7.4.15\" rel=\"nofollow noopener noreferrer\">7.4.15<\/a>, <a href=\"https:\/\/www.php.net\/ChangeLog-7.php#7.3.27\" rel=\"nofollow noopener noreferrer\">7.3.27<\/a><\/strong><br \/>  \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u043f\u0430\u0447\u043a\u0443 \u0431\u0430\u0433\u0444\u0438\u043a\u0441\u043e\u0432 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 <a href=\"https:\/\/bugs.php.net\/bug.php?id=80672\" rel=\"nofollow noopener noreferrer\">\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/a> \u0432 SoapClient.\n<p>  \u0412 7.3 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438. \u0410 PHP 7.2 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u043d\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 PHP \u0443\u0436\u0435 <a href=\"https:\/\/www.php.net\/supported-versions.php\" rel=\"nofollow noopener noreferrer\">\u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f<\/a> \u0438 \u0434\u043b\u044f \u043d\u0438\u0445 \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u0441\u0435\u043a\u044c\u044e\u0440\u0438\u0442\u0438 \u0444\u0438\u043a\u0441\u044b.<\/li>\n<li><strong>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u044b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 <a href=\"https:\/\/github.com\/php-fig\/cache\" rel=\"nofollow noopener noreferrer\">PSR-6<\/a> \u0438 <a href=\"https:\/\/github.com\/php-fig\/link\" rel=\"nofollow noopener noreferrer\">PSR-13<\/a>.<\/strong><br \/>  \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043f\u043e \u0434\u0432\u0435 \u043d\u043e\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u0430\u043a \u0431\u044b\u043b\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0432 <a href=\"https:\/\/www.php-fig.org\/bylaws\/psr-evolution\/\" rel=\"nofollow noopener noreferrer\">\u043f\u043b\u0430\u043d\u0435 \u043f\u043e \u043c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432<\/a>.\n<p>  \u0412 \u043e\u0431\u043e\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0438\u043f\u044b \u043a \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c, \u0430 \u0432\u0442\u043e\u0440\u0430\u044f \u043a \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c. \u041d\u0443 \u0438 \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 PHP 8, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 union \u0442\u0438\u043f\u044b \u0438 <code>static<\/code> \u0434\u043b\u044f <code>return type<\/code>.<\/p>\n<p>  \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 PSR-6: <a href=\"https:\/\/github.com\/php-fig\/cache\/compare\/1.0.0...3.0.0\" rel=\"nofollow noopener noreferrer\">1.0.0 vs 3.0.0<\/a>.<br \/>  \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 PSR-13: <a href=\"https:\/\/github.com\/php-fig\/link\/compare\/1.0.0...2.0.0\" rel=\"nofollow noopener noreferrer\">1.0.0 vs 2.0.0<\/a>.<\/p>\n<div class=\"oembed\"><iframe allowfullscreen id=\"60207bec30f707d266c0ec37\" src=\"https:\/\/embedd.srv.habr.com\/iframe\/60207bec30f707d266c0ec37\"><\/iframe><\/div>\n<\/li>\n<li><strong><a href=\"https:\/\/surveys.jetbrains.com\/s3\/developer-ecosystem-survey-2021-sh?_privatedomain=t&amp;snc=1612693552_601fc03040c310.20797420&amp;sg_navigate=start&amp;sglocale=ru\" rel=\"nofollow noopener noreferrer\">Developer Ecosystem 2021 \u2014 \u041e\u043f\u0440\u043e\u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043e\u0442 JetBrains<\/a><\/strong><br \/>  \u0414\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0434\u043b\u0438\u043d\u043d\u044b\u0439, \u0437\u0430\u0442\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 PHP \u0441\u0435\u043a\u0446\u0438\u044e. \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2020\/php\/\" rel=\"nofollow noopener noreferrer\">\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e PHP<\/a> \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0433\u043e\u0434\u0430:<br \/>   <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/9d\/sg\/ey\/9dsgeyp-z0hrliqkb10u8i6hy5u.png\" width=\"600\"><\/li>\n<li><strong>12 \u0444\u0435\u0432\u0440\u0430\u043b\u044f, 17:00<\/strong> \u2014 <strong><a href=\"https:\/\/habr.com\/ru\/company\/vseinstrumenti\/news\/t\/540566\/\">\u041e\u043d\u043b\u0430\u0439\u043d \u043c\u0438\u0442\u0430\u043f \u043e\u0442 \u0412\u0441\u0435\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b.\u0420\u0443<\/a><\/strong> \u043e PHP, MySQL, \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u0445, \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441 \u043a\u0440\u0443\u0442\u044b\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u043e\u043c.<\/li>\n<\/ul>\n<p>  <\/p>\n<h3><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/c9e\/e78\/803\/c9ee7880391644e4aef6cc28ca681ab0.png\" width=\"20\"> PHP Internals<\/h3>\n<p>  <\/p>\n<ul>\n<li><strong><a href=\"https:\/\/github.com\/Girgias\/float-int-warning\/\" rel=\"nofollow noopener noreferrer\">[RFC] Warning for implicit float to int conversions<\/a><\/strong><br \/>   PHP \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c \u0442\u0438\u043f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u043b\u0435\u0442\u0443. \u0423 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0435\u0441\u0442\u044c \u043a\u0430\u043a \u043f\u043b\u044e\u0441\u044b, \u0442\u0430\u043a \u0438 \u043c\u0438\u043d\u0443\u0441\u044b.\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b (<code>float<\/code>) \u0432 \u0446\u0435\u043b\u044b\u0435 (<code>int<\/code>) \u0442\u0438\u0445\u043e \u0442\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c.  <\/p>\n<pre><code class=\"php\">var_dump(3.1415, (int) 3.1415);  &gt; float(3.1415) &gt; int(3) <\/code><\/pre>\n<p> <a href=\"https:\/\/3v4l.org\/fP1aC\" rel=\"nofollow noopener noreferrer\">3v4l.org\/fP1aC<\/a><\/p>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u043c RFC \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0431\u0440\u043e\u0441\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435, \u0435\u0441\u043b\u0438 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0443 <code>float<\/code> \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u0430\u044f.<\/li>\n<li><strong><a href=\"https:\/\/externals.io\/message\/113091\" rel=\"nofollow noopener noreferrer\">Inheritance Cache<\/a><\/strong><br \/>  \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0421\u0442\u043e\u0433\u043e\u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b <a href=\"https:\/\/github.com\/php\/php-src\/pull\/6627\" rel=\"nofollow noopener noreferrer\">PR<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f.\n<p>  \u041a\u0435\u0448 \u043d\u0430 8% \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u00abHello World\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 Symfony. \u0418 \u0447\u0442\u043e\u0431 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u0440\u043e\u0441\u0442, \u043d\u0438\u0447\u0435\u0433\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442. \u041f\u0440\u043e\u0441\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c PHP \u0438 \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043e\u043f\u043a\u0435\u0448. \u0411\u0440\u0430\u0432\u043e, \u0414\u043c\u0438\u0442\u0440\u0438\u0439!  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u041a\u043b\u0430\u0441\u0441\u044b PHP \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438 \u043a\u0435\u0448\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 opcache, \u043d\u043e \u0438\u0445 \u00ab\u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435\u00bb \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0440\u044f\u0434\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u043d\u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0438 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u0432\/\u0441\u0432\u043e\u0439\u0441\u0442\u0432\/\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0438\u0437 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438\u043b\u0438 \u0442\u0440\u0435\u0439\u0442\u043e\u0432. \u0412\u0441\u0435 \u044d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0445\u043e\u0442\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435.<\/p>\n<p>  \u041a\u044d\u0448 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u00ab\u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435\u00bb \u043d\u0430\u0431\u043e\u0440 \u0432\u0441\u0435\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 (\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445, \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432, \u0442\u0440\u0435\u0439\u0442\u043e\u0432, \u0442\u0438\u043f \u0441\u0432\u043e\u0439\u0441\u0442\u0432, \u0438 \u0442.\u043f.) \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0432 \u043e\u043f\u043a\u0435\u0448\u0435.<\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u044d\u0442\u043e\u0433\u043e \u043f\u0430\u0442\u0447\u0430 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0443\u0434\u0430\u043b\u0438\u043b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432. \u0418 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u043a\u043b\u0430\u0441\u0441\u044b, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0435\u0441\u044f \u0432 \u043e\u043f\u043a\u0435\u0448\u0435 \u0438\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b.<\/p><\/div>\n<\/p><\/div>\n<\/li>\n<li><strong><a href=\"https:\/\/wiki.php.net\/rfc\/property_accessors\" rel=\"nofollow noopener noreferrer\">[RFC] Property Accessors <font color=\"red\">! \u0440\u0430\u043d\u043d\u0438\u0439 \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a !<\/font><\/a><\/strong><br \/>  \u041d\u0438\u043a\u0438\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u043b \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0430\u043a\u0441\u0435\u0441\u0441\u043e\u0440\u0430\u043c, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u0433\u0435\u0442\u0442\u0435\u0440\u044b\/\u0441\u0435\u0442\u0442\u0435\u0440\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.\n<p>  \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, RFC \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u0430\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430:  <\/p>\n<pre><code class=\"php\">class User {     public string $name { get; private set; }      \/\/ \u0438\u043b\u0438 \u0432\u043e\u0442 \u0442\u0430\u043a     public string $prop { public get; private set; } } <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0440\u0438\u0434-\u043e\u043d\u043b\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430:  <\/p>\n<pre><code class=\"php\">class Test {     \/\/ Read-write property.     public $prop { get; set; } \/\/ \u0440\u0430\u0432\u043d\u043e\u0441\u0438\u043b\u044c\u043d\u043e `public $prop;`      \/\/ Read-only property.     public $prop { get; } } <\/code><\/pre>\n<p>  \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <code>guard<\/code>.  <\/p>\n<pre><code class=\"php\">class User {     public string $name {         guard {             if (strlen($value) === 0) {                 throw new ValueError(&quot;Name must be non-empty&quot;);             }         }     } } <\/code><\/pre>\n<p>  \u0412-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u043b\u0435\u043d\u0438\u0432\u0443\u044e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <code>lazy<\/code>:  <\/p>\n<pre><code class=\"php\">class Test {     public string $somethingExpensive {         lazy {             return computeSomethingExpensive();         }     } } <\/code><\/pre>\n<p>  \u0412 2013 \u0433\u043e\u0434\u0443 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <a href=\"https:\/\/wiki.php.net\/rfc\/propertygetsetsyntax-v1.2\" rel=\"nofollow noopener noreferrer\">\u0443\u0436\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u043e\u0441\u044c<\/a> \u0434\u043b\u044f PHP 5.5, \u043d\u043e \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u043b\u043e\u0441\u044c \u043d\u0430 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0438.<\/p>\n<p>  \u041f\u043e\u043a\u0430 \u044d\u0442\u043e \u0441\u0443\u043f\u0435\u0440 \u0440\u0430\u043d\u043d\u0438\u0439 \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0430\u0436\u0435 \u043d\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u0441\u044f \u0432 Internals. \u041d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0432\u0438\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043b\u043e\u0436\u043d\u044b\u043c \u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0442\u043e\u0433\u043e. \u041d\u043e \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a \u043f\u0440\u043e\u0441\u043e\u0447\u0438\u043b\u0441\u044f \u0434\u0430\u0436\u0435 \u0434\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u043e\u043d \u0435\u0449\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f.<\/li>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/fibers\" rel=\"nofollow noopener noreferrer\">[RFC] Fibers<\/a> \u2014 \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u0431\u0435\u0440\u043e\u0432. \u0418\u0437 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e: \u043a \u0434\u0438\u0441\u043a\u0443\u0441\u0441\u0438\u0438 <a href=\"https:\/\/externals.io\/message\/112538#113062\" rel=\"nofollow noopener noreferrer\">\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f<\/a> \u043e\u0434\u0438\u043d \u0438\u0437 \u043c\u0435\u0439\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 Swoole:<br \/>\n<blockquote><p>Once PHP has a stack coroutine like Fiber, we can do more than what we can do now. Since we can interrupt from PHP internal functions, then we can replace all the implementation of PHP blocking functions, such as sleep(), and we can also replace php_stream so that we can change the implementation of PDO, mysqli, and phpredis into a coroutine way, and we can also make curl become a coroutine version through libcurl&#8217;s support for multiplexing.  <\/p><\/blockquote>\n<\/li>\n<li><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/tw\/rx\/6r\/twrx6r2xhptg_hfdkhtyg1xfgvc.png\" width=\"12\"> <a href=\"https:\/\/wiki.php.net\/rfc\/enumerations#voting\" rel=\"nofollow noopener noreferrer\">[RFC] Enumerations<\/a> \u2014 \u0421\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b\u043e \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0435\u043d\u0430\u043c\u0430\u043c. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/post\/532950\/#enums\">\u0432 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0435 \u2116194<\/a> \u0438\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 <a href=\"https:\/\/www.youtube.com\/watch?v=DEV3K_Tf5Do&amp;t=771s\" rel=\"nofollow noopener noreferrer\">\u0432\u0438\u0434\u0435\u043e \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442-\u043b\u0430\u0439\u0432\u0430<\/a>.<\/li>\n<li><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/tw\/rx\/6r\/twrx6r2xhptg_hfdkhtyg1xfgvc.png\" width=\"12\"> <a href=\"https:\/\/wiki.php.net\/rfc\/readable_var_representation\" rel=\"nofollow noopener noreferrer\">[RFC] var_representation(): readable alternative to var_export()<\/a> \u2014 \u0421\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b\u043e \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043d\u043e\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441\u0442\u0430\u0440\u043e\u0439 <code>var_export()<\/code>.<\/li>\n<li><img decoding=\"async\" alt=\"cross\" src=\"https:\/\/habrastorage.org\/webt\/pt\/cd\/aj\/ptcdaj_hxxx_o0_jr9lnltwphuk.png\" width=\"12\"> <a href=\"https:\/\/wiki.php.net\/rfc\/readline_interactive_shell_result_function\" rel=\"nofollow noopener noreferrer\">[RFC] Dump results of expressions in `php -a`<\/a> \u2014 \u041e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u043e.<\/li>\n<li><a href=\"https:\/\/stitcher.io\/blog\/new-in-php-81\" rel=\"nofollow noopener noreferrer\">\u0427\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432 PHP 8.1<\/a> \u2014 \u041f\u043e\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u043f\u043e\u0441\u0442 \u043e\u0442 Brent Roose. \u0415\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c \u0432\u0441\u0435-\u0432\u0441\u0435 \u0432 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u0445, \u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 <a href=\"https:\/\/php.watch\/versions\/8.1\" rel=\"nofollow noopener noreferrer\">php.watch<\/a>.\n<p>  \u0421\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043d\u043e\u0432\u044b\u043c\u0438 RFC \u0438 \u0445\u043e\u0434\u043e\u043c \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0439 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430 <a href=\"https:\/\/php-rfc-watch.beberlei.de\/\" rel=\"nofollow noopener noreferrer\">PHP RFC Watch<\/a>   <\/li>\n<\/ul>\n<p>  <\/p>\n<h3><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/cf8\/62d\/907\/cf862d9072784d04b621238ec137f2ca.png\" width=\"20\"> \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b<\/h3>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/vimeo\/php-mysql-engine\" rel=\"nofollow noopener noreferrer\">vimeo\/php-mysql-engine<\/a> \u2014 \u0421\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440 MySQL-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (\u0434\u0432\u0438\u0436\u043e\u043a) \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c PHP. <a href=\"https:\/\/medium.com\/vimeo-engineering-blog\/the-great-pretender-faster-application-tests-with-mysql-simulation-26250f13d251\" rel=\"nofollow noopener noreferrer\">\u0412 \u043f\u043e\u0441\u0442\u0435 \u043f\u0440\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442<\/a> Matt Brown, \u0430\u0432\u0442\u043e\u0440 Psalm, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430 \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u043e \u0437\u0430\u043f\u0443\u0441\u043a \u0442\u0435\u0441\u0442\u043e\u0432 \u0432 Vimeo \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430.\n<p>  \u041d\u0430 <a href=\"https:\/\/www.youtube.com\/watch?v=DEV3K_Tf5Do&amp;t=4300s\" rel=\"nofollow noopener noreferrer\">\u0441\u0442\u0440\u0438\u043c\u0435<\/a> \u0432\u043e\u0437\u043d\u0438\u043a \u0432\u043e\u043f\u0440\u043e\u0441: \u0447\u0435\u043c \u044d\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f SQLite?<\/p>\n<p>  <a href=\"https:\/\/gist.github.com\/vudaltsov\/bc484daa7237c9f7f20c4537f07ac60d\" rel=\"nofollow noopener noreferrer\">\u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a<\/a> \u043e\u0442 \u0412\u0430\u043b\u0435\u043d\u0442\u0438\u043d\u0430 \u0423\u0434\u0430\u043b\u044c\u0446\u043e\u0432\u0430 (\u043a\u0430\u043d\u0430\u043b <a href=\"https:\/\/t.me\/phpyh\" rel=\"nofollow noopener noreferrer\">\u041f\u044b\u0445<\/a>) \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 Vimeo \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435, \u0447\u0435\u043c <code>PDO('sqlite::memory:'):<\/code>  <\/p>\n<pre> sqlite:           4.00 MiB  - 66 ms php-mysql-engine: 10.00 MiB - 330 ms <\/pre>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0435\u0441\u043b\u0438 \u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 SQLite, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043d\u0435\u043c.   <\/li>\n<li><a href=\"https:\/\/github.com\/cweagans\/composer-patches\" rel=\"nofollow noopener noreferrer\">cweagans\/composer-patches<\/a> \u2014 \u041f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f C\u043emposer, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 <a href=\"https:\/\/www.rias.be\/blog\/using-composer-patches\" rel=\"nofollow noopener noreferrer\">\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0430\u0442\u0447\u0438 \u043a \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c<\/a>. \u0423\u0434\u043e\u0431\u043d\u043e, \u0435\u0441\u043b\u0438 \u0432\u0430\u0448\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0435 \u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e PR \u0434\u043b\u044f \u043f\u0430\u043a\u0435\u0442\u0430\/\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430, \u0438 \u043d\u0430 \u0446\u0435\u043b\u044b\u0439 \u0444\u043e\u0440\u043a \u043d\u0435 \u0442\u044f\u043d\u0443\u0442.<\/li>\n<li><a href=\"https:\/\/github.com\/OndraM\/ci-detector\" rel=\"nofollow noopener noreferrer\">OndraM\/ci-detector<\/a> \u2014 \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 CI-\u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0431\u0438\u043b\u0434\u0435.<\/li>\n<li><a href=\"https:\/\/github.com\/rakibtg\/SleekDB\" rel=\"nofollow noopener noreferrer\">rakibtg\/SleekDB<\/a> \u2014 NoSQL \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 PHP. \u0414\u0430\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 JSON-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u0438 \u0435\u0441\u0442\u044c \u044f\u0437\u044b\u043a \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/li>\n<li><a href=\"https:\/\/github.com\/Orangesoft-Development\/throttler\" rel=\"nofollow noopener noreferrer\">Orangesoft-Development\/throttler<\/a> \u2014 \u0411\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u043e\u0434. <a href=\"https:\/\/orangesoft.co\/blog\/how-to-make-proxy-balancing-in-guzzle\" rel=\"nofollow noopener noreferrer\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/a> \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f Guzzle. \u041f\u0440\u0438\u0441\u043b\u0430\u043b <a href=\"https:\/\/twitter.com\/jebox\" rel=\"nofollow noopener noreferrer\">\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0414\u0435\u043d\u0438\u0441\u044e\u043a<\/a>.<\/li>\n<li><a href=\"https:\/\/github.com\/sunrise-php\/awesome-skeleton\" rel=\"nofollow noopener noreferrer\">sunrise-php\/awesome-skeleton<\/a> \u2014 \u041c\u0438\u043a\u0440\u043e\u0444\u0440\u0435\u0439\u043c\u043e\u0440\u043a \u043d\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043d\u0430 RoadRunner \u0438\u043b\u0438 Swoole. \u041f\u0440\u0438\u0441\u043b\u0430\u043b <a href=\"https:\/\/habr.com\/ru\/users\/fenric\/\" class=\"user_link\">fenric<\/a>.<\/li>\n<\/ul>\n<p>  <\/p>\n<h3><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/96b\/65e\/921\/96b65e92179a40f2bd1884549973ddd5.png\" width=\"16\"> Symfony<\/h3>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/symfony.com\/blog\/a-week-of-symfony-736-1-7-february-2021\" rel=\"nofollow noopener noreferrer\">\u041d\u0435\u0434\u0435\u043b\u044f Symfony #736 (1-7 \u0444\u0435\u0432\u0440\u0430\u043b\u044f 2021)<\/a><\/li>\n<li><a href=\"https:\/\/jolicode.com\/blog\/elasticsearch-the-right-way-in-symfony\" rel=\"nofollow noopener noreferrer\">Elasticsearch \u0432 Symfony \u2013 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c<\/a><\/li>\n<li><img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/webt\/-u\/wa\/el\/-uwael5b7b4s2zu-db-7p8iytxg.png\" width=\"12\"> <a href=\"https:\/\/habr.com\/ru\/post\/539084\/\">Symfony \u0438 \u0413\u0435\u043a\u0441\u0430\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430<\/a><\/li>\n<li><img decoding=\"async\" alt=\"ru\" src=\"https:\/\/habrastorage.org\/webt\/v2\/r1\/ak\/v2r1ake6qijxftbralm4knou9ck.png\" width=\"12\"> <a href=\"https:\/\/antonshell.me\/post\/github-actions-symfony\" rel=\"nofollow noopener noreferrer\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Github Actions \u0434\u043b\u044f Symfony \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<h3><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/314\/bd0\/f0d\/314bd0f0dfc54e3fa7f0c0daef1a2d25.png\" width=\"16\"> Laravel<\/h3>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/blog.laravel.com\/laravel-parallel-testing-is-now-available\" rel=\"nofollow noopener noreferrer\">\u0412 Laravel \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0442\u0435\u0441\u0442\u043e\u0432<\/a> \u043d\u0430 \u0431\u0430\u0437\u0435 <a href=\"https:\/\/github.com\/paratestphp\/paratest\" rel=\"nofollow noopener noreferrer\">paratestphp\/paratest<\/a>. \u0412 \u0442\u0435\u043c\u0443 <a href=\"https:\/\/ohdear.app\/blog\/making-our-laravel-test-suite-ready-for-parallel-testing\" rel=\"nofollow noopener noreferrer\">\u043f\u043e\u0441\u0442<\/a> \u043f\u0440\u043e \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044e \u0442\u0435\u0441\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430.<\/li>\n<li><a href=\"https:\/\/blog.laravel.com\/updates-to-laravels-versioning-policy\" rel=\"nofollow noopener noreferrer\">\u041d\u043e\u0432\u044b\u0439 \u0440\u0435\u043b\u0438\u0437\u043d\u044b\u0439 \u0446\u0438\u043a\u043b Laravel<\/a> \u2014 \u041c\u0430\u0436\u043e\u0440\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0440\u0430\u0437 \u0432 \u0433\u043e\u0434 \u0432\u043c\u0435\u0441\u0442\u043e 6 \u043c\u0435\u0441\u044f\u0446\u0435\u0432. \u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0435\u0441\u0442\u044c \u043d\u0430 <a href=\"https:\/\/laravelversions.com\/\" rel=\"nofollow noopener noreferrer\">laravelversions.com<\/a>.<\/li>\n<li><img decoding=\"async\" alt=\"ru\" src=\"https:\/\/habrastorage.org\/webt\/v2\/r1\/ak\/v2r1ake6qijxftbralm4knou9ck.png\" width=\"12\"> <a href=\"https:\/\/laravel.demiart.ru\/illuminate-request\/\" rel=\"nofollow noopener noreferrer\">\u041c\u043e\u0449\u043d\u044b\u0439 Illuminate Request<\/a><\/li>\n<li><img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/webt\/-u\/wa\/el\/-uwael5b7b4s2zu-db-7p8iytxg.png\" width=\"12\"> <a href=\"https:\/\/habr.com\/ru\/post\/540072\/\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Xdebug 3 \u0434\u043b\u044f Laravel-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 Docker<\/a><\/li>\n<li><img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/webt\/-u\/wa\/el\/-uwael5b7b4s2zu-db-7p8iytxg.png\" width=\"12\"> <a href=\"https:\/\/habr.com\/ru\/post\/539244\/\">\u041a\u0430\u043a \u043f\u043e\u0434\u0440\u0443\u0436\u0438\u0442\u044c ltree \u0438 Laravel<\/a><\/li>\n<li><img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/webt\/-u\/wa\/el\/-uwael5b7b4s2zu-db-7p8iytxg.png\" width=\"12\"> <a href=\"https:\/\/habr.com\/ru\/post\/541224\/\">Laravel\u2013\u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442 (25 \u044f\u043d\u0432\u0430\u0440\u044f \u2013 7 \u0444\u0435\u0432\u0440\u0430\u043b\u044f 2021)<\/a><\/li>\n<li><img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\" width=\"14\"> Laravel Worldwide Meetup #5: <a href=\"https:\/\/www.youtube.com\/watch?v=qqLVbd_uGiI&amp;t=389s\" rel=\"nofollow noopener noreferrer\">Hotwire \u0432 Laravel<\/a>, <a href=\"https:\/\/www.youtube.com\/watch?v=qqLVbd_uGiI&amp;t=2557s\" rel=\"nofollow noopener noreferrer\">\u043c\u0443\u043b\u044c\u0442\u0438\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0411\u0414<\/a>.<\/li>\n<\/ul>\n<p>  <\/p>\n<h3><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/569\/de4\/298\/569de4298b764a33894aa517e74324f9.png\" width=\"16\"> Yii<\/h3>\n<p>  <\/p>\n<ul>\n<li>\u0421\u0432\u0435\u0436\u0438\u0435 \u0440\u0435\u043b\u0438\u0437\u044b \u043f\u0430\u043a\u0435\u0442\u043e\u0432 Yii 3: <a href=\"https:\/\/github.com\/yiisoft\/request-body-parser\" rel=\"nofollow noopener noreferrer\">yiisoft\/request-body-parser<\/a>, <a href=\"https:\/\/github.com\/yiisoft\/cache\" rel=\"nofollow noopener noreferrer\">yiisoft\/cache<\/a>, <a href=\"https:\/\/github.com\/yiisoft\/arrays\" rel=\"nofollow noopener noreferrer\">yiisoft\/arrays<\/a>.<\/li>\n<\/ul>\n<p>  <\/p>\n<h3><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/329\/bec\/7c1\/329bec7c1e914963a1c5d2f2bfe99995.png\" width=\"20\"> \u0421\u0442\u0430\u0442\u044c\u0438<\/h3>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/blog.sucuri.net\/2021\/02\/whitespace-steganography-conceals-web-shell-in-php-malware.html\" rel=\"nofollow noopener noreferrer\">\u0412\u0435\u0431\u0448\u0435\u043b \u0441\u043a\u0440\u044b\u0432\u0430\u043b\u0441\u044f \u0432 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u043e\u043c PHP-\u0441\u043a\u0440\u0438\u043f\u0442\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u043e\u0431\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432<\/a> \u2014 \u0410\u043d\u0430\u043b\u0438\u0437 \u0431\u0435\u043a\u0434\u043e\u0440\u0430, \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u0432\u0437\u043b\u043e\u043c\u0430\u043d\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435.<\/li>\n<li><a href=\"https:\/\/kinsta.com\/blog\/php-benchmarks\/\" rel=\"nofollow noopener noreferrer\">\u0411\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u0438 CMS \u043d\u0430 PHP \u0432\u0435\u0440\u0441\u0438\u0439 5.6, 7.* \u0438 8.0<\/a>.<\/li>\n<li><img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/webt\/-u\/wa\/el\/-uwael5b7b4s2zu-db-7p8iytxg.png\" width=\"12\"> <a href=\"https:\/\/habr.com\/ru\/post\/541246\/\">Enum \u0432 PHP 8.1<\/a> \u2014 \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043d\u0443\u0436\u0435\u043d enum, \u0438 \u043a\u0430\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0432 PHP.<\/li>\n<li><img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/webt\/-u\/wa\/el\/-uwael5b7b4s2zu-db-7p8iytxg.png\" width=\"12\"> <a href=\"https:\/\/habr.com\/ru\/post\/538358\/\">\u041f\u0430\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c, \u0438\u043b\u0438 \u043a\u0430\u043a \u0441\u0436\u0430\u0442\u044c \u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u0430 \u0434\u043e 42 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442<\/a>.<\/li>\n<li><img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/webt\/-u\/wa\/el\/-uwael5b7b4s2zu-db-7p8iytxg.png\" width=\"12\"> <a href=\"https:\/\/habr.com\/ru\/post\/539622\/\">\u0410 \u0442\u0430\u043a\u043e\u0439 \u043b\u0438 \u0443\u0436 \u0430\u043d\u0442\u0438-\u043f\u0430\u0442\u0442\u0435\u0440\u043d \u044d\u0442\u043e\u0442 Service Locator?<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<h3><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8dc\/c23\/677\/8dcc236774104f8286a40ceaea553820.png\" width=\"20\"> \u0410\u0443\u0434\u0438\u043e\/\u0412\u0438\u0434\u0435\u043e<\/h3>\n<p>  <\/p>\n<ul>\n<li><img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\" width=\"14\"><img decoding=\"async\" alt=\"ru\" src=\"https:\/\/habrastorage.org\/webt\/v2\/r1\/ak\/v2r1ake6qijxftbralm4knou9ck.png\" width=\"12\"> <a href=\"https:\/\/youtu.be\/3HYybKIkk0I\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u0447\u0435\u043c\u0443 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043b\u0435\u0433\u0430\u0441\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439<\/a> \u2014 \u0421\u0435\u0440\u0433\u0435\u0439 \u0416\u0443\u043a \u0438\u0437 Skyeng \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u0430\u043a\u0438\u0435 \u0435\u0441\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u0448\u0435\u043b \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u0441 \u043a\u0443\u0447\u0435\u0439 \u043b\u0435\u0433\u0430\u0441\u0438.<\/li>\n<li><img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\" width=\"14\"> <a href=\"https:\/\/www.youtube.com\/watch?v=-qi4OCC7oOM\" rel=\"nofollow noopener noreferrer\">\u041e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0430\u0440\u0442\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e PHP<\/a> \u0438 \u043f\u043e\u043f\u0443\u0442\u043d\u043e \u043e \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 Blackfire.io.<\/li>\n<li><img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\" width=\"14\"> <a href=\"https:\/\/www.youtube.com\/watch?v=trVMpLtDqzA\" rel=\"nofollow noopener noreferrer\">Refactoring PHP Platform \u2014 LiveStream #3<\/a> \u2014 \u041b\u0435\u0442\u0441\u043f\u043b\u0435\u0439 \u043e\u0442 Christoph Rumpel.<\/li>\n<li><img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\" width=\"14\"> <a href=\"https:\/\/www.youtube.com\/watch?v=ZE9Wng48KrI\" rel=\"nofollow noopener noreferrer\">PHP Release Radar \u2014 Episode 3: Psalm 4<\/a> \u2014 \u0418\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u0441 \u0430\u0432\u0442\u043e\u0440\u043e\u043c Psalm.<\/li>\n<li><img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\" width=\"14\"> <a href=\"https:\/\/www.youtube.com\/watch?v=7WUQJx-419k\" rel=\"nofollow noopener noreferrer\">PHP Release Radar \u2014 Episode 4: Xdebug 3<\/a> \u2014 C \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430 Derick Rethans.<\/li>\n<li><img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\" width=\"14\"> <a href=\"https:\/\/phpinternals.news\/73\" rel=\"nofollow noopener noreferrer\">PHP Internals News podcast #73<\/a> \u2014 C <a href=\"https:\/\/twitter.com\/crell\" rel=\"nofollow noopener noreferrer\">Larry Garfield<\/a> \u043f\u0440\u043e \u0435\u043d\u0430\u043c\u044b.<\/li>\n<li><img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/webt\/qz\/or\/43\/qzor43-o-hxqow_k8lsqlmniblm.png\" width=\"14\"> <a href=\"https:\/\/phpinternals.news\/74\" rel=\"nofollow noopener noreferrer\">PHP Internals News podcast #74<\/a> \u2014 \u041f\u0440\u043e \u0444\u0430\u0439\u0431\u0435\u0440\u044b \u0441 \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u043c\u0435\u0439\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c Amp \u2013 <a href=\"https:\/\/twitter.com\/_trowski\" rel=\"nofollow noopener noreferrer\">Aaron Piotrowski<\/a>.<\/li>\n<\/ul>\n<p>  <\/p>\n<h3><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/cc2\/4d9\/c95\/cc24d9c95c9841988f8299a8b285e6f6.png\" width=\"20\"> \u0417\u0430\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435<\/h3>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/phel-lang.org\/\" rel=\"nofollow noopener noreferrer\">Phel<\/a> \u2014 \u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 PHP. \u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0438\u0430\u043b\u0435\u043a\u0442\u043e\u043c Lisp \u0438 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u0435\u043d Clojure. \u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430:\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"php\"># Define a namespace (ns my\\example)  # Define a variable with name &quot;my-name&quot; and value &quot;world&quot; (def my-name &quot;world&quot;)  # Define a function with name &quot;print-name&quot; and one argument &quot;your-name&quot; (defn print-name [your-name]   (print &quot;hello&quot; your-name))  # Call the function (print-name my-name) <\/code><\/pre>\n<\/div><\/div>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<hr>\n<p><a name=\"digest-live\"><\/a>   <\/p>\n<div class=\"oembed\"><iframe allowfullscreen id=\"60207d99189a112e083e6175\" src=\"https:\/\/embedd.srv.habr.com\/iframe\/60207d99189a112e083e6175\"><\/iframe><\/div>\n<p> \u0423\u0436\u0435 \u043f\u044f\u0442\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u0441\u0442\u0440\u0438\u043c\u0430 \u043f\u043e \u043c\u043e\u0442\u0438\u0432\u0430\u043c PHP \u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 YouTube-\u043a\u0430\u043d\u0430\u043b\u0435 <a href=\"https:\/\/www.youtube.com\/c\/PHPPoint\" rel=\"nofollow noopener noreferrer\">PHP Point<\/a>. \u0420\u0430\u0437\u0431\u043e\u0440 \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439 \u0438 \u0441\u0441\u044b\u043b\u043e\u043a \u0438\u0437 \u0432\u044b\u043f\u0443\u0441\u043a\u0430 \u0441 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0438 \u0434\u0435\u0442\u0430\u043b\u044f\u043c\u0438. \u041d\u043e\u0432\u044b\u0439 \u0432\u0435\u0434\u0443\u0449\u0438\u0439, \u0433\u043e\u0441\u0442\u044c \u0432 \u0432\u044b\u043f\u0443\u0441\u043a\u0435, \u0438 \u043f\u043e \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438 \u043a\u043e\u043d\u043a\u0443\u0440\u0441 \u0441\u043e \u0441\u043b\u043e\u043d\u0438\u043a\u0430\u043c\u0438.<br \/>   \u041d\u0430\u0447\u0430\u043b\u043e \u0432 20:00 \u041c\u043e\u0441\u043a\u0432\u0430, \u041c\u0438\u043d\u0441\u043a \/ 19:00 \u041a\u0438\u0435\u0432.<\/p>\n<hr>\n<p>  <\/p>\n<p> \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0443 \u0438\u043b\u0438 \u043d\u0435\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u2014 \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u0435, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \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<blockquote><p> \u0411\u043e\u043b\u044c\u0448\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439 \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \u0432 Telegram-\u043a\u0430\u043d\u0430\u043b\u0435 <strong><a href=\"https:\/\/t.me\/phpdigest\" rel=\"nofollow noopener noreferrer\">PHP Digest<\/a><\/strong>.   <\/p><\/blockquote>\n<p>   <a href=\"https:\/\/bit.ly\/php-digest-add-link\" rel=\"nofollow noopener noreferrer\">\u041f\u0440\u0438\u0441\u043b\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443<\/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\/539034\/\">\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 197<\/a><\/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\/post\/541300\/\"> https:\/\/habr.com\/ru\/post\/541300\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\"><a href=\"https:\/\/habr.com\/ru\/post\/541300\/\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ib\/mq\/7s\/ibmq7sj2bn6vlqyj4_c2t7xojmu.jpeg\"><\/div>\n<p><\/a> <em>\u0424\u043e\u0442\u043e: <a href=\"https:\/\/t.me\/phpshnik\" rel=\"nofollow noopener noreferrer\">\u0418\u0432\u0430\u043d \u0413\u0430\u043d\u0446\u0435\u0432<\/a>.<\/em><\/p>\n<p>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 PSR-6 \u0438 PSR-13, \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043e\u043f\u043a\u0435\u0448, \u0430\u043a\u0441\u0435\u0441\u0441\u043e\u0440\u044b \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438 \u0438\u0437 PHP Internals, \u0434\u0438\u0430\u043b\u0435\u043a\u0442 Lisp \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0432 PHP, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b, \u0432\u0438\u0434\u0435\u043e, \u043f\u043e\u0434\u043a\u0430\u0441\u0442\u044b \u0438 <a href=\"https:\/\/habr.com\/ru\/post\/541300\/#digest-live\">PHP \u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442 Live<\/a>.<\/p>\n<p>  \u041f\u0440\u0438\u044f\u0442\u043d\u043e\u0433\u043e \u0447\u0442\u0435\u043d\u0438\u044f!<\/p>\n<p>  <\/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-317626","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/317626","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=317626"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/317626\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=317626"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=317626"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=317626"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}