Add lesson 4

- Add initial `PostNodeRepository`
- Move logic to Repository
- Inject `EntityTypeManagerInterface`
- Add `PostNodeRepositoryTest`
- Add failing test method
- Failing test: non-existent service
- The "node" entity type does not exist.
- Create posts
- Add assertions based on the `created` date
- Sort nodes before returning them
- Return values to reset array keys
This commit is contained in:
Oliver Davies 2024-01-13 22:49:20 +00:00
parent 5121502d7f
commit 75b17fd565
4 changed files with 101 additions and 2 deletions

View file

@ -3,12 +3,18 @@
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 {
$nodeStorage = $this->entityTypeManager()->getStorage('node');
$nodes = $nodeStorage->loadMultiple();
$nodes = $this->postNodeRepository->findAll();
$build = [];
$build['content']['#theme'] = 'item_list';
@ -19,4 +25,10 @@ class BlogPageController extends ControllerBase {
return $build;
}
public static function create(ContainerInterface $container): self {
return new self(
$container->get(PostNodeRepository::class),
);
}
}