Naify Package
Naify
疎結合なWebアプリ基盤
コア34ファイル
PSR-4 / 7 / 15相当
PHP 8.0+
AI-Ready
Naifyとは
フレームワークの種類にかかわらず、認証や業務処理の配置が揃っていないと、変更時の確認漏れにつながります。
そこで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アプリケーション生成を担当します |
App | HTTPリクエストをRouterとRequestHandlerへ流し、アプリ全体を実行します |
Router | ルート定義、エラーハンドラ、RouteFactoryを含むルーティング面の中心 |
RequestContext | アプリコードが触る唯一の独自窓口。PSR面との境界もここに集約します |
RequestContextHandlerInterface | リクエストハンドラの契約。Controllerはその代表的な実装パターンのひとつです。handle(RequestContext, ?string) を基準にします |
Session | セッションアクセスを薄く扱うコンポーネント |
APIリファレンス
実装の型情報やPHPDocから生成したAPIリファレンスです。