ダウンロード サンプルファイル (4.0 KB)
本連載では軽量PHPフレームワークであるSlimを紹介していきます。フレームワークといえば、重厚長大なもの、いわゆるフルスタックフレームワークが多い中で、あえて軽量フレームワークを取り上げます。軽量ゆえのメリットを味わっていただこうと思います。前回は、実際にSlimを動作させるためのプロジェクトを作成し、初めてのSlimアプリとして「Hello World!」の表示を行いながらSlimの動作原理を紹介しました。その動作原理の中心となるのがルーティング、その登録方法も紹介しました。今回は、そのルーティング登録の続きとして、さまざまな登録方法を紹介していきます。
HTTPメソッドごとのルーティング登録
まず、ルーティング登録の復習から始めましょう。前回紹介したルーティング登録の構文を再掲載します。
$app->get(ルーティングパターン, 対応するコールバック関数);
ルーティング登録の構文は、\Slim\Appクラスのget()メソッドを使って登録するというものです。この登録方法を紹介した際、勘のいい人は気づいたかもしれませんが、このget()メソッドというのは、HTTPのGETメソッドに対応しています。もし、前回登録したルーティングパターン「/hello」に対応するURL
にPOSTメソッドでアクセスした場合、図1の画面が表示されてしまいます。
メッセージにあるように、POSTメソッドは受け付けないようになっていますね。実は、Slimのルーティング登録は、HTTPの各メソッドに合わせて登録メソッドが異なるのです。どういったメソッドがあるのか、表1にまとめておきます。
| HTTPメソッド | Appクラスのメソッド |
|---|---|
| GET | $app->get(…); |
| POST | $app->post(…); |
| PUT | $app->put(…) |
| DELETE | $app->delete(…) |
| OPTIONS | $app->options(…) |
| PATCH | $app->patch(…) |
なお、表1においてAppクラスのメソッドの引数は全て「…」と省略表記にしていますが、これらは全て、get()と同じく「ルーティングパターン」「対応するコールバック関数」の2個の引数を必要とします。
サンプルとして、POSTでアクセスした場合に画面に文字列を表示させるコードを、前回作成したindex.phpに追記しましょう。追記するのは、リスト1の太字の部分です。
<?php
〜省略〜
$app = new App();
$app->get("/hello",
〜省略〜
);
$app->post("/helloPost", // (1)
function(Request $request, Response $response, array $args): void
{
print("<h1>POSTメソッドでこんにちは!</h1>");
}
);
$app->run();
リスト1の(1)で、$appのpost()メソッドを使って、新たなルーティングを登録しています。追加したルーティングパターンは「/helloPost」なので、この処理を呼び出すURLは
- http://localhost/firstslim/src/public/helloPost
です。ただし、直接ブラウザから上記URLにアクセスしてもダメです。その場合はGETメソッドでのアクセスとなるからです。そこで、POSTでアクセスするために、formタグを記述したHTML画面を1枚作成しましょう。リスト2の通りです。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>/helloPostにPOSTするファイル</title> </head> <body> <form action="/firstslim/src/public/helloPost" method="post"> <button type="submit">GO!</button> </form> </body> </html>
リスト2を表示させるURLは、
なので、このURLにアクセスしてください。図2のようにボタンが1つ表示されます。
この[GO!]ボタンをクリックすると、リスト1の(1)で登録した「/helloPost」の処理が実行され、図3の画面が表示されます。
[Note]Postman
ここでは、POSTでアクセスするためにHTML画面を1枚作成しました。もともと画面表示が連続するWebシステムの場合ならいいのですが、例えば、Web APIなど画面を伴わないWebシステムでPOSTアクセスの確認のためにHTML画面を作成するのは手間です。さらに、GETとPOST以外のHTTPメソッドを確認する場合、そもそもformタグは使えません。そういった場合に便利なアプリとしてPostmanがあります。Postmanを使うと、手軽にHTTPアクセスの確認ができます。
この記事は参考になりましたか?
- 軽量PHPフレームワークSlimを習得しよう連載記事一覧
- この記事の著者
-
WINGSプロジェクト 齊藤 新三(サイトウ シンゾウ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。Web系製作会社のシステム部門、SI会社を経てフリーランスとして独立。屋号はSarva(サルヴァ)。HAL大阪の非常勤講師を兼務。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
