Как объявить пути в PHP, чтобы приложение легко перемещалось в некорневую папку? - PullRequest
1 голос
/ 04 декабря 2011

У меня есть настройки Wamp на моем окне Windows.Обычно, когда я отключаю сайт от сети, я создаю папку в моей папке www для имени сайта.пример: c: \ wamp \ www \ mysite.Как только у меня есть папка, я копирую все живые файлы.Проблема заключается в том, что все пути затем нарушаются, потому что моя локальная папка не имеет рута.

Каков наилучший способ настройки путей, чтобы при перемещении сайта в папку без рутирования онработать легко?

Ответы [ 4 ]

2 голосов
/ 04 декабря 2011

Создайте включаемый файл с настройкой констант, основанный на том, какой корневой каталог находится ... затем в своем коде используйте созданные вами константы для включения файлов.

Также обратите внимание, что когда вы используете "косые черты" каталога, всегда используйте константу DIRECTORY_SEPARATOR для сборки вместо жесткого ее кодирования, это позволит вам без проблем переходить от Windows к Linux.

2 голосов
/ 04 декабря 2011

Я использую файл (обычно называемый чем-то вроде config.php), чтобы отслеживать корневую папку.Мои определения (константы) выглядят так:

define('BASE_DIR','/wherever/whenever/');
define('LIB_DIR', BASE_DIR . 'lib/');

А потом, когда вам нужно включить файл

include LIB_DIR . 'aFile.php';

Это будет то, что вы делаете на новом сайте или есливремя реорганизовать ваш текущий сайт.

1 голос
/ 04 декабря 2011

Вариант 1. Используйте тег <base href=""/>

Вариант 2. Используйте файл конфигурации, как @MattCan предлагает

Вариант 3. Использовать переменную среды сервера, как предлагает @Bjorn

Вариант 4. Создайте виртуальный хост на вашем apache, затем вы сможете создать домен, который будет точно определять, где находится папка вашего приложения. Apache Doc здесь

1 голос
/ 04 декабря 2011

Мы используем $_SERVER['DOCUMENT_ROOT'], чтобы определить, где мы находимся в файловой системе, а затем просто добавляем к этому имя папки нашего проекта.Это прекрасно работает для нас.Вы всегда должны использовать файл configuration.php, в котором вы определяете основные пути и URL-адреса, которые могут измениться при перемещении проекта с одного сервера / папки на другой.

...