? to factorial :n
> ifelse :n = 0 [output 1] [output :n * factorial :n - 1]
> end
И вызвать:
? print factorial 5
120
Это использует диалект UCBLogo логотипа.
Повторное использование кода определенно желательно. По вашим постам сложно представить, насколько сайты будут отличаться друг от друга. Мы говорим о логотипах, цветовых схемах или другой функциональности?
Я начну с другого внешнего вида. Я также предполагаю, что это единственное приложение на сервере.
Я рекомендую тщательно спланировать структуру каталогов. Что-то вроде:
www-root/
/ lib
/ themes
/ domain1
/ domain2
index.php:
<?php
$host = $_SERVER['HTTP_HOST'];
$include_theme = "themes/" . $host . "/configuration.php";
//make sure the file exists
require_once($include_theme);
Это упрощенный подход, но есть кое-что о нем.
На самом деле это очень просто.
Ваша кодовая база может и должна быть единой. Вы загружаете его на hosting1 и hosting2. При обслуживании, как только вы обновите код, загрузите его на оба хостинговых пространства.
Я полагаю, что этот сайт работает так же. Посмотрите на нижний колонтитул страницы. У вас есть stackoverflow, meta, superuser и serverfault. Если вы посмотрите, что прямо сейчас говорится в комментарии внизу справа, это будет «svn revision: 5404». Тоже самое. Одна кодовая база опубликована на четырех сайтах. Базы данных, конечно, разные и содержат совершенно другой контент.
Итак, переменные части:
Конфигурация
Настройки
Данные
Те, которые вам нужно скопировать.
Вам необходимо закодировать его таким образом, чтобы конфигурация и настройки не были жестко закодированы, а либо сохранялись в какой-либо таблице базы данных или, по крайней мере, в некоторых внешних файлах конфигурации. Они не являются частью кода (или реализации, если хотите), поэтому они не должны быть в коде. Если они у вас есть, выньте их.
Я полагаю, вы могли иметь два разных домена, указывающих на один и тот же сервер, и устанавливать разные конфигурации на основе имени хоста. Я бы не рекомендовал это. Вы можете столкнуться с проблемами со стабильностью и производительностью, особенно если у вас большая база пользователей или большое количество доменов, указывающих на кодовую базу.
Как правило, если у вас несколько сайтов, у вас должен быть свой сервер для каждого.
Изменить:
Прочитав комментарии к другому ответу, я немного лучше понимаю ваш вариант использования.
Если у вас есть большое количество сайтов, для которых вы хотите использовать эту настройку, если вы разрабатываете правильную архитектуру и реализовать какую-то схему балансировки нагрузки для обработки больших пользовательских нагрузок, вы можете заставить эту работу работать.
Резюмируя:
Сейчас мы делаем это примерно с 15 000 уникальными доменами. Это несложно, но для правильной реализации требуются некоторые конструктивные особенности.
Вы можете сделать это, используя единую базу кода и сервер, и по сути просто построить свой код так, чтобы он полностью зависел от значения входящего запроса HTTP_HOST . Затем все в вашей БД отключает это значение, чтобы правильно разделить данные и ответить на запрос соответствующими данными / html.