Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> stale a php, definiowanie sciezek
nu_moon
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 26.01.2006

Ostrzeżenie: (0%)
-----


Pracuje sobie wlasnie nad jedna spora aplikacja i wszystko szlo doskonale do momentu w ktorym dziwnym trafem przestaly dzialac odwolania do katalogu glowniego tzn '../'.
Poza tym, okazalo sie ze czasem tzreba wyjsc za katalog danej domeny zeby np wczytac napisane wczensiej klasy ktorych tez uzywalem w innych miejscach.

Teraz pytanie - jak to zrobic zeby miec nad tym jakakolwiek kontrole (tzn nie zapisywac sciezek w kazdym wywolaniu require czy include.

To co odpada:
1 - staram sie nie uzywac zmiennych globalnych (ktore ponoc maja przestac dzialac w php6)
2 - definiowanie stalych nie dziala w oczekiwany sposob, tzn jesli zdefinuje stala w pliku index.php, w kolejnych plikach nie bedzie juz widoczna.
3 - definiowanie stalych na poczatku kazdego pliku odpada z oczywistych powodow

Jedyne co przychodzi do glowy to utworzenie pliku w glownym katalogu ktory by definiowal stale i wczytywanie go w kazdym skrypcie ktory dolacza jakies inne (czyli praktycznie kazdy ), ale tu znow, 2x wiecej wczytan plikow przy kazdym wyswietleniu strony...

Poradzcie cos pliz..
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nu_moon
post
Post #2





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 26.01.2006

Ostrzeżenie: (0%)
-----


generlanie problem "rozwiazany" tzn cala aplikacja, ktora do tej pory bazowala na takiej notacji np: "../lib/db.class.php", dzialala i bez tych zabiegow.

Postanowalilem jednak w glownym katalogu umiescic plik ktory definiuje stala ze sciezka czyli :

  1. <?php
  2. define( '__BASE' , '/home/user/ftp' );
  3. ?>


index.php aplikacji wczytuje to bez problemu uzywajac

  1. <?php
  2. require_once '../path_config.php';
  3. ?>


rozwiazuje problem dla samego frameworka i wszystkich klas ktore z niego korztstaja

(Pierwsze schody pojawily sie w momencie kiedy zaczalem wczytywac te klasy z poziomu innego katalogu domowego( innej domeny ))

Problem sie pojawia w momencie kiedy musze dostac sie do tego pliku kotry definiuje mi sciezke z poziomu skryptu wykonywanego z ajaxa.
Na chwile obecna jest to malo efektowny sposob :
  1. <?php
  2. require_once '../../../../../path_config.php';
  3. ?>



Teoretycznie nie sadze żeby głębokość zadrzewienia tego pliku uległa zmianie jednak - musi być jakiś sposób żeby to zrobić.
Mialem nawet pomysl zeby ta sciezke przetrzymywac jako zmienna sesyjna (bo sesja jest caly czas zainicjowana w tej czesci aplikacji) ale to lekko bez sensu...

EDIT:


Przegladalem, czy nie ma moze jakiejs zmiennej srodowiskowej i w sumie jest kilka pomyslow jak taka sciezke wydobyc.
phpinfo() podaje mi w tabelce "Environment" informacje takie jak :

PWD /usr/local/apache/fcgi-bin
USER username
LC_ALL pl_PL
LANG pl
SHLVL 0
HOME /home/username/ftp
PATH /bin:/usr/bin:/usr/local/bin

To co tutaj figuruje jako HOME byloby rozwiazaniem moich problemow ze sciezkami do plikow.
Problem w tym ze nie wiem na jakiej podstawie ta informaca jest tworzona, bo jedyne co moge zrobic to probowac pobawic sie danymi typu $_SERVER['document_root']

Ten post edytował nu_moon 27.05.2008, 15:15:19
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 13:01