![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 206 Pomógł: 6 Dołączył: 25.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Głupie mam pytanie jednak nie rozumiem dlaczego każą mi edytować plik php.ini i wstawiać tam include_path="d:\wamp\bin\php\zendframework\library" (sciezka przykadowa rozumiem ze moze byc jakakolwiek)
nie dokońca rozumiem idee include_path, chodzi o to, że include będzie teraz wczytywał pliki z katalogu library, czyli jakby "rozszerza" swój zasięg tak? obojętnie gdzie będę, mogę includować sobie co chce z tego katalogu? Czyli po to to jest żeby nie musieć tworzyć projektu wewnątrz katalogu library? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o to, że core frameworka powinno się trzymać poza katalogiem publicznym i może on tam leżeć gdzie chce, więc musisz podać ścieżkę, żeby wiedział gdzie to core jest
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
W uproszczeniu możesz mieć trzy rodzaje ścieżek do pliku:
Kod /var/www/moja-strona/moj-katalog/moj-plik I teraz:./moja-strona/moj-katalog/moj-plik moja-strona/moj-katalog/moj-plik 1. Ścieżka bezwzględna, która nie jest w żaden sposób modyfikowana/przetwarzana - po prostu wskazuje konkretnie na plik. 2. Ścieżka względna zaczynająca się od "aktualny katalog" (kropka) i podająca dalszą ścieżkę względem niego. Jeżeli Twój program został uruchomiony z katalogu /var/www finalnie ścieżka będzie taka sama jak ta z punktu pierwszego. Ale jeżeli znajdowałbyś się w katalogu /home/moj-uzytkownik finalną ścieżką byłoby /home/moj-uzytkownik/moja-strona/moj-katalog/moj-plik. 3. W tym przypadku wykorzystane zostanie właśnie include_path. W tej dyrektywie znajduje się kilka ścieżek do różnych katalogów, np. /var/www, /home/moj-uzytkownik oraz /var/lib/zend. W takim przypadku system spróbuje wyszukać plik w /var/www/moja-strona/moj-katalog/moj-plik - jeżeli taki nie istnieje przejdzie dalej, /home/moj-uzytkownik/moja-strona/moj-katalog/moj-plik - jeżeli taki plik nie istnieje znowu spróbuje dalej, /var/lib/zend/moja-strona/moj-katalog/moj-plik jeżeli taki plik istnieje dołączy go, jeżeli nie uzna, że podany plik nie istnieje. Zauważ, że zapewne Zend stosuje zapisy: To jest właśnie trzeci przypadek. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 206 Pomógł: 6 Dołączył: 25.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
rozumiem ale równie dobrze można napisać na początku aplikacji ścieżkę do biblioteki/frameworka której się używa (w tym przypadku zend) i napisać jakiś autoloader, chociaż pewnie to już trudniejszy sposób dlatego include_path jest lepszym rozwiązaniem, okej dzięki za tłumaczenia, jak widać chodzi o to żeby było prościej - i dobrze.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Tak, powinno się skorzystać z autoloadera i ZendFrameowrk to robi. Jego stara wersja (1.x), która pojawiła się dawno temu korzystała z include_path ponieważ na dobrą sprawę nie było wtedy dostępnych autoloaderów.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Tak, powinno się skorzystać z autoloadera i ZendFrameowrk to robi. Jego stara wersja (1.x), która pojawiła się dawno temu korzystała z include_path ponieważ na dobrą sprawę nie było wtedy dostępnych autoloaderów. A Zend_Loader istniejący od samego początku? ![]() -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 20:33 |