PHP ZF2 - 具有单独公用文件夹的多个站点


PHP ZF2 - multiple sites with separate public folders

我正在尝试创建一个带有多个网站的 ZF2 安装,每个站点都是一个单独的模块。到目前为止,使用主机名路由可以正常工作,只是所有站点共享同一个公用文件夹。

有没有办法将每个模块配置为拥有自己的公用文件夹?

我看到了一些关于这个问题的其他问题,但它们主要处理路由本身或特定于 ZF1,将公用文件夹保留在模块中。

你可以很容易地做你想做的事:

  • site1.com文档根目录:~/项目/站点1/公共
  • site2.com文档根目录:~/project/site2/public

~/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();

您可以拥有任意数量的公用文件夹。只需放入索引.php有效包含 zf2 核心,一切都应该无需任何特殊修改即可工作(要显示的模块可以通过域路径或通过全局配置指定,您将放入 index.php)。

我仍然认为拥有一个公共文件夹并更改每个域的活动模块是完全可以的,还可以使用一些将配置和内容封装在模块中的资源管理器。最适合这一点的是rwoverdijk/AssetManager。