Codeigniter - 应用程序开发建议

时间:2010-08-10 23:03:45

标签: php codeigniter

我正在构建一个客户端应用程序,这是一个循序渐进的工具,允许用户输入不同“部分”的数据,稍后输出到他们可以下载的html文档中

我的目标是使这个应用程序非常灵活,以便客户端的任何更改都不需要大量的重建。

我正在使用Codeigniter框架。

我目前正在考虑的方式是,我在数据库表中定义了每个步骤,称为“步骤”

在初始化时,应用程序加载此表并从步骤0开始到10 - 这一切都很简单,它为每个步骤加载一个新视图,基本上是一个模板

每个步骤可能要求用户在文本框中输入一些数据,或者textareas和其他步骤要求他们从单选按钮中选择值。

不同的步骤需要一些不同的处理,即文本只存储在数据库中,单选按钮总计和平均等等,并且每个步骤都有不同的验证规则

我想以足够的灵活性构建它,以便如果客户端稍后更改内容,我们就不必重建应用程序,这就是为什么我在db表中创建了行作为行的原因,但我不确定如何去关于处理数据的不同步骤和不同的验证。我可以用一大堆条件有一个单独的函数,但这似乎变得非常混乱,看起来不对。

我希望这是有道理的,所以我想我的问题是,最好的方法是什么?

3 个答案:

答案 0 :(得分:1)

我认为这取决于评估,实际上,什么可能会发生变化,并以足够的灵活性编码那些合理的部分,最大限度地减少耦合,这样您就不必进行重大改写

在不知道上述任何内容的情况下,(最初)我只有一个控制器,其动作从参数中获取步骤#。然后我会有一个基本的业务逻辑类(我通常把我所有的b。逻辑放在CI库中并注入依赖关系)和几个代表每一步的子类。

这些类中的每一个都将负责初始化/设置(加载所需的库,模型,帮助程序等),验证和处理(根据当前步骤的要求存储提交的数据)。

最初,我不会将步骤放在数据库中。

显然,通用步骤控制器可以通过基于步骤#参数设置视图,创建对象,重定向等来实现一些魔力。

HTH

答案 1 :(得分:1)

我有一个非常大的多步形式的类似项目。每一步都有大约20 - 40个表格字段。完成每个步骤并单击“下一步”按钮后,您将验证数据,在需要时显示表单验证错误,一旦没有错误,您将数据存储在会话中。

$my_data['step_1'] = $an_array_with_your_data_1;
$this->session->set_userdata($my_data);

然后在下一页

$my_data['step_2'] = $an_array_with_your_data_2;
$this->session->set_userdata($my_data);

如果您需要处理数据,可以在通过set_userdata()插入数据之前处理$ an_array_with_your_data_1;或者,在收集完所有未处理的数据后,最后执行此操作。您可以通过

检索每个步骤的数据
$this->session->userdata('step_1');

确保将会话放在数据库中,因为您可以在cookie中存储多少限制。因此,您只需要1个表,创建表的查询为here,您需要设置的配置选项($config['sess_use_database'] = TRUE;

这是完全可行的,这就是会议的目的。

您可以使用一个名为Steps with steps with step_1(),step_2()等的控制器。

yourdomain.com/steps/step_1 yourdomain.com/steps/step_2

每个URL都映射到Steps控制器中与segment_2同名的函数。

答案 2 :(得分:-1)

恕我直言,你可以使用$ _SESSION让生活变得更轻松,你仍然可以显示不同的视图,并在最后保存文件...如果你真的想要使用数据库(必须能够恢复一个文件),每个步骤使用一个表可能会有点凌乱。您必须从10个不同的表中提取行以将它们拼凑在一起。我会建议一张桌子。宽度没有问题。就您的实际问题而言,如果您愿意,可以为每个步骤配备一个控制器(每个步骤都先向控制器发布)。这可能使代码更易于管理。