Относительные пути...

  • Автор темы Автор темы kombat
  • Дата начала Дата начала
Автор оригинала: cDLEON
Мля...Я сейчас матюкаться начну.
Скинь мне пожалуйсто переделанный и попробыванный мой код.
тысяча чертей.. каналья )) я уже слюнями брызгаю ))

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

/dir4/4.php:
PHP:
<?php
$rootdir = "./../"; // путь к корню проекта
require($rootdir."dir/2.php");
?>

/dir/2.php:
PHP:
<?php
//обратите внимание, в этом файле $rootdir не объявляется. он инициализируется в /dir4/4.php (или в /1.php)
require($rootdir."dir/dir3/3.php"); // путь будет от корня проекта
?>

все работает даже если инклудить из /1.php:
PHP:
<?php
$rootdir = "./"; // корень
require($rootdir."dir/2.php");
?>
 
kombat
недостаток один. твой $rootdir разный для каждого уровня относительно корня. при переносе модуля из уровня в уровень надо не просто менять на фиксированное значение (как при переносе из проекта в проект при абсолютном пути) а вычислять какое значение будет для данной директории.
если путь абсолютный, то неважно откуда по нему делается инклюд и при переносе некой коллекции модулей в другой проект все что надо заменить у них у всех подстроку со старым корнем на новый корень один раз и все.
 
Ну коль вам трудно, то и мне....до одного места ваши проблемы.
 
Автор оригинала: dimagolov
kombat
недостаток один. твой $rootdir разный для каждого уровня относительно корня. при переносе модуля из уровня в уровень надо не просто менять на фиксированное значение (как при переносе из проекта в проект при абсолютном пути) а вычислять какое значение будет для данной директории.
если путь абсолютный, то неважно откуда по нему делается инклюд и при переносе некой коллекции модулей в другой проект все что надо заменить у них у всех подстроку со старым корнем на новый корень один раз и все.
Ну наконец-то нашелся кто-то кто смог по человечески ответить. СПАСИБО, dimagolov. теперь проблему вижу!

PS cDLEON, вы не вникли в мой код еще и обвиняете меня в неуважении... :) только не надо щас заявлять что вы говорили о той же проблеме что и dimagolov.
 
kombat
Самое интересно такой ответ был дан, вроде позавчера, на тот же вопрос - отсюда какой вывод?
 
dimagolov
а вычислять какое значение будет для данной директории.
ну на простом Core2 это значение высчитывается максимум за неделю, не больше..

вообще на примере выше пояснить мона? а то я, в отличие от топикстартера, ниче не понял(
 
Автор оригинала: HraKK
kombat
Самое интересно такой ответ был дан, вроде позавчера, на тот же вопрос - отсюда какой вывод?
Блин тупанул признаю.. сплю уже.

по воводу ответа dimagolov'а - не согласен. так и так придется менять путь к корню. просто если перенести систему модулей например на один уровень ниже то $rootdir дополнится "/../" и ничего там высчитывать не надо. а в случае с абсолютными путями надо будет дописать название новой папки. в общем преимущества абсолютных путей перед моим способом ВСЕ РАВНО не вижу!

PS dimagolov, слова благодарности назад не забираю. всегда ценил адекватных людей, которые могут общаться в нормальном тоне без оскорблений :)
 
Ты не оттуда копаешь. Чем абсолютные пути хуже относительных. Сюда копай - ответ тебе сразу дам, нечем.
Поэтому не долбай не себе не людям моск, пожалуйста твои темы уже парят.
 
у. Для этого надо прокачать заклинания абсолютной власти! Заюзать абсолютный зор, который откроет тебе абсолютный путь!
 
Автор оригинала: HraKK
Ты не оттуда копаешь. Чем абсолютные пути хуже относительных. Сюда копай - ответ тебе сразу дам, нечем.
Поэтому не долбай не себе не людям моск, пожалуйста твои темы уже парят.
т.е. я правильно понял: мой метод ничем не уступает абсолютным путям?
 
HraKK
у мну 20статов нераспределенных и пару лямов экспы.. научи меня, о великий сенсей, раскрой тайну мироздания, великую загадку вселенной - где взять путь к корню проекта из файлика /dir1/dir2/test.php ? обещаю после этого перестать есть свинину!

ЗЫ. богу абсолютного пути молюсь каждый день, но он пока не ниспослал на мну благодать
 
Великий сенсей мне поведал что из /dir/dir2/ вам не надо узнавать путь к корню проекта.
 
ЕЩЕ РАЗ (для тех кого мои темы НЕ парят):


Вот код:

1.php подключает 2.php:
PHP:
$rootdir = "./";
require("2/2.php");

2.php подключает 3.php:
PHP:
require($rootdir."3/3.php"); // фишка в том, что $rootdir инициализируется в подключаюЩЕМ файле

и 4.php подключает 2.php:
PHP:
$rootdir = "./../../";
require("./../../2/2.php");

Какие могут быть подводные камни в этом методе?
Варианты ответа:
1. никаких
2. не знаю
3. описание подводных камней.

И почему лучше использовать абсолютные пути как мне тут советуют, нежели этот способ?


вот и все что я хотел узнать, уважаемые форумчане.
 
Немешай о ничтожный, разговору двух сенсеев! Ибо не постиг ты еще истиного Дао! Не прочитал свой путь на лезвии клинка!
 
HraKK
а как мне подключить из запрашиваемого
/modules/camments/camments.php
оч нужную часть скрипта
/includes/aftorizacija.php
?

include basedir(__FILE__).'/../../includes/aftorizacija.php';
? а зачем? может случится что-то страшное при использовании './../../inc....' с вероятностью хотяб 0.00001%?(если кришна ченить не подшаманит конечно) или обращение к /modules/camments/camments.php само по себе не кошерно?
 
PATH.'/includes/aftorizacija.php';
Где PATH realpath('.'); из /index.php

Не пробывали?
 
HraKK
перестаньте юзать абсолютный зор, о великий учитель. видеть неуказанный выше в моем проекте index.php могут лишь посвященные, к которым я не пренадлежу :( так о каком index.php речь идет? укажите его неразумным ученикам своим
 
о. тогда Ваша истинна, если не зрить сиё. Ибо не все открыто падаванам!
 
осмелюсь спросить Вас, о великий учитель, зачем же нам нужен священный index.php , если у нас запрос идет к /modules/camments/camment.php
Код:
GET /modules/camments/camment.php HTTP/1.1
...
 
Сверху