Zend 2 ::在控制器操作中轻松获取公用文件夹路径或basePath()

时间:2014-05-18 10:26:23

标签: php zend-framework zend-framework2

在我的应用程序中,要将文件移动到特定目录,我需要知道控制器操作中的公用文件夹路径。我读了不同的这种类型的解决方案,但没有变得容易。我知道在视图中我们可以使用$this->basePath();视图助手轻松获取公用文件夹路径。我想在控制器动作中完全想要这个。任何人都可以指导我如何实现这一目标。提前谢谢。

5 个答案:

答案 0 :(得分:12)

index.php将当前工作目录设置为您的应用程序根目录(包含composer.jsoninit_autoloader.php等的文件夹。)

只要您未在应用程序的其他位置调用chdir,就可以致电getcwd(),并始终返回应用根目录的路径。

由于公用文件夹是相对的,因此您可以使用...

获取路径
$publicDir = getcwd() . '/public';

答案 1 :(得分:3)

在公用文件夹中编辑名为index.php的文件 只添加两行

define('BASE_PATH', realpath(dirname(__DIR__)));
define('PUBLIC_PATH', BASE_PATH.'/public');

您可以在代码中使用

print_r(BASE_PATH);
print_r(PUBLIC_PATH);

答案 2 :(得分:0)

您可以在ZF2的控制器中使用视图助手,因为它显示为herehere。你可以试试这个案例:

$renderer = $this->serviceLocator->get('Zend\View\Renderer\RendererInterface');
$url = $renderer->basePath('the_ressource_you_want_to_get_from_public_folder');

希望这就是你要找的东西!

答案 3 :(得分:0)

如果要包含公用文件夹中的文件(与index.php文件的位置无关): include_one(“./ public / your-file.php”);

答案 4 :(得分:0)

如果你想要公共文件夹,你应该尝试这个:

$publicPath = $_SERVER['DOCUMENT_ROOT'];

如果您想要基本路径,请尝试此操作:

$basePath = dirname($_SERVER['DOCUMENT_ROOT']);