1

我正在建立一个考虑个人用户定制的网站。例如,客户 #1 可能会说我希望为我的帐户设计此功能,然后用户 #2 可能会说我希望将此功能添加到我的帐户中。我正在考虑实现一个 php if 代码,在该代码中,每次登录时都会在身份验证时加载这些功能。但是我要进行数十万次自定义,为每个客户端添加每个 php 代码会很糟糕,有没有一种方法可以让我更轻松、更轻松地做到这一点?

从评论中添加到特定答案:“基本上,我正在经营一家商业智能公司的技术方面。我们提供各种报告和信息以及十几种分析工具。所以一个用户可能会说我想要你提供的所有东西以及一个自定义功能,其中"

4

3 回答 3

0

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

这本身可能不是一个简单的练习——在我从事的一个应用程序中,我设计了一个非常成功的启发式人工智能引擎(在 PHP 中)——但这是软件工程中一个相当复杂的练习,我会犹豫是否推荐给任何需要提出问题的人。

假设将所有应用程序逻辑推送到数据中是不切实际的,那么您可能会考虑其他一些方法,例如将自定义拆分为单独的 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 例如 prolog 调用它可能会更容易。

C。

于 2010-08-09T12:06:41.003 回答
0

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

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

于 2010-08-09T11:39:47.577 回答
0

设计可以满足某些通用要求。因此,除非您有一些通用要求,否则您无法进行设计。例如,如果要求每个客户端具有不同的外观和感觉,您可能会选择动态主题。同样,对于不同用户的位置变化,您可以考虑用户分析。对于语言,您也可以将用户语言保留为配置文件的一部分。研究用户资料管理的不同方法,然后向前迈出一步。

于 2010-08-09T11:40:46.090 回答