FlightPHPを徹底解説!
PHPで軽量なWebアプリケーションを作ってみたいけど、「Laravelはちょっと重い」「もっとシンプルなフレームワークがいい」という方にピッタリなのが FlightPHP です。
この記事では、FlightPHPの基本から実際の使い方までを、初心者にもわかりやすく丁寧に解説していきます!
❓ FlightPHPとは...
FlightPHP は、PHPで作られたマイクロフレームワークです。
軽量でシンプル、学習コストも低いため、小〜中規模のWebアプリケーションやAPIに最適です。
特徴は以下の通りです:
- ✅ 軽量で高速
- ✅ シンプルなルーティング
- ✅ 組み込み機能だけで手軽に開発
- ✅ Composerで簡単に導入できる
- ✅ 公式から日本語ドキュメントが用意されている
公式ドキュメント(日本語)
🛠 FlightPHPのインストール方法
まずはFlightPHPをインストールしてみましょう。
今回はComposerを利用したインストール方法をご紹介します。
1. プロジェクトディレクトリを作成
今回はflight-app
という名前のディレクトリを作成します。
mkdir flight-app
cd flight-app
2. ComposerにてFlightPHPをインストール
composer require flightphp/core
☝️ 使ってみよう!
文字列を表示するように定義をする
<?php
require 'vendor/autoload.php';
Flight::route('/', function(){
echo 'Hello, FlightPHP!';
});
Flight::start();
?>
PHPのビルトインサーバで起動
php -S localhost:8080
ブラウザで http://localhost:8080 にアクセスすると「Hello, FlightPHP!」と表示されます。
🚏 基本的なルーティング
FlightPHPでは、Flight::route()
を使ってURLと処理を紐づけます。
各リクエストのルーティング
下記のように定義し、/hello
にアクセスすると「こんにちは、世界!」と表示されます。
Flight::route('/hello', function(){
echo 'こんにちは、世界!';
});
また、以下のように定義することで、GETやPOSTといったHTTPメソッドごとに処理を分けることができます。
Flight::route('GET /check-method', function(){
echo 'GETメソッドでリクエストされたよ!';
});
Flight::route('POST /check-method', function(){
echo 'POSTメソッドでリクエストされたよ!';
});
URLパラメータの取得
下記のように定義し、/hello/Taro
にアクセスすると「こんにちは、Taroさん!」と表示されます。
Flight::route('/hello/@name', function($name){
echo "こんにちは、{$name}さん!";
});
POSTデータの取得
フォームなどからのPOSTデータも簡単に受け取れます。
Flight::request()->data
を使って、POSTされたデータを取得できます。
Flight::route('POST /submit', function(){
$data = Flight::request()->data;
echo "送信された名前: " . $data['name'];
});
🧰 その他の便利な機能
JSONレスポンスを返す
JSON形式でデータを返すこともワンライナーでOK!
Flight::route('/api/user', function(){
Flight::json(['name' => 'Taro', 'age' => 20]);
});
ミドルウェア的なフィルター処理
リクエストの前後に処理を差し込むこともできます。
Flight::before('start', function(&$params, &$output){
header('X-Powered-By: FlightPHP');
});
📚 まとめ
FlightPHPは、以下のような人にオススメです:
- 「Laravelほど多機能じゃなくていい」
- 「とにかく手軽に始めたい」
- 「学習コストの低いPHPフレームワークを探している」
PHPでAPIや小規模なWebサービスを作るなら、FlightPHPは最高の選択肢のひとつです。
ぜひ、あなたのプロジェクトにも取り入れてみてください!
この記事が「FlightPHPに入門したい!」という方の参考になれば幸いです!
Discussion