タグ付けされた質問 「routing」

10
URLルートをファイルシステムから分離するために、現代のWebアプリケーションフレームワークはどのように、そしてなぜ進化したのですか?
約10年前と比較して、URLパスをファイルシステムから切り離すルーティングのスタイルを使用するフレームワークへの移行に注目しています。これは通常、フロントコントローラーパターンの助けを借りて達成されます。 つまり、以前は、URLパスはファイルシステムに直接マップされていたため、ディスク上の正確なファイルとフォルダーを反映していましたが、最近では、実際のURLパスは構成によって特定のクラスに向けられるようにプログラムされているため、ファイルを反映しなくなりましたシステムフォルダとファイル構造。 質問 どのようにして、なぜこれが当たり前になったのですか?かつて一般的なファイルへの直接アプローチが事実上放棄された時点まで「より良い」と判断した理由は何ですか。 その他の回答 ここには、ルートの概念といくつかの利点と欠点に少し似た答えがあります:PHPフレームワークでは、なぜ「ルート」概念が使用されるのですか? しかし、これは、この新しいルーティングスタイルパターンを使用して現在の新しいプロジェクトがほとんど行われており、ファイルへの直接書き込みが古くなったり放棄されたりする、歴史的な変化の側面、またはこの変化が徐々に起こった方法や理由については扱っていません。 また、言及されたこれらの利点と欠点のほとんどは、そのような世界的な変化を正当化するほど重要ではないようです。この変更を推進している唯一のメリットは、おそらくファイル/フォルダーシステムをエンドユーザーから隠すことと?param=value&param2=value、URLが少しきれいに見えるようにすることの欠如です。しかし、それらが変更の唯一の理由でしたか?そして、はいの場合、なぜそのような理由があったのですか? 例: 私はPHPフレームワークに最も精通しており、多くの人気のある現代のフレームワークはこの分離されたルーティングアプローチを使用しています。それを機能させるには、Apacheまたは同様のWebサーバーでURL書き換えを設定します。通常、Webアプリケーション機能は、ファイルへの直接URLパスを介してトリガーされなくなります。 Zend Expressive https://docs.zendframework.com/zend-expressive/features/router/aura/ https://docs.zendframework.com/zend-expressive/features/router/fast-route/ https://docs.zendframework。 com / zend-expressive / features / router / zf2 / Zend Framework https://docs.zendframework.com/zend-mvc/routing/ ララヴェル https://laravel.com/docs/5.5/routing CakePHP https://book.cakephp.org/3.0/en/development/routing.html

5
悪い習慣-ケースを切り替えて環境を設定する
私が開発者として働いてきたこの3年間で、ユーザーがswitchステートメントを使用してURLのパス(バックエンドとフロントエンドの両方)を設定する多くの例を見てきました。以下に例を示します。 バックエンドの例(C#): public static string getHost(EnvironmentEnum environment){ var path = String.Empty; switch (environment) { case EnvironmentEnum.dev: path = "http://localhost:55793/"; break; case EnvironmentEnum.uat: path = "http://dev.yourpath.com/"; break; case EnvironmentEnum.production: path = "http://yourpath.com/"; break; } return path; } フロントエンドの例(JavaScript): (function () { if (window.location.host.indexOf("localhost") !== -1) { window.serviceUrl = "http://localhost:57939/"; } else …


2
別のクエリで使用するために、クエリの結果を一時的に保存する方法は?
私はあなたが私を助けるかもしれないと思うこの問題を抱えています。 PS私はこれをどのように呼ぶかわからないので、誰かがより適切なタイトルを見つけたら、編集してください。 バックグラウンド このアプリケーションは、バス路線を検索するために作成しています。 バスラインは3桁の数字であり、一意であり、変更されることはありません。 要件は、ストップAからストップBまでの行を検索できることです。 ユーザーインターフェイスは、有効なストップ名のみを使用するようにユーザーにヒントを出すことにすでに成功しています。 要件は、ルートに直通線があるかどうかを表示でき、そうでない場合は2行と3行の組み合わせを表示できることです。 例: ポイントAからポイントDに到達する必要があります。プログラムは次のように表示されます。 ダイレクトラインADがある場合。 そうでない場合は、AC、CDなど、2行の代替コンボを表示します。 2行のコンボがない場合は、3行のコンボ(AB、BC、CD)を検索します。 もちろん、アプリはバスの路線番号とバスをいつ切り替えるかを表示する必要があります。 私が持っているもの: 私のデータベースは次のように構成されています(簡略化された、実際のデータベースには場所と時間などが含まれています): +-----------+ | bus_stops | +----+------+ | id | name | +----+------+ +-------------------------------+ | lines_stops_relationship | +-------------+---------+-------+ | bus_line | stop_id | order | +-------------+---------+-------+ どこlines_stops_relationshipのバスラインと停止の間の多対多の関係を説明します。 順序、ストップが1行に表示される順序を示します。すべての行が行き来するわけではなく、順序に意味があります(順序2のポイントAは順序1のポイントBの後に来ます)。 問題 ラインがルートを十分簡単に​​通過できるかどうかを確認します。両方のポイントを正しい順序で通過する単一の行を検索するだけです。 2/3行のコンボがあるかどうかを確認するにはどうすればよいですか?出発地の停留所と目的地の停留所に一致する行を検索し、それらの間に共通の停留所があり、ユーザーがバスを切り替えることができるかどうかを確認しようと考えていました。その停止をどのように覚えていますか? 3行のコンボはさらにトリッキーです。ソースの行と宛先の行を見つけましたが、次に何をしますか?ストップが2つある行を検索しますが、繰り返しますが、ストップをどのように覚えていますか? tl; dr クエリの結果を覚えて、再び使用できるようにするにはどうすればよいですか?これを単一のクエリ(1行のルートのクエリ、2行のクエリ、3行のコンボのクエリ)で達成したいと考えています。 注:誰かが私が持っているものとはまったく異なるアプローチを提案するかどうかは気にしませんが、私はどんな解決策も受け入れています。 …
12 php  mysql  routing 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.