Silex を使用して何かをしようとしています (これは Symfony ルーティング コンポーネントを使用するため、答えは Symfony にも当てはまる可能性があります)。
ルーティングを提供するためにレガシー アプリケーションに Silex を追加していますが、ファイルをロードするための既存のアプリケーションのデフォルトの実装を尊重する必要があります (指定された URL からファイル システムからファイルをロードするだけです)。
編集: 明確化のために: 既存のファイルは、一連のブートストラップ呼び出しが行われた後、親テンプレート内のインクルードとしてファイル システムから読み込まれます。
私が見つけたのは、従来のページに一致するように定義されたルートがない場合、Silex が例外をスローしていることです。
これらのレガシー ページを処理するためのデフォルト (フォールバック) メカニズムを提供する方法が本当に必要ですが、パターンは URL 全体 (1 つのフラグメントだけでなく) と一致する必要があります。
これは可能ですか?
// Include Silex for routing
require_once(CLASS_PATH . 'Silex/silex.phar');
// Init Silex
$app = new Silex\Application();
// route for new code
// matches for new restful interface (like /category/add/mynewcategory)
$app->match('/category/{action}/{name}/', function($action, $name){
//do RESTFUL things
});
// route for legacy code (If I leave this out then Silex
// throws an exception beacuse it hasn't matched any routes
$app->match('{match_the_entire_url_including_slashes}', function($match_the_entire_url_including_slashes){
//do legacy stuff
});
$app->run();
これは一般的な使用例である必要があります。私はレガシーコードと一緒に RESTFUL インターフェイスを持つ方法を提供しようとしています (load /myfolder/mysubfolder/my_php_script.php)