предложения по поиску пути к папке? PHP

Я работаю над проектом, который работает с WordPress. Итак, все файлы проекта находятся в папке с именем WP_project в папке WordPress.

Теперь не у всех пользователей wordpress установлен в корне, а в папке (как для поддомена например).

Так что я могу просто проверить (во время установки), находится ли папка wordpress в корне, и если да, отлично, если нет, мне придется приостановить установку и попросить пользователя указать правильный путь к ней, и все эта проблема.

Один — не все пользователи разбираются в компьютерах, и их хозяева могут поместить папку WP в другое место, не информируя об этом пользователя, поэтому они могут не знать, где она находится, или, что еще хуже, они могут не знать, что они даже просят сделать...

Два. Даже если я каким-то образом найду папку WP, как мне внедрить ее в каждый скрипт, который должен знать? Например, это то, что у меня есть на каждом скрипте (в проекте):

if(file_exists($_SERVER['DOCUMENT_ROOT'].'/wordpress')){

$folder_rt=$_SERVER['DOCUMENT_ROOT'].'/wordpress';

}elseif(!file_exists($_SERVER['DOCUMENT_ROOT'].'/wordpress')){

$folder_rt=$_SERVER['DOCUMENT_ROOT'];

}

Итак, что это делает; 1 Проверьте, существует ли папка WordPress в корне. 2 Если это так, отлично, назначьте $folder_rt его пути, но если это не так; просто назначьте $folder_rt корневому пути (при условии, что WordPress установлен в корневом каталоге).

Итак, если я найду путь к папке (в конце концов), как мне назначить ему $folder_rt в каждом скрипте. Я не могу сохранить путь в отдельном файле, потому что тогда мне пришлось бы включать/требовать этот отдельный файл в каждом сценарии, что невозможно сделать без пути к папке (с использованием абсолютных путей). То же самое с сохранением пути в БД, мне пришлось бы сделать отдельный файл для функции проверки БД (потому что я не думаю, что безопасно хранить конфиденциальную информацию БД в каждом скрипте...).

Я как бы придумал решение, но я считаю, что должен быть лучший способ, и он на самом деле не продуман;

При установке, если папку WP не удается найти, запросите у пользователя путь, а затем сохраните этот путь в отдельном файле в корне. Затем я могу просто проверить наличие этого файла в каждом скрипте... поэтому вместо приведенного выше примера кода я мог бы иметь что-то вроде этого в каждом скрипте:

 if(file_exists($_SERVER['DOCUMENT_ROOT'].'/wordpress')){

    $folder_rt=$_SERVER['DOCUMENT_ROOT'].'/wordpress';

    }elseif(file_exists($_SERVER['DOCUMENT_ROOT'].'/wp-config')){

    $folder_rt=$_SERVER['DOCUMENT_ROOT'];

    }
elseif(file_exists($_SERVER['DOCUMENT_ROOT'].'/project_pathfile.php')){

require_once($_SERVER['DOCUMENT_ROOT'].'/project_pathfile.php');

$folder_rt=$path_from_sep_file;

}

Должен быть лучший, более профессиональный способ сделать это правильно?

Любые предложения? Спасибо


person Community    schedule 15.03.2012    source источник
comment
измените свой elseif на else, потому что файл может только существовать или не существовать. Там нет никакого среднего. И поместите else в конце всех elseifs   -  person Gabriel Santos    schedule 15.03.2012


Ответы (1)


dirname(__FILE__) (или просто __DIR__ в 5.3+, IIRC) даст вам имя каталога, в котором находится текущий скрипт. Если файлы всегда будут находиться в непосредственном подкаталоге папки wordpress, то dirname(dirname(__FILE__)) (или dirname(__DIR__)) должен дать вам расположение каталога wordpress. Нет необходимости в настройке.

person cHao    schedule 15.03.2012