2014-11-18 2 views
1

Я пытаюсь создать единую установку ZF2 с несколькими веб-сайтами под ней, причем каждый сайт является отдельным модулем. До сих пор с использованием маршрутизации Hostname он работает, за исключением того, что все сайты используют одну и ту же общую папку.PHP ZF2 - несколько сайтов с отдельными общими папками

Есть ли способ настроить каждый модуль на наличие собственной общей папки?

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

+1

Вы считали, что указывать виртуальный хост каждого узла «корень документа» на отдельную папку? – AlexP

ответ

2

Вы можете довольно легко делать то, что вы хотите: корень

  • site1.com документа: ~/проект/site1/публичный
  • site2.com документ корень: ~/проект/site2/общественный

~/project/site1/public/index.php и ~/project/site2/public/index.php оба содержат:

<?php 

// Set time zone. 
date_default_timezone_set('Europe/Paris'); 

/** 
* This makes our life easier when dealing with paths. Everything is relative 
* to the application root now. 
*/ 
define('ROOT_PATH', dirname(__DIR__.'../')); 
chdir(dirname(__DIR__.'../')); 

// Decline static file requests back to the PHP built-in webserver 
if (php_sapi_name() === 'cli-server' && is_file(__DIR__ . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH))) { 
    return false; 
} 

// Setup autoloading 
require 'init_autoloader.php'; 

// Run the application! 
Zend\Mvc\Application::init(require '../config/application.config.php')->run(); 
+0

Удивительно, это решило это отлично, спасибо! – Wige

0

У вас может быть столько общей папки, сколько вы хотите. Просто введите index.php valid include ядра zf2, и все должно работать без каких-либо специальных модификаций (какой модуль для отображения можно указать по пути домена или через глобальную конфигурацию, которую вы поместите внутри index.php).

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

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