Naify Package

Naify

疎結合なWebアプリ基盤

コア34ファイル PSR-4 / 7 / 15相当 PHP 8.0+ AI-Ready

とは

フレームワークの種類にかかわらず、認証や業務処理の配置が揃っていないと、変更時の確認漏れにつながります。

そこでNaifyは、HTTPリクエストからレスポンスまでの骨格だけを薄く提供します。ルーティング、リクエスト処理、セッション管理を分け、ビジネスロジックが混ざりにくい構造を優先します。MVCは、その上で採りやすい実装パターンのひとつです。

ミドルウェアも実装していますが、何でも載せる場所にはしていません。 ビジネスロジックを含まないHTTPフックとして使い、責務が混ざる処理はリクエストハンドラ側へ寄せます。

最初の入口

導入時の窓口は Naify\Naify にまとめています。オートロードの登録から設定、Webアプリの生成と実行まで、このクラスから始められます。

// SampleAppBootstrap.php(プロジェクト直下)
use Naify\Naify;

require __DIR__ . '/libs/Naify/Naify.php';

Naify::boot();
Naify::autoload('App', __DIR__ . '/app');

$config = Naify::createConfig()
    ->setAppId('sample-app')
    ->setSystemDir(__DIR__)
    ->setPublicDir(__DIR__ . '/public')
    ->setConfigDir(__DIR__ . '/config')
    ->setBasePath($_SERVER['SCRIPT_NAME'] ?? '/');

$app = Naify::createWebApp($config);
$app->loadRoute('routes/routes.php');
$app->run();

どこまで含むか / 含まないか

含むもの

  • リクエストとレスポンスの処理
  • ルーティング
  • セッション、プロファイラ
  • PSR相当の実装

含まないもの

  • 認証や認可の標準実装
  • ORMやActive Record的なDB層
  • テンプレートエンジンの標準同梱
  • バリデーション、メール、ジョブ、キュー
  • Service Providerや暗黙の自動解決

主要クラス

最初に押さえるのは、入口の Naify\Naify と、Controllerから使う RequestContext です。この2つを把握しておくと、処理の流れを追いやすくなります。

クラス役割
Naifyパッケージの最初の入口。Autoloaderの登録、namespaceの追加、Webアプリケーション生成を担当します
AppHTTPリクエストをRouterとRequestHandlerへ流し、アプリ全体を実行します
Routerルート定義、エラーハンドラ、RouteFactoryを含むルーティング面の中心
RequestContextアプリコードが触る唯一の独自窓口。PSR面との境界もここに集約します
RequestContextHandlerInterfaceリクエストハンドラの契約。Controllerはその代表的な実装パターンのひとつです。handle(RequestContext, ?string) を基準にします
Sessionセッションアクセスを薄く扱うコンポーネント

APIリファレンス

実装の型情報やPHPDocから生成したAPIリファレンスです。