位置づけと選択基準
他フレームワークとの違いと選び方。
フレームワークの位置づけ
左側
コンポーネント
(Laminas系)
自分で組み立てる必要がある
中央
Naify
疎結合なMVCベース
普遍的な基盤を提供
右側
フルスタック
(Laravel系)
作法も依存も大きい
Naifyは、疎結合なMVCの基盤を提供しつつ、中の実装自由度は残します。フルスタックFWほど作法や依存を抱えず、コンポーネントほど組み立てを要求しない中間寄りの立場にいます。Naifyはフルスタックの代替ではなく、設計方針の異なる選択肢です。
学習コスト
| 知識 | 必要性 |
|---|---|
| PHP基本文法 | 必須 |
| MVC基本 | 必須 |
| PSR-7 / 15 | 内部理解には有用だが必須ではない |
| DIコンテナ運用知識 | 必須ではない |
| FW固有構文の暗記 | 最小限 |
他フレームワークとの比較
| 観点 | Laravel | Symfony | Naify |
|---|---|---|---|
| 標準で提供する範囲 | 認証、ORM、キュー、メールなどを幅広く提供 | 多数のコンポーネントとバンドルを組み合わせて提供 | HTTP入口、ルーティング、セッションなどの基盤に限定 |
| PHP・MVC以外に覚えること | サービスコンテナ、Facade、Eloquentなどの仕組み | DIコンテナ、設定ファイル、バンドルの仕組み | RequestContextなど少数のクラス |
| 組み立ての方針 | 規約と自動解決で記述量を減らす | DIコンテナと設定で組み立てる | 初期化や呼び出しをコード上に明示する |
| 周辺パッケージ | 公式・サードパーティともに豊富 | 公式コンポーネント・バンドルが豊富 | 公式はNaify・NaifyDb・NaifyViewの3つ。その他はアプリ側で選ぶ |
| 合いやすい案件 | 短期間での立ち上げ、SaaSなど | 大規模・エンタープライズ | 長期保守を重視する業務システム、中小規模 |
各フレームワークの内容は一般的な特徴をまとめたものです。バージョンや構成、使い方によって異なります。
Naifyが優れているというより、何を優先するかが違います。追跡性と可読性を優先したいならNaifyが合いやすく、巨大な周辺機能を最初から使いたいならLaravelやSymfonyが自然な場面もあります。
全部入りの方が有利に見えるのは自然です。実際、立ち上がりの速さや既定機能の厚さでは強みがあります。ただしPHPでは、大きなフレームワークを使っても設計逸脱そのものは起こりえます。Naifyはその現実を前提に、機能差よりも「壊れたときに追える構造」を重視しています。
比較の軸は、機能の多寡だけではありません。
Naifyは、全部入りの代替というより、PHPで設計を長く保つための運用思想が違う選択肢です。
Naifyは、全部入りの代替というより、PHPで設計を長く保つための運用思想が違う選択肢です。
どんな案件に向くか
Naifyは、全部入りを求める場面より、責務境界と長期保守を優先したい場面で合いやすいです。
| 状況 | Naifyの向き不向き |
|---|---|
| 小中規模の業務サイト | 向いています。責務境界を保ちつつ小さく始めやすい |
| AIがコードを理解・生成・修正しやすい構造を重視したい | 向いています。コードの追跡経路が短く、責務境界も追いやすい |
| 5年以上の長期運用を前提とする案件 | 向いています。依存や作法を抑えつつ、読み直しや改修の負担を増やしにくい |
| 最初から巨大なエコシステムが必要 | 別の選択肢も自然。周辺機能の充実度では他FWが勝つ場面がある |
| FW固有の作法依存を減らしたい | 向いています。PHPとMVCの知識を持ち出しやすい |