用于表单密集型应用程序的PHP Framework

时间:2009-03-26 12:46:41

标签: php forms frameworks

我正在寻找一个简单易学的php框架,用于从Access迁移到PHP的应用程序。该应用程序有很多表单(有时每页50多个字段),并且许多字段是相互依赖的(即,您更改一个字段,它会更新其他字段或选项)。

这有什么好的PHP框架吗?我希望它非常简单,因为:

  • 开发者不那么有经验
  • 数据库正在从Access迁移,并没有考虑到OOP的设计,它基本上是按功能划分的表的集合,所以我可能不需要任何ORM(至少目前为止)。

最重要的是表单设计和字段关联的简易性(例如:两个列表框,其中第二个值取决于第一个选定值) - 我知道大多数ajax库对此有一些支持但是我想开箱即用。


编辑:作为澄清,最重要的不是ajax漂亮的东西,虽然它很重要。重要的是一种直接方式来创建基于数据库的表单。数据库的设计并没有考虑到ORM,因此我不需要在ORM层上进行级联删除等花哨的表关联。如果ORM层没有妨碍并简化实现,那么可以,但我怀疑这将是真的。

8 个答案:

答案 0 :(得分:7)

我刚刚使用codeIgniter完成了一个类似但更简单的应用程序,它有一个非常好的form helper

代码示例:

form_hidden('userName', 'johndoe');
// Would produce: <input type="hidden" name="username" value="johndoe" />

form_input('username', @$_POST['userName'])
// Would produce an input populated with a variable  from the post array

你可以使用数组等做各种各样的事情:

$js = 'id="shirts" onChange="some_function();"';

echo form_dropdown('shirts', $options, 'large', $js);

答案 1 :(得分:6)

虽然我肯定会在优秀而简单易学的情况下加入我的支持CodeIgniter但我担心到目前为止,每个人都错过了关于这个问题的房间里的大象。

说实话,我认为任何框架都不会让没有太多经验的开发人员组装每页50多个表单的应用程序变得简单或容易。特别是增加了对ajax就绪支持下拉依赖性的要求。

话虽如此,如果你正在寻找力量和灵活性,我会选择Zend。如果您正在寻找直接简单,我会选择CodeIgniter。

答案 2 :(得分:5)

Code Igniter有一些关于表单的非常好的文档,并为您处理了很多复杂问题。

表单验证类在此处记录:http://codeigniter.com/user_guide/libraries/form_validation.html

还有一个表单助手类,可以很容易地创建表单。

http://codeigniter.com/user_guide/helpers/form_helper.html

这比从头开始构建Web应用程序更容易!


(来源:codeigniter.com

答案 3 :(得分:3)

我是一个很大的symfony粉丝,它对表单助手的形式有很好的支持。查看表单的文档:

http://www.symfony-project.org/book/1_2/10-Forms

答案 4 :(得分:2)

请查看Zend Framework,特别是Zend_Form

它是企业准备好的,有优秀的初学者到高级教程以及“官方”培训课程,而且它是免费的。

您也可以查看CodeIgniter

答案 5 :(得分:2)

毫无疑问,最好的是Zebra_Form, a jQuery augmented PHP library for creating and validating HTML forms:提供服务器端和客户端验证(客户端验证是使用jQuery 1.5.2+完成的)并且有很多预定义规则可以开箱即用;可以轻松添加自定义验证规则(包括基于AJAX);集成了跨站点脚本(XSS)预防机制,可自动从提交的数据中删除潜在的恶意代码,还具有防止跨站点请求伪造(CSRF)攻击的功能;它可以防止自动垃圾邮件发布,开箱即用,不依​​赖于使用蜜罐的CAPTCHA;表单布局可以自动生成,也可以使用模板手动生成;它易学,成熟,并且不断改进;

答案 6 :(得分:0)

哇,这个问题已经过时了!无论如何,我也考虑Symfony (SF) to be the best general purpose framework for PHP,但是在SF 2.0+表单中真的很复杂(因此很复杂),我不认为Symfony是表单密集型应用程序的一个很好的选择,除非它的要求非常具体。重要的是要意识到你需要的东西:如果它是代码的重用(在这种情况下是形式),SF非常好,而且它们的方法与Java EE项目中的方法非常相似。但是如果你想快速得到结果,我会在其他地方寻找,也许是Javascript框架。

如果您想直接使用JavaScript,请查看jQuery Form Framework project

答案 7 :(得分:0)

不考虑通用框架,对于以UI为中心的应用程序,我建议ATK UI。根据麻省理工学院的许可,这是相对较新的(2017年发布)。这就是为什么它是OP的好选择:

  • 专为那些不了解HTML / CSS的人设计。
  • 创建表单只需几行PHP代码。
  • 使用数据库或不使用(由您决定)。
  • 处理各种类型,甚至通过扩展程序上传文件。
  • 与SemanticUI集成,完全响应。

安装:可在www.agiletoolkit.orgcomposer require atk4/ui下载ZIP。

语法:

 <?php

 $app = new \atk4\ui\App();
 $app->initLayout('Centered');
 $form = $app->add('Form');

 $form->addField('name');
 $form->addField('date', null, ['type'=>'date']);

 $form->onSubmit(function($form){ 
    return 'Hello, '.$name;
});

无需其他任何东西,需要安装任何东西或复制资产,它只是有效。如果您愿意,可以与WP,Laravel和其他一些完整堆栈框架集成。