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 (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ad2) Hmmm, a jak ty to testowales ze tak zapytam? Bo jakoś ci to nie wyszlo winksmiley.jpg
Bo co rozumiesz przez nastepne? Ja rozumiem includowane w tym samym request przez index.php , a ty?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nu_moon
post
Post #3





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

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


Rozumiem ze Twoja odpowiedz jest lekko ironiczna, wiec jedynie przypuszczam ze w plikach ktore wczytuje require / include stala zachowa zdefiniowana wartosc.

Moj błąd, faktycznie nie jest tak jak pisałem ale skrypty te są uruchamiane jaki inne zadanie z Ajaxa
Eh.. za długo chyba dzisiaj siedzę przy komputerze winksmiley.jpg
Pozdrawiam
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Rozumiem ze Twoja odpowiedz jest lekko ironiczna
ja wiem ze czasami potrafi komuś cos zironizowac, ale tutaj w tym temacie nie mialem takiego zamiaru. Chcialem ci jedynie powiedziec ze jest inaczej niz mowisz i upewnic sie, czy oby napewno myslimy o tym samym smile.gif

Cytat
Moj błąd, faktycznie nie jest tak jak pisałem ale skrypty te są uruchamiane jaki inne zadanie z Ajaxa
Eh.. za długo chyba dzisiaj siedzę przy komputerze
Czyli problem rozwiązany? Bo znowu nie jestem pewien co masz na mysli.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nu_moon
post
Post #5





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

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

 



RSS Aktualny czas: 19.08.2025 - 15:49