2015-05-28 12 views
11

Potrzebuję umieścić plik konfiguracyjny z phar mojej aplikacji internetowej. Muszę go zamontować. W moim pliku skrótowej Próbowałem:Jak uzyskać dostęp do plików zewnętrznych z archiwów Phar?

<?php 
try { 
    Phar::mount('sites/site.php', __DIR__.'/../sites/site.php'); 
} catch (PharException $e) { 
    print_r($e); 
}; 
Phar::mapPhar(); 
include '../app.phar'; 

jednak mam „Mounting of sites/site.php to D:\(...)\public/../sites/site.php failed” komunikat o błędzie. Próbowałem różnych stylów ścieżek plików bez powodzenia. Co jest z tym nie tak?

Używam box2 do przechowywania plików phara. Zbudowanie pliku phara zajmuje dużo czasu. Czy istnieje sposób na przyspieszenie?

Komunikat o błędzie jest również niejasny. Jakikolwiek sposób na uzyskanie lepszej wiadomości?

+0

Czy próbowałeś zmienić ukośniki '/' z anty-ukośnikami '\'? Ponieważ jesteś w systemie Windows? I jeszcze dalej: czy rozważałeś używanie stałej ['DIRECTORY_SEPARATOR'] (http://php.net/manual/en/dir.constants.php), aby mieć pewność, że jesteś niezależny od systemu operacyjnego? –

+0

@ b.enoit.be Windows akceptuje zarówno '/' jak i '\\' jako separator katalogu. – PHPst

+0

W systemie Linux to nie działa tak dobrze. Problemem jest "__DIR__", co tłumaczy się na 'phar: /// var/www/....'. Jeśli używam tylko pełnej ścieżki ('/ var/www/...'), to montaż działa dobrze. – VolenD

Odpowiedz

2

Czy próbowałeś użyć wewnętrznego URI Phar jako punkt montażu jak:

Phar::mount('phar://sites/site.php', __DIR__.'/../sites/site.php'); 

Także ja nie wiem, czy problem może być ze względu na sites podkatalogu, czy spróbować:

Phar::mount('site.php', __DIR__.'/../sites/site.php'); 
+0

Tak, to nie pomogło. – PHPst

+0

Ten sam błąd? Czy możesz tutaj wkleić pełny dziennik błędów PHP? – fjcero

Powiązane problemy