Zend 2 :: легко получить путь к общей папке или basePath () в действии контроллера

В моем приложении для перемещения файла в конкретный каталог мне нужно знать путь общих папок в действии контроллера. Я читал разное решение этого типа, но не получил легкий доступ. Я знаю, что, имея в виду, мы можем легко найти путь $this->basePath(); папок, используя $this->basePath(); Просмотреть помощник. Я точно хочу, чтобы это было в действии контроллера. Любой может мне помочь, как я могу это достичь. Заранее спасибо.

index.php устанавливает текущий рабочий каталог в корневой каталог приложения (папка, содержащая composer.json , init_autoloader.php и т. д.).

До тех пор, пока вы не вызываете chdir другом месте приложения, вы можете вызвать getcwd() и он всегда будет возвращать путь к вашему корню приложения.

Поскольку общая папка относительно этого, вы можете получить путь, используя …

 $publicDir = getcwd() . '/public'; 

В вашей общей папке отредактируйте файл с именем index.php, добавьте только две строки

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

вы можете использовать в своем коде как

 print_r(BASE_PATH); print_r(PUBLIC_PATH); 

Вы можете использовать помощники вида из контроллера в ZF2, как показано здесь и здесь . Вы можете попробовать это для своего дела:

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

Надеюсь, это то, что вы ищете!

Если вы хотите включить файл из общей папки (независимость от расположения файла index.php): include_one ("./public/your-file.php");

Вы должны попробовать это, если хотите создать общую папку:

 $publicPath = $_SERVER['DOCUMENT_ROOT']; 

Или попробуйте, если вы хотите базовый путь:

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