Синтаксис промоушена свойств (constructor property promotion) — короткая запись, появившаяся в PHP 8.0.
// call class
dispatch((new UpdatePost($postId, $wpPostId))->onQueue('update-posts'));
// class constructor
class UpdatePost implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function __construct(
public int $postId,
public int $wpPostId
) {}
....
🧠 Что делает этот конструктор?
Этот конструктор:
- Автоматически создаёт публичные свойства
$postIdи$wpPostIdв классе; - Автоматически присваивает значения этим свойствам при создании объекта.
⏱️ Эквивалент на старом синтаксисе (до PHP 8):
public int $postId;
public int $wpPostId;
public function __construct(int $postId, int $wpPostId)
{
$this->postId = $postId;
$this->wpPostId = $wpPostId;
}
📌 Резюме
Конструктор public function __construct(public int $postId, public int $wpPostId):
- Это сокращённый способ объявления и инициализации свойств;
- Полностью эквивалентен обычному конструктору с присвоением
$this->...;
