Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ZF2多模块基本路径_Php_Zend Framework2 - Fatal编程技术网

Php ZF2多模块基本路径

Php ZF2多模块基本路径,php,zend-framework2,Php,Zend Framework2,在Zend Framework 2上,我尝试在视图管理器中为框架中的每个模块设置不同的基本路径。但是,我为最后一个模块设置的基本路径是正在应用的路径。如何为ZF2设置模块特定的基本路径 以下是我在每个module.config.php中设置基本路径的方式: 'view_manager' => array( 'base_path' => '/zend/modulename/', 'display_not_found_reason' => true, 'di

在Zend Framework 2上,我尝试在视图管理器中为框架中的每个模块设置不同的基本路径。但是,我为最后一个模块设置的基本路径是正在应用的路径。如何为ZF2设置模块特定的基本路径

以下是我在每个module.config.php中设置基本路径的方式:

'view_manager' => array(
    'base_path' => '/zend/modulename/',
    'display_not_found_reason' => true,
    'display_exceptions'       => true,
    'doctype'                  => 'HTML5',
    'not_found_template'       => 'error/404',
    'exception_template'       => 'error/index',
    'template_map' => array(
        'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
        'layout/guest'           => __DIR__ . '/../view/layout/guest.phtml',
        'modulename/index/index'  => __DIR__ . '/../view/modulename/index/index.phtml',
        'error/404'               => __DIR__ . '/../view/error/404.phtml',
        'error/index'             => __DIR__ . '/../view/error/index.phtml',
    ),
    'template_path_stack' => array(
        __DIR__ . '/../view',
    ),
),

我认为您不需要为模块设置基本路径。如果你的Module src文件夹中有Module.php,那么你可以使用DIR或Module.php中的相对路径。

这是为了视图,放在标题中,以便为脚本和样式表创建正确的URL,而不是访问php的相对路径。啊,是的,对不起。这里的问题是,配置是基于阵列的,它可能会被覆盖到任何地方(并且视图管理器在所有模块中共享)。我建议在树中向上移动基本路径,不使用模块名称,然后在模板映射(DIR.'/modulename/./view…)中指定模块名称。对您来说,最好的解决方案是使用一些资产管理。在我的项目中,我使用的是非常容易实现的,并且您可以将所有资产封装在模块目录中,而不会在磁盘空间或性能上出现另一个问题。