Как правильно построить архитектуру Symfony 4?
Как я собираю проэкт Симфонии
composer self-update 
composer require symfony/symfony-skeletone (требует лимит мемори для пхп свыше 1800М)
Никогда неделайте ничего при старте вручную - Первое правило =)
Если Вам вдруг нужна авторизация из-корробки - 
php bin/console make:auth 
Первый Ваш контроллер
php bin/console make:controller
> MyShopController
Нужен класс для связи с БД
php bin/console make:entity
> Shop
в процессе Вам напишут что Реппозиторий создался автомматически
Мы забыли про БД! Непугайтесь сделайте ещё пару комманд)
php bin/console doctrine:database:create
Теперь можно выгружать таблицы:
php bin/console make:migration
Теперь чтобы увидеть таблицы в самой БД скажем комманду
php bin/console doctrine:migrations:migrate
Вуаля - это Магия Симфонии)
Если что - обращайтесь
Если конкретно по-вопросу - 
У меня роутер выглядит так:
app_product
path: /product/{slug}/{action}
controller: App\Controller\ProductController:indexAction
По ссылке /product/update/#id
POST ajax request
ProductController:
$post = $request->request->all(); // все POST запросы
$product = new Product;
$product->setPrice($post['price']);
...
/product/show/#id
Загружается страничка с продуктом.
Это конкретный пример логики
У доктрины есть Filters решит ваши беды с валидацией (на Хабре есть пару статей). 
Лично мое мнение - в проектах с водопадом и вечными бизнес задачами только сервисы. Это избавит вас от бед. Больше кода - ерунда, Он(код) же ваш, в нем все структурированно и понятно. Не мешайте Entity с логикой, это не AR Yii.