2011-06-20 11 views
7

Parece que no puedo hacer nada para trabajar más allá de la ruta raíz hasta ahora:¿Cómo se configura el controlador en un proyecto Silex PHP Framework?

¿Pone todas las llamadas de su controlador en el archivo app.php?

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

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

¿O los pones en archivos separados? Hasta ahora, el método de obtención de raíz funciona bien y representa una plantilla de ramita, pero cualquier cosa pasada que no haga nada.

+0

¿Quiere decir que nunca se llama al controlador '/ about'? - necesita tener los controladores más específicos registrados anteriormente en el archivo - '/' siempre coincidirá con – meouw

+0

@meouw '/' no coincidirá con '/ about'. '/ {var}' sin embargo, lo haría. – igorw

+0

@igorw - Gracias por la corrección :) – meouw

Respuesta

15

Silex es un microframework. Le da la capacidad de definir su aplicación en un solo archivo. Pero eso no significa que tengas que hacerlo.

Lo que suelo hacer es definir todos los controladores en una app.php archivo, pero extraer reutilizables partes en clases dentro del directorio src, por ejemplo src/ProjectName/SomeClass.php, que pueden ser cargados automáticamente y también probó unidad.

Ahora, si la cantidad de controladores crece, puede dividir su aplicación en "módulos" y montarlos en su aplicación principal (por ejemplo, montar un panel de administrador bajo /admin). Silex admite el montaje, así:

require_once __DIR__.'/silex.phar'; 

$app = new Silex\Application(); 

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

Para más detalles sobre el montaje, echa un vistazo a la documentación Reusing applications de silex.

+0

Montura(), excelente. – Failpunk

+3

Ese enlace ya no es válido. Provder doc está aquí: http://silex.sensiolabs.org/doc/providers.html – lucifurious

Cuestiones relacionadas