【问题标题】:Using symfony 2.0.x form component standalone独立使用 symfony 2.0.x 表单组件
【发布时间】:2014-08-28 09:41:46
【问题描述】:

如何在 2.0.* 版本中独立使用 symfony-form 组件? documentation 中的示例展示了如何创建表单,但它们使用了 symfony 生态系统的其他部分,例如我目前一无所知的控制器和操作,并且我不想将这些其他组件添加到我的项目中.

我被困在使用 php 5.3.27 的系统上,所以我无法使用更高版本的 symfony。

【问题讨论】:

  • 他们展示的控制器是示例。您只需按照与表单相同的设置进行自己的实现,即可轻松适应您自己的需求。
  • 是的,但这意味着我必须知道控制器如何设置表单组件,这似乎是一个非常复杂的过程,涉及了解一些 symfony 组件如何协同工作,而且似乎没有成为这方面的非常好的文档。无论如何,我已经查看了源代码和测试表单组件的code 是了解事物如何实例化的一个很好的起点。
  • 你应该看看correct documentation,它可能会有很大帮助!如果您想单独查看 Symfony 组件的文档,那么请始终查看组件文档,而不是框架文档。我知道您需要早期版本的文档,但无论如何都可以尝试这些文档,与这些文档的最早版本相比,它不会有太大的不同。
  • 我查看了 2.1 文档,有一些辅助函数有助于创建 2.1 中引入的表单,但是阅读源代码并重新实现并不难。我将发布我的解决方案作为答案。

标签: symfony symfony-forms symfony-2.0 symfony-components


【解决方案1】:

您正在查看错误的文档。如果你想使用 symfony2 表单作为一个独立的组件,你应该查看组件文档。 http://symfony.com/doc/current/components/form/introduction.html

使用composer确定与你的php版本匹配的组件版本

【讨论】:

  • 您链接的文档没有提供关于 2.0.* 的部分,他们提供文档的最早版本是 2.1。在packagist 上有一个 2.0.* 的表单组件。它们链接到我提供的页面上的表单组件 github 项目页面,但 github 页面链接回引用者。
  • 正如 Seer 所说,主要表单文档应该提供有关如何将 symfony2 表单组件作为独立组件使用的正确指南。但是,如果您确实遇到错误,您可以查看主 symfony2 项目 github.com/symfony/symfony/blob/master/UPGRADE-2.1.md 上的升级文件
【解决方案2】:

到目前为止,我所做的工作,我只是查看了表单组件测试的源代码,以了解如何在不使用 symfony 框架的情况下实例化表单。这是对我有用的示例代码:

use Symfony\Component\Form\Extension\Core\CoreExtension;
use Symfony\Component\Form\FormBuilder;
use Symfony\Component\Form\FormFactory;
use Symfony\Component\HttpFoundation\Request;

$request = Request::createFromGlobals();

$coreExt = new CoreExtension();    
$formFactory = new FormFactory(array($coreExt));
$formBuilder = $formFactory->createBuilder('form');

$formBuilder->add('firstname', 'text');
$form = $formBuilder->getForm();
$form->bindRequest($request);
$formView = $form->createView();

【讨论】:

    猜你喜欢
    • 2013-09-07
    • 1970-01-01
    • 2018-09-15
    • 2020-11-11
    • 1970-01-01
    • 2011-09-05
    • 2013-05-02
    • 2016-12-06
    • 1970-01-01
    相关资源
    最近更新 更多