# Zend Framework のシステム要件

## 導入

Zend Framework を使用するには、PHP 5 のインタプリタおよび PHP スクリプトを処理できるよう設定されたウェブサーバが必要です。 使用する機能によっては、それ以外に追加の拡張モジュールやウェブサーバの機能が必要となります。 ほとんどの場合は特に何も追加しなくても動作しますが、 パフォーマンスが多少落ちたり一部の機能に制限があったりすることがあります。 たとえば、一つの例としては Apache 環境の mod_rewrite があります。 これは、"`http://www.example.com/user/edit`" のようないわゆる "pretty URL" を実装するために使用します。mod_rewrite が有効になっていない場合は、 Zend Framework は "`http://www.example.com?controller=user&action=edit`" のような URL をサポートするように設定されます。Pretty URL を使うのは URL を短縮したりサーチエンジン対策の最適化 (SEO) をしたりするためですが、これがアプリケーションの機能に直接影響することはありません。

### PHP のバージョン

Zend では最新版の PHP を使うことを推奨します。 重要なセキュリティ修正が行われ、パフォーマンスも改善されているためです。 現在、Zend Framework は PHP 5.2.11 以降のバージョンをサポートしています。

Zend Framework には広範囲におよぶユニットテストも存在します。 これらを実行するには PHPUnit 3.4.15 以降が必要です。

### PHP の拡張モジュール

以下の表は、PHP に含まれる拡張モジュールと それが Zend Framework でどのように用いられているかをまとめたものです。 あなたの環境で Zend Framework のコンポーネントを使用するにはどんな拡張モジュールが必要なのかを この表で確認できます。 ここにあげられている拡張モジュールをすべて必要とするアプリケーションは、 それほど多くありません。

依存形式の "ハード" は、対応する拡張モジュールがなければ そのコンポーネントあるいはクラスが正しく動作しないことを意味します。 また "ソフト" は、もしその拡張モジュールが使用可能ならばそれを利用するけれど 使用できなくても動作に支障はないということを意味します。 多くのコンポーネントは、 何らかの拡張モジュールでパフォーマンスを最適化できる場合は自動的にそれを使用します。 使用できない場合は、同等の機能をコンポーネント自身で提供します。

### Zend Framework のコンポーネント

以下の表は、Zend Framework の各コンポーネントについて、 必要とする PHP 拡張モジュールをまとめたものです。 これを参考にすれば、あなたの作成するアプリケーションで どの拡張モジュールが必要になるかがわかるでしょう。 Zend Framework が必要とする拡張モジュールのすべてが そのアプリケーションでも必要となるというわけではありません。

依存形式の "ハード" は、対応する拡張モジュールがなければ そのコンポーネントあるいはクラスが正しく動作しないことを意味します。 また "ソフト" は、もしその拡張モジュールが使用可能ならばそれを利用するけれど 使用できなくても動作に支障はないということを意味します。 多くのコンポーネントは、 何らかの拡張モジュールでパフォーマンスを最適化できる場合は自動的にそれを使用します。 使用できない場合は、同等の機能をコンポーネント自身で提供します。

### Zend Framework の依存性

以下の表は、Zend Framework の各コンポーネントについて、 必要とする他の Zend Framework コンポーネントをまとめたものです。 Zend Framework 全体ではなくどれかひとつのコンポーネントだけを使いたい場合などに便利です。

依存形式の "ハード" は、対応する依存コンポーネントがなければ そのコンポーネントあるいはクラスが正しく動作しないことを意味します。 また "ソフト" は、もしその依存コンポーネントが使用可能ならばそれを利用するけれど 使用できなくても動作に支障はないということを意味します。 "fix" は、そのコンポーネントあるいはクラスがサブコンポーネントから使われる可能性があること、 そして "sub" は、特殊な場合や特殊なアダプタを使う際に そのコンポーネントがサブコンポーネントから使われることを意味します。

ひとつのコンポーネントだけを Zend Framework 全体から切り離して使うことも可能ですが、 ファイルが存在しなかったりコンポーネントを動的に使用したりといった場合に 問題が発生する可能性があることに気をつけておきましょう。