FlightPHPを使ってみた
動機
LaravelPHPもCakePHPもLaminasも大きすぎる...
もっとルーターとページだけのシンプルなやつでいいんだ...
CodeIgniterはドキュメント分かりにくすぎるし、FuelPHPは...し,死んでる...?
FlightPHPとは
FlightPHPはかなりシンプルな作りになっている
Insight見るとまだ若干動いているよう
インストールから起動
Composerを使ってインストールするので入れておいて欲しい composerはphpのパッケージマネージャみたいなものでnpmみたいに使える
composer require mikecao/flight my-app
my-app
のとこにプロジェクトの名前を入れる
すでにmy-app
があればその中でcomposer require mikecao/flight
でOK
シンプルが売りらしいがしっかり最小構成になってる
composerの設定とライブラリがvendorに入っているだけ
Apacheの設定
.htaccessをルートに用意する
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
Index.php
フォルダ構成はこんな感じで
- vendor
- views <- ページとか
- assets <- 画像とかcssとか
- .vscode <- VSCodeでscssをコンパイルする用の設定とか
- index.php <- 設置
ルートにIndex.phpを作成してlayoutとかルーターとか設置する
<?php
require 'vendor/autoload.php';
Flight::set("layout", "views/templates/layout.php");
Flight::route('/', function(){
echo 'hello world!';
});
Flight::start();
デフォルトだとviews
のファイルを読みにいくけど
Flight::set("flight.views.path", "/kokodayo");
これでkokodayo
フォルダを読みに行く
Flight::render("gyudon", "3color/cheese");
こう書いたらFlight::get("gyudon")
でkokodayo/3color/cheese.php
を読み込める
起動
php -S localhost:8080
ブラウザでlocalhost:8080を開けばhello worldが返ってくる
関数とか
公式ページにまとまってる
サンプルとか
Herokuにデプロイしてみる
Gitの設定
まずGitを設定
git init
git commit -m "[init]"
リモートの設定
Herokuにアプリを作成して、リモートに設定
heroku apps:create my-app
heroku git:remote -a my-app
Procfile
を作成してコミットする
touch Procfile
Procfile
には以下のように記載する
web: vendor/bin/heroku-php-apache2
ファイルを追加したので、コミットする
git add Procfile
git commit -m "[build] add Procfile"
リモートにデプロイ
リモートにPushする
git push heroku master
heroku open
アプリ名を指定してもOK
heroku open -a my-app
PHP8.1以降だとエラーが出るかも...
エラーが出た場合にはheroku logs -t
でログが見られるので確認する
FlightPHPにはバージョン2があるので、PHP8.1以降を使っている場合には、
再インストールが必要
composer require mikecao/flight:2.0.1
これでもう一度デプロイしてみると良いかも