スタンドアロンコンポーネントとしてSymfonyのDICを使用することは可能ですが、「手動で」多くのことを行う必要があります(最初から完全なSymfonyフレームワークを使用することを計画していないため)。おそらく、これらすべてのレガシーなものでDICを使用することはあまり得られないでしょう。
このパスを使用する場合は、最初に別のコンポーネント(HttpFoundationやHttpKernelなど)を選択することを検討します。
@Ceradが提案したように、レガシーコードをSymfonyでラップするかもしれません。IngewikkeldWrapperBundleバンドルをご覧ください。そのままでは使えませんが、アイデアが浮かぶかもしれません。
3番目の方法があります。
Symfonyアプリにすべての新機能を実装することを決定できます。それよりも、レガシーアプリとSymfonyアプリの両方を共存させることができます。サーバーレベル(つまりNginx)では、レガシーURLをレガシーアプリにプロキシし、移行されたすべてのURLをSymfony2アプリにプロキシする場合があります。私の場合、このシナリオが最良の選択肢であり、機能していることが証明されました。しかし、私たちはレガシーアプリの開発を断念することを約束しました(そのため、すべての新機能や変更はSymfony2アプリで開発する必要がありました)。
編集:レガシーアプリでSymfonyカーネルを起動し、イベント(ファイアウォールに必要)をディスパッチする方法は次のとおりです。
$kernel = new \AppKernel('dev', true);
$kernel->boot();
$request = Request::createFromGlobals();
$request->attributes->set('is_legacy', true);
$request->server->set('SCRIPT_FILENAME', 'app.php');
$container = $kernel->getContainer();
$container->enterScope('request');
$container->get('request_stack')->push($request);
$container->set('request', $request);
$event = new GetResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST);
$eventDispatcher = $container->get('event_dispatcher');
$eventDispatcher->dispatch('kernel.request', $event);