2011-06-20 11 views
7

Nie mogę sprawić, aby cokolwiek działało poza dotychczasową ścieżką:Jak skonfigurować kontroler w projekcie Silex PHP Framework?

Czy umieszczasz wszystkie swoje połączenia kontrolerów w pliku app.php?

$app->get('/', function ($id) { 
    ... 
}); 

$app->get('/about', function ($id) { 
    ... 
}); 

Czy umieścisz je w osobnych plikach? Do tej pory metoda root get działa dobrze i renderuje szablon twig, ale wszystko, co do tej pory nie działa.

+0

Masz na myśli, że handler '/ about' nigdy nie zostanie wywołany? - musisz mieć wcześniej określone bardziej szczegółowe procedury obsługi - '/' zawsze będzie pasować do – meouw

+0

@meouw '/' nie będzie pasowało '/ about'. '/ {var}' jednak. – igorw

+0

@igorw - Dzięki za poprawkę :) – meouw

Odpowiedz

15

Silex to mikroforma. Daje możliwość zdefiniowania aplikacji w jednym pliku. Ale to nie znaczy, że musisz.

Co zwykle zrobić jest zdefiniowanie wszystkich kontrolerów w jednym app.php pliku, ale wyodrębnić wielokrotnego użytku części w zajęciach w katalogu src np src/ProjectName/SomeClass.php, które mogą być ładowane automatycznie, a także testowane urządzenie.

Teraz, jeśli ilość kontrolerów rośnie, możesz podzielić swoją aplikację na "moduły" i zamontować je w głównej aplikacji (na przykład, zamontuj panel administracyjny pod numerem /admin). Silex obsługuje montażu, tak jak poniżej:

require_once __DIR__.'/silex.phar'; 

$app = new Silex\Application(); 

$app->mount('/admin', new Silex\LazyApplication(__DIR__.'/admin.php')); 

Więcej informacji na temat montażu, sprawdź Reusing applications z dokumentacji Silex.

+0

Mount(), doskonały. – Failpunk

+3

To łącze nie jest już ważne. Dokument Provder znajduje się tutaj: http://silex.sensiolabs.org/doc/providers.html – lucifurious

Powiązane problemy