Здраствуйте, недавно начал програмить под joomla, вроде получалось. Но позавчера заметил что она при работе использует абсолютные пути к серверу по типу Код (CODE): /srv/www/.... Абсолютные пути составляются спомощью переменной Код (CODE): $mosConfig_absolute_path Подскажите как можно зделать чтоб она использовала пути типа Код (CODE): ./какаято папка или файл , Код (CODE): ../какаято папка или файл .
Ответ: хочу избавиться от абсолютных путей избавиться хочешь в своих компонентах или в других? Зачем? Путь ведется от папки где лежит joomla.php или можно узнать место твоего файла и от него плясать (константа __FILE__ )
Ответ: хочу избавиться от абсолютных путей в моих компонентах я так никогда бы не поступил. Все дело что джумла вся завязана на вставках типа require, и даже до выполнения компонентов произходит ошибка если сменить переменную $mosConfig_absolute_path. А вот про такую константу __FILE__ я не слышал. Где она определяется?
Ответ: хочу избавиться от абсолютных путей В мануале по PHP называется раздел Magic constants, там и надо искать : ) но я так и не понял зачем менять?
Ответ: хочу избавиться от абсолютных путей чтоб можно было зделать каталоги выше чем /srv/www/ недоступными для скриптов php, да и переносимость джумлы от этого только улутшится
Ответ: хочу избавиться от абсолютных путей jamy, представь себе такую ситуацию. Есть фронтенд сайта /index.php и есть админка /administration/index2.php. Тебе нужно и там, и там подключать некоторую библиотеку. Так вот, абсолютный путь к библиотеке один и тот же, а относительный — зависит от того, какой скрипт будет ее подключать. Поэтому чтобы у программистов не было головной боли по этому поводу, они предпочитают использовать абсолютные пути. И правильно делают (это я как программист говорю ).
Ответ: хочу избавиться от абсолютных путей То что вы говорите, Physicist , ясно как божий день. Но я не по своей воле решил это зделать. Поэтому подумал может такое ктото уже делал и подскажет мне какие сложности у меня могут возникнуть. Видимо прийдеться в каждом файле подставлять относительный путь к нужной библиотеке
Ответ: хочу избавиться от абсолютных путей Ну, на крайний случай, присваивайте $mosConfig_absolute_path значение '.' в /index.php, /index2.php, и значение '..' в /administrator/index.php, /administrator/index2.php, /administrator/index3.php. Вот только смысла я в этом не вижу никакого.
Ответ: хочу избавиться от абсолютных путей да, но при такой конфиге не будут работать компоненты. Я думаю зделать както сложнее, но чтоб все сразу запускалось. Смысл в том чтоб переделать джумлу так, чтоб она работала без абсолютных путей Добавлено через 2 минуты а хотя... нет, я не прав, будут! Добавлено через 3 минуты а может и нет...
Ответ: хочу избавиться от абсолютных путей Хум... подозрительно это, распространять что-то собираетесь... только вот я не понял как именно... тем не менее можно попробовать так в файле configuration.php: Код (PHP): $mosConfig_absolute_path = preg_replace("/(\\\|\/)configuration\.php/", "", __FILE__); $mosConfig_cachepath = preg_replace("/(\\\|\/)configuration\.php/", "", __FILE__).'/cache';
Ответ: хочу избавиться от абсолютных путей Спасибо, но этот метод поступает почти также как и было. Он просто подставляет абсолютный путь автоматически.
Ответ: хочу избавиться от абсолютных путей sectus, проще (и наверное правильнее) написать dirname(__FILE__), я так порой пишу когда нужно проект по нескольку раз в день переносится с одного сервера на другой. Но это, на мой взгляд, не имеет никакого отношения к относительным путям.
Ответ: хочу избавиться от абсолютных путей В теме ответ на ваш вопрос, чтоб не было асолютных путей. Я хочу в своем аппаче запретить обращатьсся скриптам к файлам по абсолютным путям. В крайнем случае зделать чтоб аппач не знал про существование каталогов выше чем srv/www/ и абсолютные пути начинались с этой директории.
Ответ: хочу избавиться от абсолютных путей dirname(__FILE__) как раз и позволяет получить абсолютный путь к текущему файлу.
Ответ: хочу избавиться от абсолютных путей да! Я так и поступлю, если моя задумка по поводу функции определения относительного пути не удастся