<?php

namespace Drupal\example\Controller;

use Drupal\Core\Controller\ControllerBase;
use Drupal\example\Repository\PostNodeRepository;
use Symfony\Component\DependencyInjection\ContainerInterface;

class BlogPageController extends ControllerBase {

  public function __construct(
    private PostNodeRepository $postNodeRepository,
  ) {
  }

  public function __invoke(): array {
    $nodes = $this->postNodeRepository->findAll();

    $build = [];
    $build['content']['#theme'] = 'item_list';
    foreach ($nodes as $node) {
      $build['content']['#items'][] = $node->label();
    }

    return $build;
  }

  public static function create(ContainerInterface $container): self {
    return new self(
      $container->get(PostNodeRepository::class),
    );
  }

}