idci / extra-form-bundle
Symfony 扩展包,用于扩展现有的 FormType 功能,以便允许动态表单生成
v6.0.0
2022-11-25 18:07 UTC
Requires
- php: ^7.2|^8.0
- friendsofsymfony/rest-bundle: >=2.5
- google/recaptcha: ^1.1
- gregwar/captcha-bundle: ~2.0
- jms/serializer-bundle: >=1.1
- symfony/dependency-injection: ^4.4|^5.3|^6.0
- symfony/event-dispatcher: ^4.4|^5.3|^6.0
- symfony/form: ^4.4|^5.3|^6.0
- symfony/http-foundation: ^4.4|^5.3|^6.0
- symfony/http-kernel: ^4.4|^5.3|^6.0
- symfony/options-resolver: ^4.4|^5.3|^6.0
- symfony/security-bundle: ^4.4|^5.3|^6.0
- symfony/translation: ^4.4|^5.3|^6.0
- symfony/validator: ^4.4|^5.3|^6.0
Requires (Dev)
- phpunit/phpunit: ~5.7
- symfony/framework-bundle: ^4.4|^5.3|^6.0
- symfony/security-bundle: ^4.4|^5.3|^6.0
- symfony/twig-bundle: ^4.4|^5.3|^6.0
Suggests
- idci/step-bundle: Allow to use the extra form mechanism in a step workflow
- dev-master
- v6.0.0
- 4.0.x-dev
- v4.0.4
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- 3.0.x-dev
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- 2.0.x-dev
- v2.0.12
- v2.0.11
- v2.0.10
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- 1.3.x-dev
- v1.3.1
- v1.3.0
- 1.2.x-dev
- v1.2.0
- 1.1.x-dev
- v1.1.1
- v1.1.0
- 1.0.x-dev
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-dependabot/composer/twig/twig-2.15.3
This package is auto-updated.
Last update: 2024-09-24 10:43:38 UTC
README
ExtraFormBundle 是一个 Symfony 扩展包,扩展现有的 FormType 功能以允许动态表单生成。
此扩展包提供
- 一个构建器,可以从配置数组生成表单。这允许您以任何可以转换为数组的格式(yaml、json 等)配置您的表单,并动态生成表单。
- 一组现成的类型(iban、captcha 等),可直接使用。
- 一个 API,公开所有 symfony 表单类型为 'extra form types'
- 一个 API,公开所有 symfony 验证约束为 'extra form constraints'
安装
使用 composer 安装此扩展包
$ php composer require idci/extra-form-bundle:dev-master
导入扩展包配置
# app/config/config.yml imports: - { resource: '@IDCIExtraFormBundle/Resources/config/config.yml' }
就是这样,您就可以使用 extra 表单构建器了。
使用编辑器
如果您需要 API 或编辑器
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new FOS\RestBundle\FOSRestBundle(), new JMS\SerializerBundle\JMSSerializerBundle(), ); }
启用序列化器
# app/config/config.yml fos_rest: param_fetcher_listener: true # if you want to add configured types service: serializer: jms_serializer.serializer
导入路由
# app/config/routing.yml extra_form: resource: "@IDCIExtraFormBundle/Controller/" type: annotation
安装资源
php bin/console assets:install --symlink
编辑器需要 Bootstrap 和 jQuery。如果您在项目中尚未使用它们,只需在视图文件中添加以下行即可。
{% block javascripts %} {{ parent() }} <script type="text/javascript" src="{{ asset('bundles/idciextraform/js/vendor/jquery-2.2.4.min.js') }}"></script> <script type="text/javascript" src="{{ asset('bundles/idciextraform/js/vendor/bootstrap.min.js') }}"></script> {% endblock %} {% block stylesheets %} {{ parent() }} <link rel="stylesheet" type="text/css" href="{{ asset('bundles/idciextraform/css/bootstrap.min.css') }}" /> <link rel="stylesheet" type="text/css" href="{{ asset('bundles/idciextraform/css/bootstrap-theme.min.css') }}" /> {% endlbock %}
使用配置的类型
您可以通过编辑器注册配置的类型。它允许您访问预配置字段的类型。
在应用程序内核中注册 doctrine 扩展包
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), ); }
然后更新 doctrine 架构。它将在数据库中创建一个表来注册配置的类型。
doctrine:schema:update --force
文档
进一步了解
测试
我们使用 docker 和 docker-compose 运行测试,并附带一个 Makefile。
安装扩展包的开发依赖
$ make composer-update
执行单元测试
$ make phpunit