PHPでシンプルにWebアプリやWebAPIを構築する方法

はじめに

皆さんはPHPでWebアプリを作ったことはありますか?
多くの人はLaravelやCakePHPなどのでっかいフレームワークを使って構築していると思いますが、「自分には複雑すぎる」や「やりたいプロジェクトにあってない」などと思う方も多いのではないでしょうか。
そこで、今回は自分がちょっと前によく使っていたPHPのマイクロフレームワーク、FlightPHPについて紹介します。

概要

ホームページはこちらです

FlightPHPはホームページでも紹介されているとおり、「拡張可能なPHPマイクロフレームワーク」です。
マイクロフレームワークの名の通り高速でシンプルであるため拡張もしやすく、主にRESTfulなアプリを簡単に構築するために開発されたフレームワークです。
ライセンスもMITライセンスであるため、権利上においても使いやすいものです。

と、こう言ってもわかりにくいと思うのでコードをちょっと見せます。

@php
<?php
require 'vendor/autoload.php';

Flight::route('/', function() {
  echo 'Hello, world!';
});

Flight::start();


これだけです。
めっちゃくちゃシンプルなのは解ると思いますが、本当にこれだけです。
他に設定ファイルなどは一切いりません。文字通りこれだけです。

PHPの開発サーバを起動させてGET / やってみてください。Hello, world! と表示されます。

インストール

実際にインストールする際はComposerを利用します。
ファイルを置くことでflight/Flight.php を読み込む事もできますが、やっぱりComposerを利用するのが一番です。

@bash
composer require mikecao/flight


インストールもこれだけです。
簡単ですね。

デプロイ

インストールなども今のようにすればできますが、ApacheなどのWebサーバにアップロードするときは.htaccess 、Nginxの場合はサーバ宣言を追加する必要があります。

.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]


Nginx

server {
    location / {
        try_files $uri $uri/ /index.php;
    }
}


簡単に説明する

Learnを見てもらえると詳しいことがわかりますが、ここでは簡単に機能の説明をしようと思います。

ルーティング

ルーティングは簡単です。
上に書いたように

@php
Flight::route('/', function() {/**/});


のようにすることができます。
また、例えば

@php
function hoge() {/**/}

Flight::route('/', 'hoge');


のようにすることで先に定義しておいた関数を設定することもできます。
また、クラスのメソッドの場合、

@php
class Example {
  public static function hoge() {/**/}
  public static function fuga() {/**/}
}

Flight::route('/', ['Example', 'hoge']);


のようにできます。
この場合は外側からアクセスできる必要があるので、メソッドはstatic に定義する必要があります。
他にも

@php
class Example {
  public function hoge() {/**/}
  public function fuga() {/**/}
}

$example = new Example();

Flight::route('/', [$example, 'hoge']);


このようにすることで、クラスメソッドを利用することができます。
この場合は一度インスタンスに落としているので、static にする必要はありません。

ただ、この場合GETPOST など、全てのメソッドに対応しています。
そこで、GET リクエストのみに対応させるみたいなことをしたい場合、

@php
Flight::route('GET /', 'hoge');
Flight::route('POST /', 'fuga');


みたいに書くことができます。
また、GET POST 2つのメソッドに対応させたりする場合、

@php
Flight::route('GET|POST /', 'hoge');


また、ここまでは良いですが、JSONを出力したいときは

@php
function hoge() {
  Flight::json([]);
}


などのようにして出力できます。

他にもたくさんの機能があるので、ぜひLearnを読んでみてください。

おわりに

今回はマイナーなPHPフレームワークを紹介してみました。
これでWeb開発をスムーズに進められる人が増えることを願っています。

また、本ブログは現在ユーザ数が減ってきて困っている(´;ω;`)ので、ぜひ定期的な閲覧をお願いします()

最新の投稿

スポンサーリンク

kstdx
中学生。自称エンジニア。見せられる程度のデザイン力はあるかなと自負しています。現在Twitterが凍結されている。おかねほしい。