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