<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<appendix id="requirements" xmlns:xi="http://www.w3.org/2001/XInclude">
    <title>Zend Framework Requirements</title>

    <sect1 id="requirements.introduction">
        <title>Introduction</title>

        <para>
            Zend Framework requires a <acronym>PHP</acronym> 5 interpreter with a web server
            configured to handle <acronym>PHP</acronym> scripts correctly. Some features require
            additional extensions or web server features; in most cases the framework can be used
            without them, although performance may suffer or ancillary features may not be fully
            functional. An example of such a dependency is mod_rewrite in an Apache environment,
            which can be used to implement "pretty <acronym>URL</acronym>'s" like
            "<filename>http://www.example.com/user/edit</filename>". If mod_rewrite is not enabled,
            Zend Framework can be configured to support <acronym>URL</acronym>'s such as
            "<command>http://www.example.com?controller=user&amp;action=edit</command>". Pretty
            <acronym>URL</acronym>'s may be used to shorten <acronym>URL</acronym>'s for textual
            representation or search engine optimization (<acronym>SEO</acronym>), but they do not
            directly affect the functionality of the application.
        </para>

        <sect2 id="requirements.version">
            <title>PHP Version</title>

            <para>
                Zend recommends the most current release of <acronym>PHP</acronym> for critical
                security and performance enhancements, and currently supports
                <acronym>PHP</acronym> 5.2.4 or later.
            </para>

            <para>
                Zend Framework has an extensive collection of unit tests, which you can run using
                PHPUnit 3.3.0 or later.
            </para>
        </sect2>

        <sect2 id="requirements.extensions">
            <title>PHP Extensions</title>

            <para>
                You will find a table listing all extensions typically found in
                <acronym>PHP</acronym> and how they are used in Zend Framework below. You should
                verify that the extensions on which Zend Framework components you'll be using in
                your application are available in your <acronym>PHP</acronym> environments. Many
                applications will not require every extension listed below.
            </para>

            <para>
                A dependency of type "hard" indicates that the components or classes
                cannot function properly if the respective extension is not available,
                while a dependency of type "soft" indicates that the component may use
                the extension if it is available but will function properly if it is not.
                Many components will automatically use certain extensions if they are available
                to optimize performance but will execute code with similar functionality in the
                component itself if the extensions are unavailable.
            </para>

            <xi:include href="requirements-php-extensions-table.xml" />
        </sect2>

        <sect2 id="requirements.zendcomponents">
            <title>Zend Framework Components</title>

            <para>
                Below is a table that lists all available Zend Framework Components
                and which <acronym>PHP</acronym> extension they need. This can help guide you
                to know which extensions are required for your application.
                Not all extensions used by Zend Framework are required for every
                application.
            </para>

            <para>
                A dependency of type "hard" indicates that the components or classes
                cannot function properly if the respective extension is not available,
                while a dependency of type "soft" indicates that the component may use
                the extension if it is available but will function properly if it is not.
                Many components will automatically use certain extensions if they are available
                to optimize performance but will execute code with similar functionality in the
                component itself if the extensions are unavailable.
            </para>

            <xi:include href="requirements-zendcomponents-table.xml" />
        </sect2>

        <sect2 id="requirements.dependencies">
            <title>Zend Framework Dependencies</title>

            <para>
                Below you can find a table listing Zend Framework Components
                and their dependencies to other Zend Framework Components. This
                can help you if you need to have only single components instead
                of the complete Zend Framework.
            </para>

            <para>
                A dependency of type "hard" indicates that the components or classes
                cannot function properly if the respective dependent component is not available,
                while a dependency of type "soft" indicates that the component may need
                the dependent component in special situations or with special adapters.
                At last a dependency of type "fix" indicated that these components or classes are
                in any case used by subcomponents, and a dependency of type "sub" indicates that
                these components can be used by subcomponents in special situations or with special
                adapters.
            </para>

            <note>
                <para>
                    Even if it's possible to separate single components for
                    usage from the complete Zend Framework you should keep
                    in mind that this can lead to problems when files are missed
                    or components are used dynamically.
                </para>
            </note>

            <xi:include href="requirements-dependencies-table.xml" />
        </sect2>
    </sect1>
</appendix>
<!--
vim:se ts=4 sw=4 et:
-->
