palmtree / form
具有 Bootstrap v5/v4 类、验证、Recaptcha 支持、AJAX 提交等功能的形式构建器
v6.1.0
2024-08-23 14:14 UTC
Requires
- php: >=8.1
- palmtree/argparser: ^2.1
- palmtree/html: ^4.0.2
- palmtree/nameconverter: ^2.0
Requires (Dev)
- palmtree/php-cs-fixer-config: ^2.0
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.2
Suggests
- ext-curl: For Google Recaptcha support
- ext-fileinfo: For mime type upload validation
- ext-json: For Google Recaptcha support
This package is auto-updated.
Last update: 2024-09-02 09:52:34 UTC
README
PHP 表单构建器,带有 Bootstrap 类、验证、数据绑定、Google Recaptcha 和 hCaptcha 支持,以及其他功能。
要求
- PHP >= 8.1
安装
使用 composer 将包添加到依赖项
composer require palmtree/form
可选:安装 NPM 包以支持 AJAX 表单提交、CAPTCHA 支持和表单集合
npm install @palmtree/form
使用示例
构建
use Palmtree\Form\FormBuilder; use Palmtree\Form\Captcha\GoogleRecaptcha; use Palmtree\Form\Captcha\HCaptcha; $builder = (new FormBuilder('my_form')) ->add('name', 'text', ['error_message' => 'Please enter your name']) ->add('email_address', 'email', [ 'help' => 'We will never share your email with anyone', ]) ->add('message', 'textarea', [ 'required' => false, 'label' => 'Enter your message', ]) ->add('recaptcha', 'captcha', [ 'captcha' => new GoogleRecaptcha('<site_key>', '<secret>'), //'captcha' => new HCaptcha('<site_key>', '<secret>'), ]); $builder->add('send_message', 'submit'); $form = $builder->getForm(); // Set $form to some variable accessible in a view
渲染
<div class="container"> <?= $form->render(); ?> </div> <!-- Optional JS for AJAX submissions, CAPTCHA support and form collections --> <script src="https://unpkg.com/@palmtree/form@6.1.0/dist/palmtree-form.pkgd.min.js"></script>
处理
$form->handleRequest(); if ($form->isSubmitted() && $form->isValid()) { // Send an email/save to database etc $name = $form->get('name')->getData(); }
查看 examples 目录,了解使用 AJAX、文件上传、集合等功能的示例。
文档
查看文档 了解更高级的使用方法。
示例
运行示例的最简单方法是运行 serve.sh 脚本。此脚本启动一个小的 PHP Docker 容器,并使用 PHP 内置的 web 服务器提供示例。
./examples/serve.sh
许可证
在 MIT 许可证 下发布