set_include_path - wielokrotne wywołanie

0

Cześć,
mam problem, ponieważ próbuję rozkminić set_include_path(), ale zauważyłem że zmienia ona obecną ścieżkę na nową. A mam przykład w książce "Programowanie obiektowe w PHP5" firmy Helion autor Hasin Hayder i on tam robi inicjowanie obiektu w którym ma taki kod:

<?
class initializer
{
   public static function initialize()
   {
   set_include_path(get_include_path().PATH_SEPARATOR."core/main");
   set_include_path(get_include_path().PATH_SEPARATOR. "core/main/cache");
   set_include_path(get_include_path().PATH_SEPARATOR."core/helpers");
   set_include_path(get_include_path().PATH_SEPARATOR. "core/libraries");
   // set_include_path(get_include_path().PATH_SEPARATOR. "app/controllers");
   set_include_path(get_include_path().PATH_SEPARATOR."app/models");
   set_include_path(get_include_path().PATH_SEPARATOR."app/views");
   // include_once("core/config/config.php");
   }
}
?>

Jak ja chcę tak zrobić to podmienia mi jedną ścieżkę na drugą, a nie dodaje je do siebie. Próbowałem też poprzez:

ini_set('include_path', 'moja_sciezka')

i dzieje się to samo.

Czy to jest błąd? Czy ja tutaj nie mogę znaleźć rozwiązania?

0

podmienia, ale najpierw pobiera starą przez get_include_path czego Ty pewnie nie robisz

te linijki:

   set_include_path(get_include_path().PATH_SEPARATOR."core/main");
   set_include_path(get_include_path().PATH_SEPARATOR. "core/main/cache");
   set_include_path(get_include_path().PATH_SEPARATOR."core/helpers");
   set_include_path(get_include_path().PATH_SEPARATOR. "core/libraries");
   // set_include_path(get_include_path().PATH_SEPARATOR. "app/controllers");
   set_include_path(get_include_path().PATH_SEPARATOR."app/models");
   set_include_path(get_include_path().PATH_SEPARATOR."app/views");

można zastąpić jedną instrukcją:

   set_include_path(get_include_path().
      PATH_SEPARATOR."core/main".
      PATH_SEPARATOR. "core/main/cache".
      PATH_SEPARATOR."core/helpers".
      PATH_SEPARATOR. "core/libraries".
      PATH_SEPARATOR."app/models".
      PATH_SEPARATOR."app/views");

a PATH_SEPARATOR to po prostu średnik na windowsie lub dwukropek na linuksie
jeśli chcesz dodać ścieżkę przez ini_set to najpierw pobierz starą i też dopisz nową po średniku / dwukropku:

ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . "moja_sciezka");
0

A racja... Zapomniałem, że get_included_path() pobiera obecną ścieżkę, czyli z dołączonymi już folderami...

Dzięki zupełnie z głowy mi to wyleciało.

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1