Language поскольку имя языка будет уникально (скорее всего в таблице languages у вас не будет две записи с именем ru или eng). Создав таблицу lanugages вы избавитесь от дублирования таблиц banner_languages и video_languages и сможете связывать её с любыми другими сущностями. Tag и добавляйте связи с другими.      scope. Он может принимать 2 значения: container (по умолявнию) и prototype. Container означает что запрос сервиса из контейнера всегда будет возвращать один и тот же экземпляр. Prototype означает что сервис будет создаваться каждый раз заново. Поэтому большинство сервисов, которые вы создаете, существуют в одном экземпляре от начала работы скрипта до его конца.      public function indexAction() {
    //...
    return $this->render(
       'key' => $val
    );
}/**
*@Template()
*/
public function indexAction() {
    //...
    return [
       'key' => $val
    ];
}