インストール手順

Flightをインストールする前に、いくつかの前提条件があります。具体的には以下が必要です:

  1. システムにPHPをインストール
  2. 最良の開発体験のためにComposerをインストール

基本的なインストール

Composerを使用している場合は、次のコマンドを実行できます:

composer require flightphp/core

これにより、Flightのコアファイルだけがシステムにインストールされます。プロジェクト構造、レイアウト依存関係設定オートローディングなどは自分で定義する必要があります。この方法では、Flight以外の依存関係はインストールされません。

ファイルをダウンロードして、Webディレクトリに直接展開することもできます。

基本的なインストールは、学習、マイクロAPI、コピー&ペーストの実験に最適です。人間とAIコーディングツールが同じ方法で従える完全なアプリレイアウトが必要な場合は、以下の推奨スケルトンを使用してください。

推奨インストール

新しいプロジェクトには、flightphp/skeletonアプリから始めることを強くお勧めします。インストールは簡単です。

composer create-project flightphp/skeleton my-project/
cd my-project/
composer start
# オプションのサンプルDB + 投稿デモ
php runway migrate

このステップにより、プロジェクト構造、Composer PSR-4オートローディング、設定、およびTracyTracy ExtensionsRunwayなどのツールがセットアップされます。また、ルートのAGENTS.md(およびapp/配下のスコープ付きコピー)が同梱されているため、AIアシスタントはあなたと同じレイアウトを共有できます。AIと開発者体験を参照してください。

スケルトンが提供するもの

project-root/
├── AGENTS.md              # AI / エージェントの情報源
├── SECURITY.md            # セキュリティの期待値
├── .env.example           # シークレット / デプロイオーバーレイ(.envにコピー)
├── public/index.php       # Webエントリのみ
├── app/
│   ├── config/            # bootstrap、routes、services、config_sample.php
│   ├── Controller/        # App\Controller\*(パスカルケースのフォルダ!)
│   ├── Middleware/        # App\Middleware\*
│   ├── Model/             # App\Model\*(ActiveRecord)
│   ├── Utils/             # Config、Env、DatabaseFactory
│   ├── commands/          # Runway CLIコマンド
│   ├── views/             # Twigテンプレート(*.twig)
│   ├── cache/
│   └── log/
├── migrations/            # SQLマイグレーション(.sql / .mysql.sql)
└── tests/                 # PHPUnit

名前空間はフォルダーの大文字小文字に従います。 Composerは"App\\": "app/"をマッピングするため、次のようになります:

ディスク上のパス 名前空間
app/Controller/HomeController.php App\Controller\HomeController
app/Middleware/… App\Middleware\…
app/Model/… App\Model\…
app/Utils/… App\Utils\…

Linuxでは、app/controller/app/Controller/と同じではありません。オートローディングは大文字小文字を区別します。スケルトンのパスカルケースフォルダーに合わせてください。詳細:オートローディング

スタックのデフォルト(新規プロジェクト): Twigビュー、SimplePdo + ActiveRecord、Engine注入を使用したDice(アプリクラス内でのFlight::の使用は避ける)、php runway migrate後のオプションのSQLite。

create-projectは通常、app/config/config_sample.phpconfig.phpに、.env.example.envにコピーします(存在する場合)。ルートはapp/config/routes.phpに、サービスとDIはapp/config/services.phpにあります。

ドキュメント ↔ スケルトン: これらのドキュメントはFlightのAPIを教えます(多くの場合、短いFlight::サンプルを使用)。スケルトンはアプリケーションの形を固定します。app/配下にコードを追加する場合は、スケルトンのツリーに従ってください。メソッド名、オプション、プラグインについてはドキュメントを使用してください。

Webサーバーの設定

PHPビルトイン開発サーバー

これは断然最も簡単な起動方法です。ビルトインサーバーを使用してアプリケーションを実行でき、データベースにSQLiteを使用することもできます(システムにsqlite3がインストールされていれば)。PHPがインストールされていれば、次のコマンドを実行するだけです:

php -S localhost:8000
# またはスケルトンアプリの場合
composer start

その後、ブラウザを開いてhttp://localhost:8000にアクセスします。

プロジェクトのドキュメントルートを別のディレクトリにしたい場合(例:プロジェクトが~/myprojectで、ドキュメントルートが~/myproject/public/の場合)、~/myprojectディレクトリにいる状態で次のコマンドを実行できます:

php -S localhost:8000 -t public/
# スケルトンアプリでは、これは既に設定されています
composer start

その後、ブラウザを開いてhttp://localhost:8000にアクセスします。

Apache

Apacheがシステムにインストールされていることを確認してください。インストールされていない場合は、お使いのシステムへのApacheのインストール方法をGoogleで検索してください。

Apacheの場合、.htaccessファイルを次のように編集します:

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

注: flightをサブディレクトリで使用する必要がある場合は、RewriteEngine Onの直後にRewriteBase /subdir/の行を追加してください。

注: DBやenvファイルなど、すべてのサーバーファイルを保護したい場合は、.htaccessファイルに次のように記述します:

RewriteEngine On
RewriteRule ^(.*)$ index.php

Nginx

Nginxがシステムにインストールされていることを確認してください。インストールされていない場合は、お使いのシステムへのNginxのインストール方法をGoogleで検索してください。

Nginxの場合、サーバー宣言に次を追加します:

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

index.phpファイルを作成する

基本的なインストールを行う場合は、開始するためのコードが必要です。

<?php

// Composerを使用している場合は、オートローダーを読み込みます。
require 'vendor/autoload.php';
// Composerを使用しない場合は、フレームワークを直接読み込みます
// require 'flight/Flight.php';

// 次にルートを定義し、リクエストを処理する関数を割り当てます。
Flight::route('/', function () {
  echo 'hello world!';
});

// 最後に、フレームワークを起動します。
Flight::start();

スケルトンアプリでは、パブリックエントリはアプリを起動するだけです。ルートはapp/config/routes.phpで登録されます(通常は[App\Controller\…::class, 'method']の形式で、Diceが依存関係を注入できるようにします)。サービス、Twig、SimplePdo、コンテナはapp/config/services.phpで配線されます。この構造は、AIツールと人間が毎回同じ場所を編集するように意図されています。

PHPのインストール

お使いのシステムにphpが既にインストールされている場合は、これらの手順をスキップしてダウンロードセクションに進んでください。

macOS

Homebrewを使用したPHPのインストール

  1. Homebrewをインストール(まだインストールされていない場合):

    • ターミナルを開いて実行:
      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. PHPをインストール

    • 最新バージョンをインストール:
      brew install php
    • 特定のバージョン(例:PHP 8.1)をインストールする場合:
      brew tap shivammathur/php
      brew install shivammathur/php/php@8.1
  3. PHPバージョンの切り替え

    • 現在のバージョンのリンクを解除し、希望するバージョンにリンク:
      brew unlink php
      brew link --overwrite --force php@8.1
    • インストールされたバージョンを確認:
      php -v

Windows 10/11

PHPの手動インストール

  1. PHPをダウンロード

    • PHP for Windowsにアクセスし、最新版または特定のバージョン(例:7.4、8.0)を非スレッドセーフ版のzipファイルとしてダウンロードします。
  2. PHPを展開

    • ダウンロードしたzipファイルをC:\phpに展開します。
  3. PHPをシステムのPATHに追加

    • システムのプロパティ > 環境変数に移動します。
    • システム変数の下でPathを見つけ、編集をクリックします。
    • パスC:\php(またはPHPを展開した場所)を追加します。
    • OKをクリックしてすべてのウィンドウを閉じます。
  4. PHPを設定

    • php.ini-developmentphp.iniにコピーします。
    • php.iniを編集して、必要に応じてPHPを設定します(例:extension_dirの設定、拡張機能の有効化)。
  5. PHPのインストールを確認

    • コマンドプロンプトを開いて実行:
      php -v

複数バージョンのPHPをインストール

  1. 各バージョンについて上記の手順を繰り返し、それぞれを別のディレクトリ(例:C:\php7C:\php8)に配置します。

  2. システムのPATH変数を目的のバージョンのディレクトリに調整して、バージョンを切り替えます

Ubuntu(20.04、22.04など)

aptを使用したPHPのインストール

  1. パッケージリストを更新

    • ターミナルを開いて実行:
      sudo apt update
  2. PHPをインストール

    • 最新のPHPバージョンをインストール:
      sudo apt install php
    • 特定のバージョン(例:PHP 8.1)をインストールする場合:
      sudo apt install php8.1
  3. 追加モジュールをインストール(オプション):

    • 例えば、MySQLサポートをインストールする場合:
      sudo apt install php8.1-mysql
  4. PHPバージョンの切り替え

    • update-alternativesを使用:
      sudo update-alternatives --set php /usr/bin/php8.1
  5. インストールされたバージョンを確認

    • 実行:
      php -v

Rocky Linux

yum/dnfを使用したPHPのインストール

  1. EPELリポジトリを有効化

    • ターミナルを開いて実行:
      sudo dnf install epel-release
  2. Remiリポジトリをインストール

    • 実行:
      sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
      sudo dnf module reset php
  3. PHPをインストール

    • デフォルトバージョンをインストール:
      sudo dnf install php
    • 特定のバージョン(例:PHP 7.4)をインストールする場合:
      sudo dnf module install php:remi-7.4
  4. PHPバージョンの切り替え

    • dnfモジュールコマンドを使用:
      sudo dnf module reset php
      sudo dnf module enable php:remi-8.0
      sudo dnf install php
  5. インストールされたバージョンを確認

    • 実行:
      php -v

一般的な注意事項

  • 開発環境では、プロジェクトの要件に応じてPHP設定を構成することが重要です。
  • PHPバージョンを切り替える際は、使用予定の特定バージョンに対応するすべての関連PHP拡張機能がインストールされていることを確認してください。
  • PHPバージョンの切り替えや設定の更新後は、Webサーバー(Apache、Nginxなど)を再起動して変更を適用してください。