gpt4 book ai didi

php - 学习编写 PHP 表单框架

转载 作者:可可西里 更新时间:2023-11-01 13:32:15 26 4
gpt4 key购买 nike

您是否看过专门介绍 PHP 表单框架的书籍、文章或教程?我不是在谈论整个框架,而只是在谈论处理表格的部分。目前,我用过Zend的表单和Symfony的表单,正在学习如何构建一个框架,停留在“如何构建一个表单框架”部分。

我曾尝试阅读 Zend 和 Symfony 的代码,但我认为它们太大太复杂,而且没有任何解释。您有什么建议,甚至有人介意解释表单框架的工作原理(或者更好的是,如何构建表单框架)?

到目前为止我得到了什么:

  1. 我需要创建一个抽象表单对象,以便我的应用程序中的所有其他表单都可以从这里继承。该表单必须至少具有用于配置和保存的方法。
  2. 我们需要一个基本小部件类(用于表单元素)和一个用于表单元素和小部件的基本验证器类。
  3. 我们需要以某种方式连接所有的表单。这是让我困惑的部分。我怎样才能连接所有这些元素?

有人可以给我提示吗?

最佳答案

我在我的小框架中创建了一些东西来抽象表单的创建。

基本上我有两个主要类。元素类和 element_container 类。

我的大部分元素都扩展了元素类,除了 form、fieldset、div 等(包含其他元素的元素)扩展了 element_container 类。

这是我的简单输入类:

class acs_form_input extends acs_element {

public function __construct($name) {

//These propertie is declared in the parent class

//By default the type is set to text
$this->setAttribute('type','text');
$this->setAttribute('name',$name);
$this->setAttribute('id',$name);

$this->tpl_path = 'html/forms/form_input';
}
}

因为它扩展了元素类我只需要说这是什么类型以及它将使用什么模板,渲染的过程都在父类中完成。

element_container 类基本相同,只是它可以容纳其他元素,因此在渲染时有一些额外的处理(基本上是循环渲染元素的 html)

我保留这是一个模型,所以这是一个简单的表单代码:

 $this->form->addText('name','Nome*');
$this->form->addText('empresa','Empresa');
$this->form->addText('morada','Morada')->setAttribute('size','60');
$this->form->addText('cpostal1','C. Postal');
$this->form->addText('cpostal2','-')->setAttribute('size','6');
$this->form->addText('loc','Localidade');
$this->form->addText('tel','Telefone');
$this->form->addText('fax','Fax');
$this->form->addText('email','E-mail*');
$this->form->addTextArea('msg','Mensagem*');
$this->form->addSubmit('sub', 'Enviar »');

希望这能让您了解如何创建自己的表单框架。

注意:我无法将调用链接到表单,因为每个“add[element]”方法都会返回所创建元素的实例。

关于php - 学习编写 PHP 表单框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6173551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com