2012-01-27 2 views
1

Это доступно для любых предложений и задавалось вопросом, может ли пользователь Zend Framework помочь мне в этом.Идеи проекта большого размера, многосайтовые проекты zend

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

Однако, глядя на нечто такое же большое, как StackExchange.com, было интересно, как вы могли бы реализовать многопроцессорный проект с использованием zend, с возможностью создания «основного» веб-сайта, который можно было бы просто продублировать с помощью конфигурации и быть проводились в другом домене, но некоторые функции были расширены.

Я не имею в виду, скопируйте сайт и ссылку на один и тот же фреймворк, но используя фреймворк, расширьте основной веб-сайт (stackexchange.com), чтобы иметь основной форум, как функции, но для создания полного отдельного сайта (stackoverflow.com), которые могут иметь те же функции или больше, где это необходимо.

Причина, по которой я спрашиваю, заключается в том, что им не удалось создать впечатление, что разработчикам stackexchange придется перестраивать сайт каждый раз, и я не верю, что у них 79 копий сайта, связанного с одной или несколькими библиотеками фреймворков.

Если любой разработчик переполнения стека или zend geeks мог пролить свет на это, я был бы счастливым чуваком.

Спасибо!

+0

Использование curl() для получения результатов с отдельного веб-сайта, которое затем может быть сохранено в переменных и переформатировано для другого сайта, может быть вариантом. – HenryGuy

ответ

1

Единственное приложение - не единственная копия библиотеки Zend, обслуживающая несколько (под) доменов, может быть реализована с использованием hostname routes.

На уровне DNS и виртуального хоста все домены отображаются в одну папку public. .htaccess там толкает все запросы через index.php. Это index.php указывает на один APPLICATION_PATH. В бутстрапе маршруты хоста могут использоваться для идентификации домена, на котором был выполнен запрос. Плагин переднего контроллера с крюком routeShutdown() может затем читать дополнительную конфигурацию, зависящую от имени хоста, и принимать другие действия, зависящие от имени хоста (например, настройка макета).

+0

Спасибо, это было то, что я имел в виду, но не знал, как это сделать. Приветствия. –

0

Я считаю, что модульный подход будет работать лучше всего здесь.

Я думаю, что Дэвид Вайнрауб имеет хороший подход с точки зрения использования фронтального контроллера routeshutdown() hook - и я бы сделал то же самое, однако использовал его для установки модуля по умолчанию, например. www.site1.com будет искать контент с модуля site1, который расширяет модуль Core.

Я бы установкам приложения подобным образом к ниже:

|Project 
    |-Application 
     |-configs 
     |-controllers 
     |-models 
     |-modules 
      |-core 
      |-site1 
      |-site2 
      |-site3 
     |-views 
     |-Bootstrap.php 
    |-Docs 
    |-Library 
    |-Public 
    |-.zfproject.xml 

Использование Core модуля, то «подсайты» продлят контроллеры от Core модуля и обеспечивают функциональные возможности были

, который может иметь те же функции или больше, где требуется. '

Смежные вопросы