Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]require_once i define, problem ze ścieżką do pliku
bliitz
post
Post #1





Grupa: Zarejestrowani
Postów: 155
Pomógł: 12
Dołączył: 5.04.2008

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


Przykładowa struktura katalogów i plików:
Kod
   ./
    |
     ----- /class
             |db.conf.php
             |extPDO.class.php
    ./test.php


Jako, że pliki db.conf.php i extPDO.class.php znajdują się w tym samym katalogu to w pliku extPDO.class.php jest kod:
  1. <?php
  2. define( DBCONFIG, 'db.conf.php' );
  3.  
  4. if( file_exists( DBCONFIG ) == FALSE OR defined( 'DBCONFIG' ) == FALSE )
  5.            throw new Exception( 'Cannot load config file.' );
  6. ?>


Natomiast w pliku test.php, który jest jeden poziom nad katalogiem class znajduje się kod:
  1. <?php
  2. require_once( 'class/extPDO.class.php' );
  3. try{
  4.    $pdo = new extPDO();
  5. }
  6. catch( Exception $e ){
  7.    echo $e->getMessage();
  8. }
  9. ?>

Wywołanie tego powoduje błąd 'Cannot load config file.', pomaga zmiana w pliku extPDO.class.php
  1. <?php
  2. define( DBCONFIG, 'db.conf.php' );
  3.  
  4. na
  5.  
  6. define( DBCONFIG, 'class/db.conf.php' );
  7. ?>

ale przecież nie będe zmieniał tej ścieżki za każdym razem jak z różnych plików będe wywoływał tą klasę. Dlaczego zmieniać trzeba ścieżkę w define skoro położenie pliku db.conf.php nie zmienia się względem extPDO.class.php?
W jaki sposób można to zrobić żeby prawidłowo działało bez względu na położenie pliku test.php?

Ten post edytował bliitz 5.04.2009, 20:38:54


--------------------
Go to the top of the page
+Quote Post
Noddi
post
Post #2





Grupa: Zarejestrowani
Postów: 45
Pomógł: 7
Dołączył: 25.12.2004
Skąd: Kraków

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


  1. <?php
  2. define( DBCONFIG, dirname(__FILE__) . DIRECTORY_SEPARATOR . 'db.conf.php' );
  3. ?>


--------------------
"Yes, experience matters. No, one year repeated fifteen times does not count."
bartoszlugowski.com
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: 22.08.2025 - 03:39