私はサイレックス使って何かをしようとしてるの提供(symfonyのルーティングコンポーネントを使用しています - その答えは、同様のSymfonyに適用してもよい)Silex/Symfonyにおけるルーティング。デフォルトルート
私はルーティングを提供するために、レガシーアプリケーションにサイレックスを追加していのが、ファイルをロードするための既存のアプリケーションのデフォルト実装を尊重する必要があります(ファイルシステムから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なインターフェースを持っている方法を提供しようとしている(負荷/myfolder/mysubfolder/my_php_script.php)
を答えを見つけ、URLはすでにapacheのハンドル上の既存Fi回線を書き換えるべきではありませんあなたのindex.phpファイルにURLをマッピングせずに奇妙に聞こえる... – mpm
@camusいいえ、アプリケーションのブートストラップ(セキュリティ、データベース接続など)のために、フロントコントローラを通してアプリケーションのすべての要求をルーティングする必要があったためです。編集:私は質問に明確化を追加しました – calumbrodie