хочу избавиться от абсолютных путей

Тема в разделе "Модернизация расширений", создана пользователем jamy, 03.07.2008.

  1. Offline

    jamy Недавно здесь

    Регистрация:
    03.07.2008
    Сообщения:
    10
    Симпатии:
    0
    Здраствуйте, недавно начал програмить под joomla, вроде получалось. Но позавчера заметил что она при работе использует абсолютные пути к серверу по типу
    Код (CODE):
    1. /srv/www/....

    Абсолютные пути составляются спомощью переменной
    Код (CODE):
    1. $mosConfig_absolute_path

    Подскажите как можно зделать чтоб она использовала пути типа
    Код (CODE):
    1. ./какаято папка или файл
    ,
    Код (CODE):
    1. ../какаято папка или файл
    .
     
  2.  
  3. sectus
    Offline

    sectus специалист

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Ответ: хочу избавиться от абсолютных путей

    избавиться хочешь в своих компонентах или в других? Зачем?

    Путь ведется от папки где лежит joomla.php
    или можно узнать место твоего файла и от него плясать (константа __FILE__ )
     
  4. Offline

    jamy Недавно здесь

    Регистрация:
    03.07.2008
    Сообщения:
    10
    Симпатии:
    0
    Ответ: хочу избавиться от абсолютных путей

    в моих компонентах я так никогда бы не поступил. Все дело что джумла вся завязана на вставках типа require, и даже до выполнения компонентов произходит ошибка если сменить переменную $mosConfig_absolute_path. А вот про такую константу __FILE__ я не слышал. Где она определяется?
     
  5. sectus
    Offline

    sectus специалист

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Ответ: хочу избавиться от абсолютных путей

    В мануале по PHP называется раздел Magic constants, там и надо искать : )
    но я так и не понял зачем менять?
     
  6. Offline

    jamy Недавно здесь

    Регистрация:
    03.07.2008
    Сообщения:
    10
    Симпатии:
    0
    Ответ: хочу избавиться от абсолютных путей

    чтоб можно было зделать каталоги выше чем /srv/www/ недоступными для скриптов php, да и переносимость джумлы от этого только улутшится
     
  7. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
    Ответ: хочу избавиться от абсолютных путей

    По мне так абсолютные лучше.
     
  8. Offline

    jamy Недавно здесь

    Регистрация:
    03.07.2008
    Сообщения:
    10
    Симпатии:
    0
    Ответ: хочу избавиться от абсолютных путей

    ну да, с точки зрения простоты cms :)
     
  9. Physicist
    Offline

    Physicist Недавно здесь

    Регистрация:
    12.09.2006
    Сообщения:
    116
    Симпатии:
    9
    Пол:
    Мужской
    Ответ: хочу избавиться от абсолютных путей

    jamy, представь себе такую ситуацию. Есть фронтенд сайта /index.php и есть админка /administration/index2.php. Тебе нужно и там, и там подключать некоторую библиотеку. Так вот, абсолютный путь к библиотеке один и тот же, а относительный — зависит от того, какой скрипт будет ее подключать. Поэтому чтобы у программистов не было головной боли по этому поводу, они предпочитают использовать абсолютные пути. И правильно делают (это я как программист говорю :) ).
     
  10. Offline

    jamy Недавно здесь

    Регистрация:
    03.07.2008
    Сообщения:
    10
    Симпатии:
    0
    Ответ: хочу избавиться от абсолютных путей

    То что вы говорите, Physicist , ясно как божий день. Но я не по своей воле решил это зделать. Поэтому подумал может такое ктото уже делал и подскажет мне какие сложности у меня могут возникнуть.
    Видимо прийдеться в каждом файле подставлять относительный путь к нужной библиотеке
     
  11. sectus
    Offline

    sectus специалист

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Ответ: хочу избавиться от абсолютных путей

    Зачем???
     
  12. Offline

    jamy Недавно здесь

    Регистрация:
    03.07.2008
    Сообщения:
    10
    Симпатии:
    0
    Ответ: хочу избавиться от абсолютных путей

    а как еще?
     
  13. Physicist
    Offline

    Physicist Недавно здесь

    Регистрация:
    12.09.2006
    Сообщения:
    116
    Симпатии:
    9
    Пол:
    Мужской
    Ответ: хочу избавиться от абсолютных путей

    Ну, на крайний случай, присваивайте $mosConfig_absolute_path значение '.' в /index.php, /index2.php, и значение '..' в /administrator/index.php, /administrator/index2.php, /administrator/index3.php.

    Вот только смысла я в этом не вижу никакого.
     
    Последнее редактирование: 03.07.2008
  14. Offline

    jamy Недавно здесь

    Регистрация:
    03.07.2008
    Сообщения:
    10
    Симпатии:
    0
    Ответ: хочу избавиться от абсолютных путей

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

    Добавлено через 2 минуты
    а хотя... нет, я не прав, будут!

    Добавлено через 3 минуты
    а может и нет...
     
    Последнее редактирование: 03.07.2008
  15. sectus
    Offline

    sectus специалист

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Ответ: хочу избавиться от абсолютных путей

    Хум... подозрительно это, распространять что-то собираетесь... только вот я не понял как именно...

    тем не менее можно попробовать так в файле configuration.php:
    Код (PHP):
    1. $mosConfig_absolute_path = preg_replace("/(\\\|\/)configuration\.php/", "", __FILE__);
    2. $mosConfig_cachepath = preg_replace("/(\\\|\/)configuration\.php/", "", __FILE__).'/cache';
     
    jamy нравится это.
  16. Offline

    jamy Недавно здесь

    Регистрация:
    03.07.2008
    Сообщения:
    10
    Симпатии:
    0
    Ответ: хочу избавиться от абсолютных путей

    Спасибо, но этот метод поступает почти также как и было. Он просто подставляет абсолютный путь автоматически. :(
     
    Последнее редактирование: 03.07.2008
  17. Physicist
    Offline

    Physicist Недавно здесь

    Регистрация:
    12.09.2006
    Сообщения:
    116
    Симпатии:
    9
    Пол:
    Мужской
    Ответ: хочу избавиться от абсолютных путей

    sectus, проще (и наверное правильнее) написать dirname(__FILE__), я так порой пишу когда нужно проект по нескольку раз в день переносится с одного сервера на другой. Но это, на мой взгляд, не имеет никакого отношения к относительным путям.
     
  18. sectus
    Offline

    sectus специалист

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Ответ: хочу избавиться от абсолютных путей

    Physicist, да, ты прав.
    Тогда еще раз, зачем это???
     
  19. Offline

    jamy Недавно здесь

    Регистрация:
    03.07.2008
    Сообщения:
    10
    Симпатии:
    0
    Ответ: хочу избавиться от абсолютных путей

    В теме ответ на ваш вопрос, чтоб не было асолютных путей. Я хочу в своем аппаче запретить обращатьсся скриптам к файлам по абсолютным путям. В крайнем случае зделать чтоб аппач не знал про существование каталогов выше чем srv/www/ и абсолютные пути начинались с этой директории.
     
  20. Physicist
    Offline

    Physicist Недавно здесь

    Регистрация:
    12.09.2006
    Сообщения:
    116
    Симпатии:
    9
    Пол:
    Мужской
    Ответ: хочу избавиться от абсолютных путей

    dirname(__FILE__) как раз и позволяет получить абсолютный путь к текущему файлу.
     
  21. Offline

    jamy Недавно здесь

    Регистрация:
    03.07.2008
    Сообщения:
    10
    Симпатии:
    0
    Ответ: хочу избавиться от абсолютных путей

    да! Я так и поступлю, если моя задумка по поводу функции определения относительного пути не удастся :)
     

Поделиться этой страницей

Загрузка...