【问题标题】:Symfony2 standalone form component - setting up a formSymfony2 独立表单组件 - 设置表单
【发布时间】:2011-09-05 10:08:22
【问题描述】:

我正在尝试将 Symfony2 表单构建器组件实现为独立的。 documentation 不过并没有真正谈论这个,只是与使用整个框架有关。

独立版位于Github,但没有文档。

我四处搜索,看到有几个人问这个问题,但似乎没有人有任何答案。

我所需要的只是关于如何设置、构建和查看表单的基本指南。

有人吗?

【问题讨论】:

  • 您可能想看看 PEAR 的 HTML_QuickForm2,它是为独立使用而构建的 :)
  • 谢谢,我知道创建 OO 表单的其他选项,不过我现在只是对 Symfony 感兴趣。

标签: php forms symfony components


【解决方案1】:

/* * 这个文件是 Symfony 包的一部分.....

我从那一行了解到该文件是框架的一部分,不能删除,不能被撕掉,如果你把它从包里撕下来它就不会起作用,因为它需要其他相关的框架中的文件

但是,有一个选项,那就是调查文件并查看它们调用的函数以及它们使用的变量,重新定义它们,然后在许可证允许的情况下将其作为独立使用

【讨论】:

  • 我认为它可以从 Syymfony2 中“窃取”,因为它被设计为模块化(PHP >=5.3 命名空间)。假设您保留目录结构并使用一些自动加载器来包含它,您肯定可以使用EventDspatcher 组件,所以我怀疑表单组件与此没有什么不同。
  • 是的,我说有一个选项,也可以用它撕掉所有需要的组件
  • In docs there is something about components: 即使你不使用框架,它们也可以独立使用,因为它们没有任何强制依赖项
  • 那么他可能需要包含form.php文件并且准备好了
  • 谢谢。文档——正如你所注意到的——讨论了 Symfony2 组件的模块化特性。不过,从我的简短实验来看,Form 组件似乎需要相当多的其他组件才能正常工作,而这些组件没有记录在案。
【解决方案2】:

首先,将表单组件复制到您的项目中,并复制到包含第三方库(不仅是 Symfony 组件,还包括 ORM 或其他)的目录,比如说lib/,所以它在<project_path>/lib/Symfony/Component/Forms

然后你必须自动加载它 - 手动或使用任何 PSR-0 compatible 类加载器,即 SplClassLoader 或 Symfony 的 UniversalClassLoader(有 chapter in docsquick tour 关于这个)。示例:

$loader = new UniversalClassLoader();
$loader->registerNamespace('Symfony', __DIR__.'/lib');
$loader->register();

实际上并没有详细记录使用表单组件,但是在 Symfony Book there are few examples how to use Form classes 关于这个组件,所以我想你必须深入研究源代码,从 Form 类开始(也许稍后你会给出一些反馈关于网络某处的体验?)。

【讨论】:

  • Form 组件没有您提到的文档。我们可以添加类加载器和 stuffs 。但是在文档中仍然没有实例化和执行的位置。文档提到在 Symfony 控制器中使用它。
【解决方案3】:

编辑:我在下面的第一个回复现在已经过时(并且链接不再有效)。请参阅 https://github.com/webmozart/standalone-forms 获取最先进的解决方案。


以前的(现已过时的)答案

我已经努力并设法显示了一个表单(使用 PHP 引擎,而不是 Twig)。

确实需要一些组件:Form,还需要 ClassLoaderEventDispatcherTemplating(用于渲染) 和翻译(用于渲染标签)。您还需要 FrameworkBundle 包中的一些资源(主要是模板)。

更多信息: http://forum.symfony-project.org/viewtopic.php?f=23&t=36412

还有我的迷你教程: http://n.clavaud.free.fr/blog/index.php?article31/symfony2-standalone-form-component-tutorial

【讨论】:

【解决方案4】:

首先不是 Symfony2。但是使用 Aura.Input 和 Aura.View 的一些视图助手创建表单可以轻松引入独立表单和验证。

有兴趣可以阅读http://harikt.com/phpform/,源码在github。

【讨论】:

    【解决方案5】:

    从 Symfony 2.1 开始,表单组件一直在使用 composer。

    您可以在存储库中找到 composer.json 文件。它包含一个依赖映射,可用于获取安装的依赖项。

    您只需在控制台中运行 composer install 即可。

    P.S 我知道这个帖子很旧。我提供的信息适用于任何可能需要它的新用户。

    【讨论】:

      猜你喜欢
      • 2013-05-02
      • 2013-09-07
      • 2014-08-28
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 2014-03-19
      相关资源
      最近更新 更多