2015-10-19 24 views
8

Chcę używać Slim 3 w podkatalogu, ale nie mogę go załadować. Wszystkie pliki znajdują się w podkatalogu, w tym composer.json. Oto moja composer.json:Klasa "Slim Slim" nie została znaleziona przy kompilatorze

"require": { 
    "slim/slim": "3.0.0-RC1" 
} 

Oto mój skrypt:

<?php 
require "vendor/autoload.php"; 
use \Slim\Slim; 

$app = new \Slim\Slim(); 
$app->get('/subdirectory/hello/:name', function ($name) { 
    echo "Hello, $name"; 
}); 
$app->run(); 

Próbowałem wielu rzeczy, w tym Class Slim not found when installing slim with composer i PHP Fatal error: Class 'Slim' not found. Niestety nie rozwiązali mojego problemu.

Błąd, który otrzymałem, to Fatal error: Class 'Slim\Slim' not found in ... on line 5, który odpowiada $app = new \Slim\Slim();.

Ktoś wie, czego mi brakuje?

+0

Czy można sprawdzić, czy są otwarte kwestie z tym RC1? Czy sprawdziłeś, czy autoloader jest poprawnie dołączony? Czy sprawdziłeś, jaką ścieżkę używa automatyczny ładownik? Czy próbowałeś * zrzucić autoloader *? – m02ph3u5

+0

Ponadto, jeśli importujesz klasę przez * używaj * nie umieszczaj przestrzeni nazw podczas tworzenia nowej instancji – mTorres

Odpowiedz

13

Wygląda na to, że Slim3 is not using Slim as main class name but App.

więc kod powinien być:

<?php 
require "vendor/autoload.php"; 
use \Slim\App; 

$app = new App(); 
$app->get('/subdirectory/hello/:name', function ($name) { 
    echo "Hello, $name"; 
}); 
$app->run(); 
+0

Dla mnie to nie pomogło :(Ten sam błąd ('Błąd krytyczny: Klasa 'App' nie znaleziona w .. .) –

+2

@VladaKatlinskaya, Czy wstawiłeś zdanie \ Slim \ App przed instatiating zmiennej aplikacji? Jeśli tak, po prostu zadaj inne pytanie, wspominając, że to rozwiązanie nie działa dla ciebie. – mTorres