# Wymagania Zend Framework

Zend Framework wymaga interpretera PHP 5 z serwerem pozwalającym na poprawną obsługę skryptów PHP. Niektóre funkcjonalności wymagają dodatkowych rozszerzeń lub funkcji serwera; w większości przypadków framework może być użyty bez nich, jednak może ucierpieć na tym wydajność, a niektóre poboczne fukncjonalności mogą nie działać w pełni sprawnie. Przykładem takiej zależności jest rozszerzenie mod_rewrite serwera Apache, które może być użyte do utworzenia "przyjaznych URL" jak "http://www.example.com/user/edit". Jeśli rozszerzenie mod_rewrite nie jest aktywne, ZF może być skonfigurowany w taki sposób aby obsłużyć adresy URL w postaci "http://www.example.com?controller=user&action=edit". Przyjazne URL mogą być użyte aby skrócić adresy w celu polepszenia ich czytelności lub dla potrzeb optymalizacji pod kątem wyszukiwarek internetowych (SEO), jednak nie mają one bezpośredniego wpływu na funkcjonalność aplikacji.

## Wersja PHP

Zend zaleca wersję PHP 5.2.11 lub wyższą z powodu znacznego zwiększenia bezpieczeństwa i wydajności, jednak Zend Framework do działania wymaga wersji PHP 5.2.11 lub wyższej.

Zend Framework posiada obszerny zestaw testów jednostkowych, które możesz uruchomić za pomocą biblioteki PHPUnit 3.4.15.

## Rozszerzenia PHP

Poniżej znajdziesz tabelę wypisującą wszystkie typowe rozszerzenia jakie można znaleźć w PHP i opisującą w jaki sposób są użyte w Zend Framework. Powinieneś upewnić się, że rozszerzenia wymagane przez komponenty ZF których chcesz użyć, są dostępne na twoim serwerze PHP. Wiele aplikacji może nie wymagać wszystkich opisanych rozszerzeń.

Zależność "silna" oznacza, że dany komponent lub klasa nie będzie działać prawidłowo jeśli odpowiednie rozszerzenie nie jest dostępne, a zależność "słaba" oznacza że dany komponent może korzystać z rozszerzenia jeśli jest dostępne, ale będzie działać poprawnie także i bez niego. Wiele komponentów automatycznie użyje określonych rozszerzeń w celu zwiększenia wydajności, ale wykona kod o podobnej funkcjonalności jeśli brak będzie potrzebnego rozszerzenia.

Rozszerzenia PHP używane przez komponenty Zend Framework

Rozszerzenie | Typ zależności | Używane przez komponenty Zend Framework
--- | --- | ---
`apc` | Silna | `Zend_Cache_Backend_Apc`
`bcmath` | Słaba | `Zend_Locale`
`bitset` | Słaba | `Zend_Search_Lucene`
`bz2` | --- | ---
`calendar` | --- | ---
`com_dotnet` | --- | ---
`ctype` | Silna | `Zend_Auth_Adapter_Http`
`Zend_Gdata`
`Zend_Http_Client`
`Zend_Pdf`
`Zend_Rest_Client`
`Zend_Rest_Server`
`Zend_Search_Lucene`
`Zend_Uri`
`Zend_Validate`
`curl` | Silna | `Zend_Http_Client_Adapter_Curl`
`date` | --- | ---
`dba` | --- | ---
`dbase` | --- | ---
`dom` | Silna | `Zend_Feed`
`Zend_Gdata`
`Zend_Log_Formatter_Xml`
`Zend_Rest_Server`
`Zend_Search_Lucene`
`Zend_Service_Amazon`
`Zend_Service_Delicious`
`Zend_Service_Flickr`
`Zend_Service_Yahoo`
`Zend_XmlRpc`
`exif` | --- | ---
`fbsql` | --- | ---
`fdf` | --- | ---
`filter` | --- | ---
`ftp` | --- | ---
`gd` | Silna | `Zend_Pdf`
`gettext` | --- | ---
`gmp` | --- | ---
`hash` | Silna | `Zend_Auth_Adapter_Http`
`ibm_db2` | Silna | `Zend_Db_Adapter_Db2`
`iconv` | Silna | `Zend_Currency`
`Zend_Locale_Format`
`Zend_Mime`
`Zend_Pdf`
`Zend_Search_Lucene`
`Zend_Service_Audioscrobbler`
`Zend_Service_Flickr`
`Zend_XmlRpc_Client`
`imap` | --- | ---
`informix` | --- | ---
`interbase` | Silna | Zend_Db_Adapter_Firebird
`json` | Słaba | `Zend_Json`
`ldap` | --- | ---
`libxml` | Silna | `DOM`
`SimpleXML`
`XSLT`
`mbstring` | Silna | `Zend_Feed`
`mcrypt` | --- | ---
`memcache` | Silna | `Zend_Cache_Backend_Memcached`
`mhash` | --- | ---
`mime_magic` | Silna | `Zend_Http_Client`
`ming` | --- | ---
`msql` | --- | ---
`mssql` | --- | ---
`mysql` | --- | ---
`mysqli` | Silna | `Zend_Db_Adapter_Mysqli`
`ncurses` | --- | ---
`oci8` | Silna | `Zend_Db_Adapter_Oracle`
`odbc` | --- | ---
`openssl` | --- | ---
`pcntl` | --- | ---
`pcre` | Silna | Praktycznie wszystkie komponenty
`pdo` | Silna | Wszystkie adaptery baz danych PDO
`pdo_dblib` | --- | ---
`pdo_firebird` | --- | ---
`pdo_mssql` | Silna | `Zend_Db_Adapter_Pdo_Mssql`
`pdo_mysql` | Silna | `Zend_Db_Adapter_Pdo_Mysql`
`pdo_oci` | Silna | `Zend_Db_Adapter_Pdo_Oci`
`pdo_pgsql` | Silna | `Zend_Db_Adapter_Pdo_Pgsql`
`pdo_sqlite` | Silna | `Zend_Db_Adapter_Pdo_Sqlite`
`pgsql` | --- | ---
`posix` | Słaba | `Zend_Mail`
`pspell` | --- | ---
`readline` | --- | ---
`recode` | --- | ---
`Reflection` | Silna | `Zend_Controller`
`Zend_Filter`
`Zend_Filter_Input`
`Zend_Json`
`Zend_Log`
`Zend_Rest_Server`
`Zend_Server_Reflection`
`Zend_Validate`
`Zend_View`
`Zend_XmlRpc_Server`
`session` | Silna | `Zend_Controller_Action_Helper_Redirector`
`Zend_Session`
`shmop` | --- |
`SimpleXML` | Silna | `Zend_Config_Xml`
`Zend_Feed`
`Zend_Rest_Client`
`Zend_Service_Audioscrobbler`
`Zend_XmlRpc`
`soap` | Silna | `Zend_Service_StrikeIron`
`sockets` | --- | ---
`SPL` | Silna | wirtualnie wszystkie komponenty
`SQLite` | Silna | Zend_Cache_Backend_Sqlite
`standard` | Silna | wirtualnie wszystkie komponenty
`sybase` | --- | ---
sysvmsg | --- | ---
sysvsem | --- | --
sysvshm | --- | ---
`tidy` | --- | ---
`tokenizer` | --- | ---
`wddx` | --- | ---
`xml` | Silna | `Zend_Translate_Adapter_Qt`
`Zend_Translate_Adapter_Tmx`
`Zend_Translate_Adapter_Xliff`
`XMLReader` | --- | ---
`xmlrpc` | --- | ---
`XMLWriter` | --- | ---
`xsl` | --- | ---
`zip` | --- | ---
`zlib` | Silna | `Zend_Pdf`
`Memcache`

## Komponenty Zend Framework

Poniżej znajduje się tabela, która przedstawia spis wszystkich dostępnych komponentów Zend Framework i rozszerzeń PHP których one wymagają. Może ci to pomóc upewnić się, które rozszerzenia są wymagane przez twoją aplikację. Nie wszystkie rozszerzenia używane przez Zend Framework są wymagane dla każdej aplikacji.

Zależność "silna" oznacza, że dany komponent lub klasa nie będzie działać prawidłowo jeśli odpowiednie rozszerzenie nie jest dostępne, a zależność "słaba" oznacza że dany komponent może korzystać z rozszerzenia jeśli jest dostępne, ale będzie działać poprawnie także i bez niego. Wiele komponentów automatycznie użyje określonych rozszerzeń w celu zwiększenia wydajności, ale wykona kod o podobnej funkcjonalności jeśli brak będzie potrzebnego rozszerzenia.

Komponenty Zend Framework i rozszerzenia PHP których używają

Komponenty Zend Framework | Typ zależności | Klasa rozszerzona | Rozszerzenie PHP
--- | --- | --- | ---
Wszystkie komponenty | Silna | --- | `pcre`
`SPL`
`standard`
`Zend_Acl` | --- | --- | ---
`Zend_Auth` | Silna | `Zend_Auth_Adapter_Http` | `ctype`
`hash`
`Zend_Cache` | Silna | `Zend_Cache_Backend_Apc` | `apc`
`Zend_Cache_Backend_Memcached` | `memcache`
`Zend_Cache_Backend_Sqlite` | `sqlite`
`Zend_Cache_Backend_Zlib` | `zlib`
`Zend_Config` | Silna | `Zend_Config_Xml` | `libxml`
`SimpleXML`
`Zend_Console_Getopt` | --- | --- | ---
`Zend_Controller` | Silna | --- | `Reflection`
`Zend_Controller_Action_Helper_Redirector` | `session`
`Zend_Currency` | Silna | --- | `iconv`
`Zend_Date` | --- | --- | ---
`Zend_Db` | Silna | Wszystkie adaptery baz danych PDO | `pdo`
`Zend_Db_Adapter_Db2` | `ibm_db2`
`Zend_Db_Adapter_Mysqli` | `mysqli`
`Zend_Db_Adapter_Oracle` | `oci8`
`Zend_Db_Adapter_Pdo_Mssql` | pdo_mssql
`Zend_Db_Adapter_Pdo_Mysql` | `pdo_mysql`
`Zend_Db_Adapter_Pdo_Oci` | `pdo_oci`
`Zend_Db_Adapter_Pdo_Pgsql` | `pdo_pgsql`
`Zend_Db_Adapter_Pdo_Sqlite` | `pdo_sqlite`
`Zend_Debug` | --- | --- | ---
`Zend_Exception` | --- | --- | ---
`Zend_Feed` | Silna | --- | `dom`
`libxml`
`mbstring`
`SimpleXML`
`Zend_Filter` | Silna | --- | `Reflection`
`Zend_Form` | --- | --- | ---
`Zend_Gdata` | Silna | `Zend_Gdata_App` | `ctype`
--- | `dom`
`libxml`
`Zend_Http` | Silna | `Zend_Http_Client_Adapter_Curl` | `curl`
`Zend_Http_Client` | `ctype`
`mime_magic`
`Zend_Json` | Słaba | --- | `json`
Silna | --- | `Reflection`
`Zend_Layout` | --- | --- | ---
`Zend_Ldap` | --- | --- | ---
`Zend_Loader` | --- | --- | ---
`Zend_Locale` | Słaba | `Zend_Locale_Math` | `bcmath`
Silna | `Zend_Locale_Format` | `iconv`
`Zend_Log` | Silna | `Zend_Log_Formatter_Xml` | `dom`
`libxml`
--- | `Reflection`
`Zend_Mail` | Słaba | --- | `posix`
`Zend_Measure` | --- | --- | ---
`Zend_Memory` | --- | --- | ---
`Zend_Mime` | Silna | `Zend_Mime_Decode` | `iconv`
`Zend_OpenId` | --- | --- | ---
`Zend_Pdf` | Silna | --- | `ctype`
`gd`
`iconv`
`zlib`
`Zend_Registry` | --- | --- | ---
`Zend_Request` | --- | --- | ---
`Zend_Rest` | Silna | `Zend_Rest_Client` | `ctype`
`libxml`
`SimpleXML`
`Zend_Rest_Server` | `ctype`
`dom`
`libxml`
`Reflection`
`Zend_Search_Lucene` | Słaba | --- | `bitset`
Silna | `ctype`
`dom`
`iconv`
`libxml`
`Zend_Server_Reflection` | Silna | --- | `Reflection`
`Zend_Service_Akismet` | --- | --- | ---
`Zend_Service_Amazon` | Silna | --- | `dom`
`libxml`
`Zend_Service_Audioscrobbler` | Silna | --- | `iconv`
`libxml`
`SimpleXML`
`Zend_Service_Delicious` | Silna | --- | `dom`
`libxml`
`Zend_Service_Flickr` | Silna | --- | `dom`
`iconv`
`libxml`
`Zend_Service_SlideShare` | --- | --- | ---
`Zend_Service_StrikeIron` | Silna | --- | `soap`
`Zend_Service_Technorati` | --- | --- | ---
`Zend_Service_Yahoo` | Silna | --- | `dom`
`libxml`
`Zend_Session` | Silna | --- | `session`
`Zend_TimeSync` | --- | --- | ---
`Zend_Translate` | Silna | `Zend_Translate_Adapter_Qt` | `xml`
`Zend_Translate_Adapter_Tmx` | `xml`
`Zend_Translate_Adapter_Xliff` | `xml`
`Zend_Uri` | Silna | --- | `ctype`
`Zend_Validate` | Silna | --- | `ctype`
`Reflection`
`Zend_Version` | --- | --- | ---
`Zend_Validate` | Silna | --- | `Reflection`
`Zend_XmlRpc` | Silna | --- | `dom`
`libxml`
`SimpleXML`
`Zend_XmlRpc_Client` | `iconv`
`Zend_XmlRpc_Server` | `Reflection`

## Zależności Zend Framework

Poniżej możesz znaleźć tabelę wypisującą komponenty Zend Framework i ich zależności od innych komponentów Zend Framework. Pomoże ci to gdy potrzebujesz tylko jednego komponentu zamiast całego Zend Framework.

Zależność "silna" oznacza, że dany komponent lub klasa nie będzie działać prawidłowo jeśli zależny komponent nie jest dostępny, a zależność "słaba" oznacza że dany komponent może wymagać zależnego komponentu w specjalnych sytuacjach lub ze specyficznymi sterownikami.

Nawet jeśli jest możliwe oddzielenie pojedynczego komponentu od Zend Framework powinieneś pamiętać że może to spowodować problemy gdy zabraknie plików lub komponentów używanych dynamicznie.

Komponenty Zend Framework i ich zależności od innych komponentów Zend Framework

Komponent Zend Framework | Typ zależności | Zależny komponent Zend Framework
--- | --- | ---
`Zend_Acl` | Silna | `Zend_Exception`
`Zend_Auth` | Silna | `Zend_Exception`
Słaba | `Zend_Db`
`Zend_Ldap`
`Zend_OpenId`
`Zend_Session`
`Zend_Cache` | Silna | `Zend_Exception`
`Zend_Loader`
`Zend_Config` | Silna | `Zend_Exception`
`Zend_Console_Getopt` | Silna | `Zend_Exception`
`Zend_Json`
`Zend_Controller` | Silna | `Zend_Config`
`Zend_Exception`
`Zend_Filter`
`Zend_Json`
`Zend_Layout`
`Zend_Loader`
`Zend_Registry`
`Zend_Session`
`Zend_Uri`
`Zend_View`
`Zend_Currency` | Silna | `Zend_Exception`
`Zend_Locale`
`Zend_Date` | Silna | `Zend_Exception`
`Zend_Locale`
`Zend_Db` | Silna | `Zend_Config`
`Zend_Exception`
`Zend_Loader`
`Zend_Registry`
`Zend_Debug` | --- | ---
`Zend_Exception` | --- | ---
`Zend_Feed` | Silna | `Zend_Exception`
`Zend_Http`
`Zend_Loader`
`Zend_Uri`
`Zend_Filter` | Silna | `Zend_Exception`
`Zend_Loader`
`Zend_Locale`
`Zend_Validate`
`Zend_Form` | Silna | `Zend_Controller`
`Zend_Exception`
`Zend_Filter`
`Zend_Json`
`Zend_Loader`
`Zend_Registry`
`Zend_Session`
`Zend_Validate`
`Zend_Gdata` | Silna | `Zend_Exception`
`Zend_Http`
`Zend_Loader`
`Zend_Mime`
`Zend_Version`
`Zend_Http` | Silna | `Zend_Exception`
`Zend_Loader`
`Zend_Uri`
`Zend_Json` | Silna | `Zend_Exception`
`Zend_Layout` | Silna | `Zend_Controller`
`Zend_Exception`
`Zend_Filter`
`Zend_Loader`
`Zend_View`
`Zend_Ldap` | Silna | `Zend_Exception`
`Zend_Loader` | Silna | `Zend_Exception`
`Zend_Locale` | Silna | `Zend_Exception`
`Zend_Log` | Silna | `Zend_Exception`
`Zend_Mail` | Silna | `Zend_Exception`
`Zend_Loader`
`Zend_Mime`
`Zend_Validate`
`Zend_Measure` | Silna | `Zend_Exception`
`Zend_Locale`
`Zend_Memory` | Silna | `Zend_Cache`
`Zend_Exception`
`Zend_Mime` | Silna | `Zend_Exception`
`Zend_OpenId` | Silna | `Zend_Controller`
`Zend_Exception`
`Zend_Http`
`Zend_Session`
`Zend_Pdf` | Silna | `Zend_Exception`
`Zend_Log`
`Zend_Memory`
`Zend_Registry` | Silna | `Zend_Exception`
`Zend_Loader`
`Zend_Request` | --- | ---
`Zend_Rest` | Silna | `Zend_Exception`
`Zend_Server`
`Zend_Service`
`Zend_Uri`
`Zend_Search_Lucene` | Silna | `Zend_Exception`
`Zend_Server_Reflection` | Silna | `Zend_Exception`
`Zend_Service_Akismet` | Silna | `Zend_Exception`
`Zend_Http`
`Zend_Uri`
`Zend_Version`
`Zend_Service_Amazon` | Silna | `Zend_Exception`
`Zend_Http`
`Zend_Rest`
`Zend_Service_Audioscrobbler` | Silna | `Zend_Exception`
`Zend_Http`
`Zend_Service_Delicious` | Silna | `Zend_Date`
`Zend_Exception`
`Zend_Http`
`Zend_Json`
`Zend_Rest`
`Zend_Service_Flickr` | Silna | `Zend_Exception`
`Zend_Http`
`Zend_Rest`
`Zend_Validate`
`Zend_Service_SlideShare` | Silna | `Zend_Cache`
`Zend_Exception`
`Zend_Http`
`Zend_Service_StrikeIron` | Silna | `Zend_Exception`
`Zend_Http`
`Zend_Loader`
`Zend_Service_Technorati` | Silna | `Zend_Date`
`Zend_Exception`
`Zend_Http`
`Zend_Locale`
`Zend_Rest`
`Zend_Uri`
`Zend_Service_Yahoo` | Silna | `Zend_Exception`
`Zend_Http`
`Zend_Rest`
`Zend_Validate`
`Zend_Session` | Silna | `Zend_Exception`
`Zend_Loader`
`Zend_TimeSync` | Silna | `Zend_Date`
`Zend_Exception`
`Zend_Loader`
`Zend_Translate` | Silna | `Zend_Exception`
`Zend_Loader`
`Zend_Locale`
`Zend_Uri` | Silna | `Zend_Exception`
`Zend_Loader`
`Zend_Validate`
`Zend_Validate` | Słaba | `Zend_Date`
`Zend_Filter`
`Zend_Locale`
`Zend_Registry`
Silna | `Zend_Exception`
`Zend_Loader`
`Zend_Version` | --- | ---
`Zend_View` | Silna | `Zend_Controller`
`Zend_Exception`
`Zend_Json`
`Zend_Layout`
`Zend_Loader`
`Zend_Locale`
`Zend_Registry`
`Zend_XmlRpc` | Silna | `Zend_Exception`
`Zend_Registry`
`Zend_Server`