почему мы используем «форму drupal» Хотя мы можем делать все с помощью «форм HTML»?
В чем разница между формами drupal и формами HTML
Ответы (2)
Drupal Form API предоставляет стандартизированный метод для отображения, проверки и отправки формы на вашем сайте Drupal. Это позволяет другим модулям взаимодействовать с формой, которую вы разрабатываете, и изменять или добавлять поля для изменения поведения формы, если это необходимо.
Используя API форм, вы получаете выходные формы, полностью упакованные в классы и идентификаторы, которые ваша тема может стилизовать так, чтобы они соответствовали графическому дизайну вашего сайта.
Form API выводит безопасные формы, что означает, что форма, которую отправляет пользователь, создается вашим сайтом и не является частью фиктивной страницы, предназначенной для передачи вредоносных данных в вашу базу данных. Процесс проверки позволяет программисту очистить любые данные, чтобы избежать внедрения SQL и других потенциальных угроз безопасности. Это также позволяет избежать одновременного изменения одного и того же содержимого несколькими пользователями.
Я также думаю, что построение формы в виде структурированного массива упрощает проектирование и обслуживание формы.
Это только мои личные заметки об использовании form API. Вы можете прочитать больше по этой ссылке в документации Drupal Form API.
Ответ Паматта хорошо написан, но поскольку ваш вопрос не очень конструктивный/определенный, я пытаюсь добавить некоторые недостающие моменты.
почему мы используем «форму drupal» Хотя мы можем делать все с помощью «форм HTML»?
Нет такого понятия "формы Drupal". Они по-прежнему используют те же теги <input>
, <select>
и т. д., и все по-прежнему HTML. Но модулям предоставляется возможность изменять форму без нарушения HTML.
Вот обычная форма Drupal:
$form['text'] = array(
'#type' => 'textfield',
'#maxlength' => 120,
'#title' => t('Name'),
);
Это всего лишь массив PHP, и если вы хотите изменить максимальную длину, вы можете легко это сделать. Что, если бы это было <input name="text" maxlength="120" />
? Если конкретный модуль хотел изменить его, для этого вам нужно использовать какое-то регулярное выражение.
Кроме того, формы, сгенерированные Drupal Form API, могут иметь *дополнительные** функции проверки, а также функции отправки.
**дополнительно:* Как и в приведенном выше примере, вам не нужно проверять, что длина текста не превышает 120. Кто-то может отредактировать HTML и отправить 200 символов для этого поля, но API формы может отказать в этом. Form API может выполнять основные проверки, такие как проверка того, что обязательные поля заполнены, максимальная длина не превышена, запрос безопасен для CSRF, значение списка выбора действительно находится в списке разрешенных и т. д.
Если вы настаиваете на том, что вам нужно использовать необработанные HTML-формы, вы должны добавить свои собственные токены форм, кеши, средства проверки данных и т. д. Когда вы закончите, вы обнаружите, что это уже сделано и получило имя «Form API».