Несколько сайтов, у которых может быть как много общего (отличия только в шаблонах), так и вообще ничего общего. Таблицы в бд будут общими, если это некоторая универсальная сущность, например, languages - таблица с id, code и title языка, так и разными, например products и articles, в том числе и с совпадающими именами, например categories. При этом разносить таблицы по разным бд - не желательно, покрайней мере для общих таблиц, т.к. предполагается использовать внешние ключи и JOIN. Т.е. напрашиваться префикс для необщих таблиц.
Какой тут лучше фреймворк выбрать? И какая структура лучше всего подойдет? Для минимизации копипаста общих частей проекта.
У вас что-то типа мультенантного (multitenant) приложения с единой админкой.
1. В вашем случае чего-то особого именно под вашу задачу вам не даст ни Yii3, ни Symfony, ни какой-либо другой фреймворк. Ну разве что в Yii3 вам может помочь система виджетов (если у вас классический рендеринг HTML, а не какой-то React).
2. Основная сложность — не выбрать фреймворк, а придумать, как именно выстроить архитектуру. Тут очень сильно зависит от требований к изоляции или не изоляции данных между сайтами, от того, сколько общего у разных сайтов сейчас и, главное, насколько эти сайты могут разойтись в функциональности через год или два (иногда копипаст — добро).
У меня похожая история — в итоге взял Symfony, там это давно обкатано. Есть готовый Doctrine prefix bundle для сайт-специфичных таблиц, общие entity без изменений, куча примеров. Yii3 stable только с декабря, экосистема под такой кейс жиже.
По структуре мыслишь верно: общий код и модели — в отдельный bundle, который все сайты подключают.