个别用户特定的定制

时间:2010-08-09 11:34:55

标签: php mysql database customization accounts

我正在建立一个以个性化用户定制为目标的网站。因此,例如,客户#1可能会说我想要为我的帐户设计此功能,然后用户#2可能会说我想将此添加到我的帐户。我正在考虑实现一个PHP代码,在验证时,每次登录时都会加载这些功能。但我有成千上万的定制,我将要做的,为每个客户端添加每个PHP代码将是可怕的,有没有办法,我可以更轻松,更少的压力吗?

从评论中添加到特定答案: “基本上我正在运营商业智能公司的技术方面。我们提供各种报告和信息以及十几个分析工具。因此,一个用户可能会说我想要你提供的所有内容以及一个自定义功能,其中特定的业务领域是正在分析,然后上传到他们的帐户。你可以想象,很多帐户可能有数百个这样的请求。“

3 个答案:

答案 0 :(得分:0)

您最好的选择是设计自己的框架,或找到支持此级别自定义的现有框架。无论哪种方式,这都不是一个小工作,并且为每个用户启动代码会使您容易出现安全问题以及随着时间的推移由过时方法引起的错误。

问问自己,您正在做什么样的自定义,以及是否可以通过(例如)模板系统从代码级别抽象出来。

答案 1 :(得分:0)

设计可以适合某些通用要求。因此,除非您有一些通用要求,否则您无法进行设计。例如,如果要求是为每个客户端提供不同的外观,那么您可以选择动态主题。同样,对于不同用户的位置更改,您可以考虑用户分析。对于语言,您也可以将用户语言保留为配置文件的一部分。研究用户档案管理的不同方法,然后领先一步。

答案 2 :(得分:0)

正如其他人所说,如果不了解更多关于“定制”的含义,就无法给出具体答案。唯一明智的答案是你已经提供的答案 - 即尽可能多地实现数据中的变量行为。

这本身可能不是一个微不足道的练习 - 在我工作的一个应用程序上,我设计了一个非常成功的启发式人工智能引擎 - 但这是一个相当复杂的软件工程练习,而且我是对于需要提问的任何人都要犹豫不决。

假设将所有应用程序逻辑推送到数据中是不切实际的,那么您可以考虑其他一些方法,例如:将自定义分成单独的php文件(或模板,如果它只是一个显示的东西):

<?php

session_start();
/* do authentication checks...*/
$app=$_SESSION['user_profile'] . '/' . dirname($_SERVER['SCRIPT_NAME'] . '/inc.php');
if (! include_once($app)) {
   include_once('default/'.dirname($_SERVER['SCRIPT_NAME'].'/inc.php');
}
...

尽管将php代码存储在数据库中并在运行时评估它是可行的 - 我不建议这样做,因为它打开了代码注入攻击的大门。 OTOH,可能更容易用不同的语言实现自定义,并从PHP调用它,例如序言

下进行。