Property accessors, type intersections, and final constants are officially proposed for PHP 8.1, and two more RFCs have already been adopted. Also in the release are a portion of tools, videos, podcasts, articles, community news.
Enjoy reading!
news
- PHP 7.4.19 , PHP 8.0.6 - Fixed bug in PDO_pgsql.
- PHP version statistics - 2021.1 - Traditional collection of statistics based on the data that Composer sends when connecting to packagist.org.
- PHP 7.4: 45.92% (+3.31)
- PHP 7.3: 21.30% (-5.75)
- PHP 7.2: 12.89% (-2.39)
- PHP 8.0: 9.44% (+9.17)
- PHP 7.1: 5.21% (-2.24)
- Phalcon Roadmap — , v5 . : PHP + . PHP, .
- :
- 18 , 3- PHP- , 19.00 — . PHP ?
- 20 2021, PHP of BY Meetup #36 , 19.00 — .
- 28 , , PHP Russia, 2021.
phpcommunity.ru.
PHP Internals
[RFC] Namespaces in bundled PHP extensions
PHP! (, ..) .
.resource
PHP - . , PHP 8.1 :
IMAPConnection -> IMAP\Connection FTPConnection -> FTP\Connection LDAP -> LDAP\Connection LDAPResult -> LDAP\Result LDAPResultEntry -> LDAP\ResultEntry PgSql -> PgSql\Connection PgSqlResult -> PgSql\Result PgSqlLob -> PgSql\Lob
[RFC] Add return type declarations for internal methods
PHP 8.0 . . , .
, . , .
class SomeStandardClass { public function method(): int {} } class UserClass extends SomeStandardClass { public function method() {} } // Fatal error: Declaration of UserClass::method() must be compatible with SomeStandardClass::method()
. PHP 8.1 . ,Deprecation notice
. PHP 9Fatal error
.
class MyDateTime extends DateTime { public function modify(string $modifier) { return false; } } // Deprecated: Declaration of MyDateTime::modify(string $modifier) should be compatible with DateTime::modify(string $modifier): DateTime|false
[RFC] Property Accessors
.
. ,__get
__set
.C#
:
class Foo { public $prop { get { /* ... */ } set { /* ... */ } } }
readonly :
class User { public string $name { get; } public function __construct(string $name) { $this->name = $name; } }
, public/private :
class User { public string $name { get; private set; } ... }
:
class Foo { public int $bar { get { error_log('Getting $bar'); return $this->bar; } set { assert($bar > 42); $this->bar = $bar; } } }
lazy
guard
PHP 8.1.
[RFC] Pure intersection types
PHP 8.0 , RFC .
TypeA&TypeB
,instanceof TypeA
instanceof TypeB
.
class A { private Traversable&Countable $countableIterator; public function setIterator(Traversable&Countable $countableIterator): void { $this->countableIterator = $countableIterator; } public function getIterator(): Traversable&Countable { return $this->countableIterator; } }
pure intersection types, union . .
[RFC] Deprecate ticks
PHP :declare(ticks=1);
. pcntl.pcntl_signal()
pcntl_async_signals()
. PHP 8.1 PHP 9.
[RFC] Final class constants
final
, .
class Foo { final public const X = "foo"; } class Bar extends Foo { public const X = "bar"; } // Fatal error: Bar::X cannot override final constant Foo::X
RFC: .
- PHP:
- CLion php-src — - PHP 8.1.
- PHP Debian/Ubuntu — PHP.Watch.
- phpbench/phpbench 1.0.0 — . , — , CI . Release Radar #10 .
- ergebnis/factory-bot — Doctrine ORM.
- spatie/file-system-watcher — js- paulmillr/chokidar .
- vtsykun/packeton — packagist composer-, composer/satis , packagist.com .
- rybakit/phpunit-extras — expect*() PHPUnit, .
- infection 0.23.0 — , pestphp/pest.
- captainhookphp/captainhook — Git- PHP . , .
- readme.so — README-. ( PHP).
Symfony
- Symfony 5.3
- Symfony Messenger pcntl_alarm().
- PrestoPHP/PrestoPHP — Silex , .
- TransMaintain — Symfony .
- Symfony #750 (10-16 2021)
Laravel
- laravel-arcanist/arcanist — . .
- Wulfheart/pretty-routes — .
- cerbero90/lazy-json — JSON- illuminate/support (Laravel).
- mailcare/mailcare — mailinator.com, Laravel.
- Form Request Laravel
Yii
- Yii 2021, 2 — Yii 3 Yii 2, , .
- Yii 3: yiisoft/profiler, yiisoft/error-handler, yiisoft/translator, yiisoft/yii-event, yiisoft/assets.
- . thephpleague/flysystem.
- PHP.
- PHP — Larry Garfield, lex111.
- , PHP — .
- — CQRS ES PHP , — .
- MessagePack.
- PHP-SPX PHP.
/
- PHP- .
- PHPFest 2020.
- Xdebug 3 Docker
- PhpStorm Xdebug 3 Linux
- PHP Internals News podcast #84 — - PHP 8.1: Ben Ramsey, Patrick Allaert.
- PHP - — Joe Watkins , PHP , .
Laravel JIT :
- 0xABADCAFE/php-demo-engine — PHP. ASCII- .
- remoteok.io index.php $101k .
5 :
- PHP :
3v4l.org/WMfPP Alexander Lisachenko showed$b = new class { function __destruct() { $GLOBALS['b'] = 2; } }; $a = 1; $b = 1; var_dump($a + $b); // 3
more black magic at PHP Russia 2019. And at PHP Russia 2021 we expect more PHP miracles from him .
If you notice an error or inaccuracy, please let us know in a personal habr or telegram .
Subscribe to the PHP Digest Telegram channel .
Send link
Search links in all digests
← Previous issue: PHP-Digest # 202