Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: stale a php
Forum PHP.pl > Forum > PHP
nu_moon
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..
nospor
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?
nu_moon
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
nospor
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.
nu_moon
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']
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.