Hallo leute,
ich arbeite mich aktuell etwas in Silex ein, silex Application ist ja ein DI Container, soweit ich es verstanden habe, kann man einen Controller injezieren und ihm einen "Alias" namen vergeben
ist alles schön und gut, somit kann ich zb Controller aus anderen Projekten herausnehmen(wenn die keine abhängigkeiten haben) und dann ersetzen.
in den Beispielen beschrieben, kling das alles eindeutig aaber, was wenn man sagen wir 20, 30 oder 50 controller hat? dann muss man jeden controller injezieren.. ich bin nun ein "Convention over Configuration" fan ich fände es persönlich viel besser , controller einfach in einen ordner abzulegen und anhand definierter url schema die controllers/actions aufrufen.
eine idee die ich hatte, wäre einen FileIterator am anfang und alle controller aus einem definierten ordner in die applikation injezieren, nur würde man dadurch jetzt unnötige operation durchführen, nur weil ich zu faul bin die controller einzeln zu injezieren.
wie löst ihr das Problem? gibts da vielleicht einen eleganten weg in silex controller anhand des Requests zu injezieren?
viele Grüße
ich arbeite mich aktuell etwas in Silex ein, silex Application ist ja ein DI Container, soweit ich es verstanden habe, kann man einen Controller injezieren und ihm einen "Alias" namen vergeben
PHP-Code:
//Controller ist verfügbar über $app['posts.controller']
$app['posts.controller'] = $app->share(function() use ($app) {
return new PostController();
});
//controller mit action an route binden
$app->get('/posts.json', "posts.controller:indexJson");
in den Beispielen beschrieben, kling das alles eindeutig aaber, was wenn man sagen wir 20, 30 oder 50 controller hat? dann muss man jeden controller injezieren.. ich bin nun ein "Convention over Configuration" fan ich fände es persönlich viel besser , controller einfach in einen ordner abzulegen und anhand definierter url schema die controllers/actions aufrufen.
eine idee die ich hatte, wäre einen FileIterator am anfang und alle controller aus einem definierten ordner in die applikation injezieren, nur würde man dadurch jetzt unnötige operation durchführen, nur weil ich zu faul bin die controller einzeln zu injezieren.
wie löst ihr das Problem? gibts da vielleicht einen eleganten weg in silex controller anhand des Requests zu injezieren?
viele Grüße
Kommentar