for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace App\Crossword\Features\Constructor;
use JsonSerializable;
/**
* @psalm-immutable
*/
final class CrosswordDto implements JsonSerializable
{
* @var LineDto[]
private array $lines;
public function __construct(LineDto ...$lines)
$this->lines = $lines;
}
public function withLine(LineDto $line): self
return new self($line, ...$this->lines);
* @psalm-suppress ImpureFunctionCall
public function jsonSerialize(): array
return array_map(static fn (LineDto $line): array => $line->jsonSerialize(), $this->lines);