Зачем данные по сайтам хранить в таблице?
Если вам и нужно хранить данные в таблице, то создайте модель Site (таблица site с вашей структурой), потом в контроллёре будете вызывать
$sites = $this->getDoctrine()->getManager()->getRepository('MyBundle:Site')->findAll();
foreach ($sites as $site) {
$className = $site->getClassName();
$parser = new $className();
$parsedContent = parser->getParceData();
}
А абстрактный сласс от которого будут наследоваться другие классы, тут ни при чём. Так как класс модели для создания таблицы в базе совсем другая сущность.