Поскольку по большей части используемые типы полей очень похожи на столбцы схемы, при условии, что вы спроектировали схему правильно с самого начала ;-) Например, varchar(200)
означает однострочный ввод текста, длинный текст MySQL переводится в текстовое поле и так далее. Быстро и просто перейти к рендерингу, возможно, после нескольких настроек. Сгенерированные классы форм также дают вам место для проверки всех валидаторов виджетов форм для проверки формы.
Конечно, вы можете использовать классы валидатора, где хотите, но фреймворк форм это прекрасно, я чувствую.
Визуализация формы - это отдельная проблема - как вы упомянули, у вас есть на это представление. Ленивый подход в Symfony состоит в том, чтобы просто выполнить <?php echo $form; ?>
, но предпочтительно визуализировать отдельные поля, например: <?php echo $form["fieldname"]->render(); ?>
и так далее. Если ваши представления структурированы следующим образом, ваши внешние разработчики должны иметь возможность изменять порядок полей по своему усмотрению.
Редактировать : Добавление классов и других атрибутов при рендеринге:
<?php
echo $form["fieldname"]->render(
array("class" => "myNewClass", "title" => "My Title", ...)
);
?>
Редактировать 2 По сути, я пытаюсь донести до вас, что вы всегда сможете найти пример того, где фреймворк форм в Symfony не подходит. Вы сможете найти это, вероятно, для каждого компонента в каждом фреймворке ;-) Но в большинстве случаев он работает нормально и с относительной легкостью. Если вы обнаружите, что постоянно боретесь с этим, то я бы посоветовал вам либо подойти с неверной точки зрения, либо вы просто нашли все упомянутые выше угловые случаи: -)