在我的应用程序中,要将文件移动到特定目录,我需要知道控制器操作中的公用文件夹路径。我读了不同的这种类型的解决方案,但没有变得容易。我知道在视图中我们可以使用$this->basePath();
视图助手轻松获取公用文件夹路径。我想在控制器动作中完全想要这个。任何人都可以指导我如何实现这一目标。提前谢谢。
答案 0 :(得分:12)
index.php
将当前工作目录设置为您的应用程序根目录(包含composer.json
,init_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的控制器中使用视图助手,因为它显示为here和here。你可以试试这个案例:
$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']);