FGM's version of the code suggested in the SF4 book.

Frederic G. MARAND b7e8aabb9f Ch. 4: Using session data and flash messages. Extending layouts. %!s(int64=7) %!d(string=hai) anos
.idea 7fbde110a6 Ch. 4: Handling errors, 404s. Injecting the request. %!s(int64=7) %!d(string=hai) anos
bin f8830b8a47 Initial commit: generated skeleton + composer require server. %!s(int64=7) %!d(string=hai) anos
config d230f127f7 Ch. 4: Using session data. %!s(int64=7) %!d(string=hai) anos
public 954eaf1efd Ch. 1: Support annotated routes with composer require annotations. %!s(int64=7) %!d(string=hai) anos
src b7e8aabb9f Ch. 4: Using session data and flash messages. Extending layouts. %!s(int64=7) %!d(string=hai) anos
templates b7e8aabb9f Ch. 4: Using session data and flash messages. Extending layouts. %!s(int64=7) %!d(string=hai) anos
.env.dist f8830b8a47 Initial commit: generated skeleton + composer require server. %!s(int64=7) %!d(string=hai) anos
.gitignore f8830b8a47 Initial commit: generated skeleton + composer require server. %!s(int64=7) %!d(string=hai) anos
composer.json 7fbde110a6 Ch. 4: Handling errors, 404s. Injecting the request. %!s(int64=7) %!d(string=hai) anos
composer.lock 7fbde110a6 Ch. 4: Handling errors, 404s. Injecting the request. %!s(int64=7) %!d(string=hai) anos
symfony.lock 7fbde110a6 Ch. 4: Handling errors, 404s. Injecting the request. %!s(int64=7) %!d(string=hai) anos