Silex はマイクロフレームワークです。単一のファイル内でアプリケーションを定義する機能を提供します。しかし、それはあなたがしなければならないという意味ではありません。
私が通常行うことは、すべてのコントローラーを 1 つのapp.php
ファイルに定義することですが、再利用可能な部分をsrc
ディレクトリ内のクラスに抽出します。たとえばsrc/ProjectName/SomeClass.php
、自動読み込みと単体テストが可能です。
ここで、コントローラーの数が増えた場合は、アプリケーションを「モジュール」に分割し、それらをメイン アプリケーションの下にマウントできます (たとえば、管理パネルを の下にマウントします/admin
)。Silex は次のようにマウントをサポートします。
require_once __DIR__.'/silex.phar';
$app = new Silex\Application();
$app->mount('/admin', new Silex\LazyApplication(__DIR__.'/admin.php'));
マウントの詳細については、Silex ドキュメントのReusing applicationsを参照してください。