在一个巨大的php页面上扩展php函数,更容易为不同的客户定制函数


Scaling php functions on a huge php page to easier customize functions for different customers

我真的不知道如何为我的"问题"创造一个好的问题,但至少我希望它涵盖了我所追求的本质。

我现在正在进行的具体项目在很大程度上是缩放的,数据库中的值为每个客户设置了页面上的大多数属性和显示元素。

但是,在某些点上我不知道任何好的,简单的缩放方法,例如:

当客户登录时,将显示一个用于创建条目的表单。显示哪些输入字段是基于数据库中设置的。到目前为止,一切顺利。但是,对于大多数客户来说,有一个称为"code"的字段,通常是一个4位INT。此外,允许一些客户手动填写此代码,但对于其他客户,它是根据给定条件在提交后自动生成的。

最后一个事件发生缩放问题。因为该输入字段有两种不同的显示方式(它要么显示为活动输入,要么显示为禁用输入)。我解决了这个问题,在DB中向我的客户表添加了一列,该列可以启用或禁用,并且相应地显示输入字段。

这是真正让我的小灰色工作的部分:如果字段被禁用,代码是自动生成的,一些客户可能有给定数量的条目,代码值为1、2、3、4。对于某些客户,如果删除了带有数字"2"的条目,则可以在创建新条目时重用该数字,但对于其他客户,该数字将永远被占用,并且唯一可能分配给新条目的数字是(在本实例中)"5"。值得注意的是,代码总是按从低到高的顺序排列,而不是随机的。

就我所知,这是我能想到的唯一解决办法:

  1. 向数据库添加一个字段,并有三个条件:1为正常的活动字段,2为禁用的字段,具有可重用的数字,3为禁用的字段,具有不可重用的数字(总是从DB中的最大值加1)。
  2. 如果用户有三个选项中的一个,创建相应的函数来调用。

这三个函数将是:

  1. 回显正常的活动字段并存储输入的值
  2. 回显被禁用的字段,检查数据库中存在的数字,并给条目提供不存在的最低可能的代码值(例如,如果有3个条目的值为1,3,4 -给新条目的值为2)
  3. 回显被禁用的字段,检查最高数字(将是最后一个条目),并给新条目提供最高数字的代码+1

这是个好办法吗?或者是否可以更有效地做到这一点?我知道使用1,2或3作为条件的语义并不好,但这只是为了在本例中说明。

我认为也许你把事情变得不必要的困难…我还有其他几个选项:

  1. 您允许自动生成数字和启用/禁用字段,就像您目前所做的那样。对于某些只能重复使用或只能在字段中输入特定数字的客户端,您可以让他们在表单时输入任何他们想要的内容,然后在提交后脚本中决定是否需要将他们发送回表单以重新输入某些内容……更好的是,使用一些jQuery/JS来检查字段,

  2. 其他选项可能是使用下拉菜单<select>。在显示表单之前,您可以根据您的条件在此方法中预先生成允许的字符。