定制 xis/easy-forms-bundle 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

xis/easy-forms-bundle

最新稳定版本:0.1.2

Composer 安装命令:

composer require xis/easy-forms-bundle

包简介

Easy forms bundle

README 文档

README

Easy form flow handling in Symfony controllers.

Why?

  • use really thin controllers
  • make your controller unit-testable easier
  • Do not Repeat Yourself implementing the boring form-subbmission code!

All you need is to use the @Form class annotation, for example:

@Form("new_form",method="createCreateForm")

With this annotation you can list all the forms used in current controller. The method attribute points to method that creates this particular form.

Now, you can annotate methods which "starts" form-flow with the @FormStarter and the methods which accepts form submission using the @FormAcceptor annotation.

The FormListener will handle the flow, it will create the form and inject it into the template parameters in form-starter methods, so you don't have to do it manually. Also, it will handle the acceptor; bind and validate the form. Note that the form-acceptor method is executed only if the form is valid, so the only thing you need to do in your form-acceptor method is to persist your fresh created/updated entity.

If the form submission fails, the flow stops at starter method - it will show the bound form with error message.

You can also "decorate" the form-acceptor behavior for failed forms. Use the rejector property to point a method which will be executed when form submission fails. This may be useful when you need to show some flash-messages or use some logging.

You may want to access the form in the form-acceptor method. To do this, use the param property of @FormAcceptor annotation and then, the form will be passed as the input parameter of form-acceptor method.

See the PostController class for example how to use those annotations. If you want to see how it works, check out the example symfony-project that uses this bundle.

Note that you need to use the @Template annotations in your form-starter controller, because FormListener needs to act before the view is rendered.

Installation

Just add the following line to the "require" section in your composer.json file:

"xis/easy-forms-bundle": "~0.1"

Don't forget to update composer dependencies:

composer.phar update

Then you need to update your AppKernel.php file and enable the bundle by adding the folowing entry to the $bundles array in registerBundles method:

new Xis\EasyFormsBundle\XisEasyFormsBundle(),

And that's it.

MIT License

The bundle is distributed under the MIT license.

统计信息

  • 总下载量: 21
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-01-11