В моем приложении для перемещения файла в конкретный каталог мне нужно знать путь общих папок в действии контроллера. Я читал разное решение этого типа, но не получил легкий доступ. Я знаю, что, имея в виду, мы можем легко найти путь $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']);