Nette Application

Nette Application は Nette フレームワークの中核で、現代的なウェブアプリケーションを作るための強力な道具を提供します。開発を大きく楽にし、コードの安全性と保守性を高める、他にはない機能が数多く揃っています。

インストール

ライブラリは Composerでダウンロードしてインストールします。

composer require nette/application

なぜ Nette Application を選ぶのか

Nette は常にウェブ技術の先駆けであり続けてきました。

双方向のルーター: Nette には双方向性という点で他にない高度なルーティングのしくみがあります。URL をアプリケーションのアクションに変換するだけでなく、逆に URL を生成することもできます。つまり、

  • アプリケーション全体の URL の構造を、テンプレートを直さずにいつでも変えられます
  • URL が自動的に正規化され、SEO が良くなります
  • ルーティングが 1 か所で定義され、アノテーションに散らばりません

コンポーネントとシグナル: Delphi と React.js に着想を得た組み込みのコンポーネントのしくみは、PHP のフレームワークの中でも他に例がありません。

  • 再利用できる UI 要素を作れます
  • 階層的なコンポーネントの組み立てに対応しています
  • シグナルを使った優雅な AJAX リクエストの処理を提供します
  • Componetteに既製のコンポーネントの豊富なライブラリがあります

AJAX とスニペット: Nette は 2009 年に、AJAX を扱う画期的な方法を導入しました。Ruby on Rails の Hotwire や Symfony UX Turbo のような似た解よりずっと前のことです。

  • スニペットを使うと、JavaScript を書かずにページの一部だけを更新できます
  • コンポーネントのしくみと自動的に統合されます
  • ページの部分を賢く無効化します
  • データの転送は最小限です

直感的な Latteテンプレート: 高度な機能を備えた、PHP で最も安全なテンプレートシステムです。

  • コンテキストに応じたエスケープによる自動的な XSS 対策
  • 独自のフィルタ、関数、タグで拡張できます
  • テンプレートの継承と AJAX 用のスニペット
  • 型システムを備えた優れた PHP 8.x サポート

Dependency Injection: Nette は依存性注入を全面的に活用します。

  • 依存関係の自動的な受け渡し(オートワイヤリング)
  • 分かりやすい NEON 形式による設定
  • コンポーネントのファクトリのサポート

主な利点

  • 安全性: XSS、CSRF などの脆弱性に対する自動的な保護
  • 生産性: 賢い設計のおかげで、書く量は少なく機能は多く
  • デバッグ: ルーティングのパネルを備えた Tracy デバッガ
  • 性能: 賢いキャッシュ、コンポーネントの遅延読み込み
  • 柔軟さ: アプリケーションが完成したあとでも URL を簡単に変えられます
  • コンポーネント: 再利用できる UI 要素の他にないしくみ
  • 現代的: PHP 8.3+ と型システムの完全なサポート

はじめに

  1. アプリケーションはどう動くのか – 基本のアーキテクチャの理解
  2. プレゼンター – プレゼンターとアクションの扱い
  3. テンプレート – Latte でのテンプレートの作成
  4. ルーティング – URL アドレスの設定
  5. インタラクティブなコンポーネント – コンポーネントのしくみの利用

PHP の互換性

バージョン 対応する PHP
Nette Application 3.3 PHP 8.3 – 8.5
Nette Application 3.2 PHP 8.1 – 8.5
Nette Application 3.1 PHP 7.2 – 8.3
Nette Application 3.0 PHP 7.1 – 8.0
Nette Application 2.4 PHP 5.6 – 8.0

最新のパッチバージョンに適用されます。

バージョン: 4.x