Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Laravelから学ぶルーティング処理の実装

 Laravelから学ぶルーティング処理の実装

Webフレームワークのルーティング処理ってどんな実装になっているのか?
いい感じにルーティング定義を書けば、いい感じにControllerへディスパッチされる。
それがどんな実装で実現されているのか、Laravel5.2のコードを読むことで理解しようとした、そんな話です。

Avatar for Satoshi Kawashima

Satoshi Kawashima

July 20, 2016
Tweet

More Decks by Satoshi Kawashima

Other Decks in Technology

Transcript

  1. ͍͍ͩͨ͜͏ͳͬͯΔ 3PVUF 3PVUF 3PVUF 3PVUFS 3PVUF$PMMFDUJPO w ϧʔςΟϯάॲཧΛߦ͏ຊମ w ϧʔςΟϯάఆٛΛಡΈࠐΈɺ

    3PVUFΦϒδΣΫτΛ 3PVUF$PMMFDUJPOʹಥͬࠐΉ w 3PVUF$PMMFDUJPOʹϚον͢Δ 3PVUFΛ୳ͤ͞Δ w 3PVUFʹσΟεύονͤ͞Δ w 3PVUFΫϥεͷू໿Ϋϥε w ࿈૝഑ྻͰ3PVUFΦϒδΣΫτ Λ؅ཧ͍ͯ͠Δ w ϦΫΤετͱ3PVUFΦϒδΣΫ τͱͷϚονϯάΛߦ͏ w ϧʔςΟϯάఆٛ̍ͭʹ૬౰͢Δ Ϋϥε w ࣗ਎ͷϧʔςΟϯάఆٛͱϦΫΤ ετ͕Ϛον͢Δ͔൑ఆ͢Δ w ϧʔςΟϯάઌ΁ͷσΟεύον ΋ߦ͏
  2. Ϛονϯάํ๏ w 3PVUF$PMMFDUJPO͕࿈૝഑ྻͰ3PVUFΦϒδΣΫτΛ࣋ͭ w )551ϝιουͰ3PVUFΦϒδΣΫτΛநग़͔ͯ͠Βɺ্͔Βॱ൪ʹϚονϯά൑ఆΛߦ͏ ʢ࠷ॳʹϚονͨ͠΋ͷΛฦ͢ʣ $routes = [ ‘GET’

    => [ ‘entry’ => RouteA, ‘entry/{id}’ => RouteB, ], ‘POST’ => [ ‘entry/{id}’ => RouteC, ‘entry/{id}/comment/{comment_id}’ => RouteD, ], ]; ্͔Βॱ൪ʹ൑ఆ͢Δ