получить итератор каталога для запуска из webroot - PullRequest
1 голос
/ 15 сентября 2010

Мои сайты для разработки и производства, написанные на php, должны использовать итератор каталогов, чтобы получить некоторые файлы. Каталог-итератор запускается в базовом каталоге диска, т.е. c: /. Однако на серверах dev и prod папка webroot находится в другом месте.

Есть ли способ заставить итератор каталогов запускаться в webroot. Или какой-то похожий метод, который я могу использовать, чтобы использовать один и тот же код в dev и prod, не беспокоясь о том, где на диске хранится приложение.

Ответы [ 2 ]

0 голосов
/ 20 октября 2010

Запуск пути с помощью getenv ("DOCUMENT_ROOT") работает

0 голосов
/ 15 сентября 2010

A DirectoryIterator создается с $path.Просто измените его на webroot.

DirectoryIterator::__construct()  ( string $path  )
  • path: путь к каталогу для перемещения.

Вы можете сохранить путь кwebroot в файле конфигурации для каждой среды или определить его во время выполнения и сохранить его как константу или в реестре или другом доступном месте во время начальной загрузки.Например, если вы вызываете свой прямой доступ к своему приложению через FrontController, который находится в index.php в webroot, вы можете сделать:

$root = dirname(__FILENAME__);

и сохранить его в константе, реестре или чем-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...