Индивидуальная настройка для конкретного пользователя - PullRequest
1 голос
/ 09 августа 2010

Я создаю веб-сайт с учетом индивидуальных настроек пользователя. Так, например, клиент № 1 может сказать, что я хочу, чтобы эта функция была разработана для моей учетной записи, а затем пользователь № 2 может сказать, что я хочу, чтобы эта функция была добавлена ​​в мою учетную запись. Я думал о реализации php if code, где после аутентификации эти функции будут загружаться при каждом входе в систему. Но у меня есть сотни тысяч настроек, которые я буду делать, добавлять каждый php-код для каждого клиента будет ужасно, есть ли способ, которым я могу сделать это проще и с меньшим стрессом?

Добавлено из комментариев к конкретному ответу: «По сути, я работаю в технической части компании, занимающейся бизнес-аналитикой. Мы предлагаем различные отчеты и информацию, а также дюжину аналитических инструментов. Поэтому один пользователь может сказать, что я хочу все, что вы предлагаете, а также специальную функцию, которая относится к определенной области бизнеса. анализируется и затем загружается в их учетную запись. Как вы можете себе представить, таких запросов может быть сотни для многих учетных записей. "

Ответы [ 3 ]

0 голосов
/ 09 августа 2010

Дизайн может соответствовать определенным общим требованиям.Поэтому до тех пор, пока у вас не появятся какие-то общие требования, вы не сможете заниматься дизайном.Например, если для каждого клиента предъявляются разные требования к внешнему виду, вы можете перейти на динамическое создание тем.Точно так же для позиционных изменений для разных пользователей вы можете подумать о профилировании пользователей.Что касается языка, вы также можете сохранить язык пользователя как часть профиля.Изучите различные подходы к управлению профилями пользователей и сделайте шаг вперед.

0 голосов
/ 09 августа 2010

Как уже говорили другие, невозможно дать конкретный ответ, не зная намного больше о том, что вы подразумеваете под "кастомизацией". Единственный разумный ответ - тот, который вы уже предоставили, то есть максимально реализовать переменное поведение в данных.

Само по себе это не может быть тривиальным упражнением - для одного приложения, над которым я работал, я разработал эвристический механизм искусственного интеллекта (на 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, например. Пролог.

С * * +1010

0 голосов
/ 09 августа 2010

Лучше всего либо разработать собственный фреймворк, либо найти существующий, поддерживающий этот уровень настройки.В любом случае, это не маленькая работа, и запуск кода для каждого пользователя оставляет вас подверженными проблемам безопасности и ошибкам, возникающим из-за устаревших методов, с течением времени.

Спросите себя, какие настройки вы используетеи если они могут быть абстрагированы от уровня кода (например) системой шаблонов.

...