Pracuję nad projektem przy użyciu Silex. W konkretnym pliku dodałem instrukcję use
, aby autoloader zawierał konkretny plik php. Później w pliku używam tej klasy. Wszystko dzieje się dobrze na serwerze programistycznym, ale kiedy przejdę do produkcji, otrzymuję komunikat Fatal error: Class not found
. Edytuj: oba serwery używają teraz PHP 5.4.4.Błąd klasy nie znaleziono tylko na serwerze produkcyjnym
Czy są jakieś problemy związane z instalacją, które mogą być przyczyną? Mogę potwierdzić, że oba automatyczne pliki przestrzeni nazw generowane przez kompozytora są takie same.
Właśnie w trosce o staranność, tutaj jest oświadczenie obejmuje:
use Instaphp;
Tutaj jest wykorzystanie klasy później w kodzie:
$app['instaphp'] = $app->share(function() use ($app) {
if($app['tagframe.instagram_token'] === null) {
return Instaphp\Instaphp::Instance();
} else {
return Instaphp\Instaphp::Instance($app['tagframe.instagram_token']);
}
});
$app['instaphp.config'] = $app->share(function() use ($app) {
return Instaphp\Config::Instance();
});
Oto dokładny błąd:
Fatal error: Class 'Instaphp\Config' not found in /var/www/silexsandbox/src/TagFrame/Silex/TagFrameServiceProvider.php on line 89
Aktualizacja: Powinienem dodać, że nie doświadczyłem takich błędów nigdzie indziej w l baza kodu Arge, nad którą pracuję, więc wiem, że to nie jest tak proste, jak WSZYSTKIE przestrzenie nazw nie działają.
Może brzmi banalnie, ale czy na pewno zainstalowałeś dostawców (lub zaktualizowałeś po ostatniej zmianie) na serwerze produkcyjnym? – Maerlyn
Czy używasz PHP-FPM? Być może z włączonym APC? Czy możesz spróbować ponownie załadować pracowników FPM? – igorw