# Kebutuhan Zend Framework

Zend Framework membutuhkan PHP 5 dengan web server yang terkonfigurasi untuk menjalankan skrip PHP dengan benar. Beberapa fitur membutuhkan tambahan extension atau fitur web server; umumnya Zend Framework dapat digunakan tanpa tambahan tersebut, walaupun performanya bisa jadi berkurang atau beberapa fitur tidak berjalan sempurna. Sebagai contoh, mod_rewrite di Apache, dibutuhkan untuk mengimplementasikan "URL cantik" seperti "http://www.example.com/user/edit". Jika mod_rewrite tidak diaktifkan, ZF dapat dikonfigurasi untuk mendukung URL seperti "http://www.example.com?controller=user&action=edit". URL cantik dapat digunakan untuk memperpendek URL yang dibutuhkan untuk representasi tekstual atau search engine optimization (SEO), namun ini tidak mempengaruhi secara langsung fungsionalitas dari aplikasi.

## Versi PHP

Zend merekomendasikan PHP 5.2.11 atau yang lebih baru dengan pertimbangan keamanan dan performansi, walaupun sebenarnya ZF membutuhkan PHP minimal versi 5.2.11 untuk dapat digunakan.

Zend Framework memiliki koleksi unit test yang lengkap, yang dapat anda jalankan menggunakan PHPUnit 3.4.15 atau yang lebih baru.

## PHP Extensions

Anda akan melihat di table berikut daftar extension PHP yang biasanya tersedia dan bagaimana extension tersebut digunakan oleh Zend Framework. Anda harus memastikan extension yang dibutuhkan komponen ZF yang anda perlukan telah tersedia di instalasi PHP anda. Tidak semua aplikasi membutuhkan semua extension di table tersebut.

Tipe kebergantungan "hard" mengindikasikan komponen atau class tidak dapat berfungsi dengan benar jika extension tersebut tidak tersedia, sementara tipe kebergantungan "soft" berarti komponen dapat menggunakan extension bersangkutan jika memang tersedia namun dapat berfungsi baik kalaupun tidak tersedia. Kebanyakan komponen secara otomatis akan menggunakan extension yang dibutuhkan jika tersedia untuk mengoptimalkan performansi namun tetap jalan seperti biasa jika extension tersebut tidak tersedia (meski performansi tidak optimal).

### Extension PHP yang Digunakan Komponen Zend Framework

Extension | Tipe Kebergantungan | Digunakan oleh komponen Zend Framework
--- | --- | ---
`apc` | Hard | `Zend_Cache_Backend_Apc`
`bcmath` | Soft | `Zend_Locale`
`bitset` | Soft | `Zend_Search_Lucene`
`bz2` | --- | ---
`calendar` | --- | ---
`com_dotnet` | --- | ---
`ctype` | Hard | `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` | Hard | `Zend_Http_Client_Adapter_Curl`
`date` | --- | ---
`dba` | --- | ---
`dbase` | --- | ---
`dom` | Hard | `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` | Hard | `Zend_Pdf`
`gettext` | --- | ---
`gmp` | --- | ---
`hash` | Hard | `Zend_Auth_Adapter_Http`
`ibm_db2` | Hard | `Zend_Db_Adapter_Db2`
`iconv` | Hard | `Zend_Currency`
`Zend_Locale_Format`
`Zend_Mime`
`Zend_Pdf`
`Zend_Search_Lucene`
`Zend_Service_Audioscrobbler`
`Zend_Service_Flickr`
`Zend_XmlRpc_Client`
`imap` | --- | ---
`informix` | --- | ---
`interbase` | Hard | Zend_Db_Adapter_Firebird
`json` | Soft | `Zend_Json`
`ldap` | --- | ---
`libxml` | Hard | `DOM`
`SimpleXML`
`XSLT`
`mbstring` | Hard | `Zend_Feed`
`mcrypt` | --- | ---
`memcache` | Hard | `Zend_Cache_Backend_Memcached`
`mhash` | --- | ---
`mime_magic` | Hard | `Zend_Http_Client`
`ming` | --- | ---
`msql` | --- | ---
`mssql` | --- | ---
`mysql` | --- | ---
`mysqli` | Hard | `Zend_Db_Adapter_Mysqli`
`ncurses` | --- | ---
`oci8` | Hard | `Zend_Db_Adapter_Oracle`
`odbc` | --- | ---
`openssl` | --- | ---
`pcntl` | --- | ---
`pcre` | Hard | Virtually all components
`pdo` | Hard | All PDO database adapters
`pdo_dblib` | --- | ---
`pdo_firebird` | --- | ---
`pdo_mssql` | Hard | `Zend_Db_Adapter_Pdo_Mssql`
`pdo_mysql` | Hard | `Zend_Db_Adapter_Pdo_Mysql`
`pdo_oci` | Hard | `Zend_Db_Adapter_Pdo_Oci`
`pdo_pgsql` | Hard | `Zend_Db_Adapter_Pdo_Pgsql`
`pdo_sqlite` | Hard | `Zend_Db_Adapter_Pdo_Sqlite`
`pgsql` | --- | ---
`posix` | Soft | `Zend_Mail`
`pspell` | --- | ---
`readline` | --- | ---
`recode` | --- | ---
`Reflection` | Hard | `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` | Hard | `Zend_Controller_Action_Helper_Redirector`
`Zend_Session`
`shmop` | --- |
`SimpleXML` | Hard | `Zend_Config_Xml`
`Zend_Feed`
`Zend_Rest_Client`
`Zend_Service_Audioscrobbler`
`Zend_XmlRpc`
`soap` | Hard | `Zend_Service_StrikeIron`
`sockets` | --- | ---
`SPL` | Hard | Virtually all components
`SQLite` | Hard | Zend_Cache_Backend_Sqlite
`standard` | Hard | Virtually all components
`sybase` | --- | ---
sysvmsg | --- | ---
sysvsem | --- | --
sysvshm | --- | ---
`tidy` | --- | ---
`tokenizer` | --- | ---
`wddx` | --- | ---
`xml` | Hard | `Zend_Translate_Adapter_Qt`
`Zend_Translate_Adapter_Tmx`
`Zend_Translate_Adapter_Xliff`
`XMLReader` | --- | ---
`xmlrpc` | --- | ---
`XMLWriter` | --- | ---
`xsl` | --- | ---
`zip` | --- | ---
`zlib` | Hard | `Zend_Pdf`
`Memcache`

## Komponen Zend Framework

Berikut adalah daftar komponen Zend Framework dan extension PHP yang dibutuhkan. Daftar ini dapat memandu anda untuk mengetahui extension PHP apa yang diperlukan untuk aplikasi yang anda buat. Tidak semua extension digunakan Zend Framework untuk tiap aplikasi.

Tipe kebergantungan "hard" mengindikasikan komponen atau class bersangkutan tidak dapat berfungsi dengan benar jika extension tersebut tidak tersedia, sementara tipe kebergantungan "soft" berarti komponen dapat menggunakan extension tersebut jika tersedia namun dapat tetap jalan kalaupun tidak tersedia. Kebanyakan komponen akan secara otomatis menggunakan extension tertentu jika memang tersedia untuk mengoptimalkan performansi namun tetap jalan seperti biasa kalaupun tidak.

### Komponen Zend Framework dan extension PHP yang digunakan

Komponen Zend Framework | Tipe Kebergantungan | Subclass | Extension PHP
--- | --- | --- | ---
Seluruh Komponen | Hard | --- | `pcre`
`SPL`
`standard`
`Zend_Acl` | --- | --- | ---
`Zend_Auth` | Hard | `Zend_Auth_Adapter_Http` | `ctype`
`hash`
`Zend_Cache` | Hard | `Zend_Cache_Backend_Apc` | `apc`
`Zend_Cache_Backend_Memcached` | `memcache`
`Zend_Cache_Backend_Sqlite` | `sqlite`
`Zend_Cache_Backend_Zlib` | `zlib`
`Zend_Config` | Hard | `Zend_Config_Xml` | `libxml`
`SimpleXML`
`Zend_Console_Getopt` | --- | --- | ---
`Zend_Controller` | Hard | --- | `Reflection`
`Zend_Controller_Action_Helper_Redirector` | `session`
`Zend_Currency` | Hard | --- | `iconv`
`Zend_Date` | --- | --- | ---
`Zend_Db` | Hard | All PDO Adapters | `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` | Hard | --- | `dom`
`libxml`
`mbstring`
`SimpleXML`
`Zend_Filter` | Hard | --- | `Reflection`
`Zend_Form` | --- | --- | ---
`Zend_Gdata` | Hard | `Zend_Gdata_App` | `ctype`
--- | `dom`
`libxml`
`Zend_Http` | Hard | `Zend_Http_Client_Adapter_Curl` | `curl`
`Zend_Http_Client` | `ctype`
`mime_magic`
`Zend_Json` | Soft | --- | `json`
Hard | --- | `Reflection`
`Zend_Layout` | --- | --- | ---
`Zend_Ldap` | --- | --- | ---
`Zend_Loader` | --- | --- | ---
`Zend_Locale` | Soft | `Zend_Locale_Math` | `bcmath`
Hard | `Zend_Locale_Format` | `iconv`
`Zend_Log` | Hard | `Zend_Log_Formatter_Xml` | `dom`
`libxml`
--- | `Reflection`
`Zend_Mail` | Soft | --- | `posix`
`Zend_Measure` | --- | --- | ---
`Zend_Memory` | --- | --- | ---
`Zend_Mime` | Hard | `Zend_Mime_Decode` | `iconv`
`Zend_OpenId` | --- | --- | ---
`Zend_Pdf` | Hard | --- | `ctype`
`gd`
`iconv`
`zlib`
`Zend_Registry` | --- | --- | ---
`Zend_Request` | --- | --- | ---
`Zend_Rest` | Hard | `Zend_Rest_Client` | `ctype`
`libxml`
`SimpleXML`
`Zend_Rest_Server` | `ctype`
`dom`
`libxml`
`Reflection`
`Zend_Search_Lucene` | Soft | --- | `bitset`
Hard | `ctype`
`dom`
`iconv`
`libxml`
`Zend_Server_Reflection` | Hard | --- | `Reflection`
`Zend_Service_Akismet` | --- | --- | ---
`Zend_Service_Amazon` | Hard | --- | `dom`
`libxml`
`Zend_Service_Audioscrobbler` | Hard | --- | `iconv`
`libxml`
`SimpleXML`
`Zend_Service_Delicious` | Hard | --- | `dom`
`libxml`
`Zend_Service_Flickr` | Hard | --- | `dom`
`iconv`
`libxml`
`Zend_Service_SlideShare` | --- | --- | ---
`Zend_Service_StrikeIron` | Hard | --- | `soap`
`Zend_Service_Yahoo` | Hard | --- | `dom`
`libxml`
`Zend_Session` | Hard | --- | `session`
`Zend_TimeSync` | --- | --- | ---
`Zend_Translate` | Hard | `Zend_Translate_Adapter_Qt` | `xml`
`Zend_Translate_Adapter_Tmx` | `xml`
`Zend_Translate_Adapter_Xliff` | `xml`
`Zend_Uri` | Hard | --- | `ctype`
`Zend_Validate` | Hard | --- | `ctype`
`Reflection`
`Zend_Version` | --- | --- | ---
`Zend_Validate` | Hard | --- | `Reflection`
`Zend_XmlRpc` | Hard | --- | `dom`
`libxml`
`SimpleXML`
`Zend_XmlRpc_Client` | `iconv`
`Zend_XmlRpc_Server` | `Reflection`

## Kebergantungan Zend Framework

Berikut adalah daftar komponen Zend Framework dan kebergantungannya terhadap komponen lain. Daftar ini dapat membantu anda manakala anda hanya ingin menggunakan sebagian komponen ZF saja pada aplikasi yang anda buat, tidak seluruhnya.

Tipe kebergantungan "hard" mengindikasikan komponen atau class bersangkutan tidak dapat berfungsi dengan benar jika komponen yang diperlukan tidak tersedia, sementara tipe kebergantungan "soft" berarti komponen tersebut dapat menggunakan komponen yang dibutuhkan dalam situasi tertentu atau adapter spesial.

Biarpun dimungkinkan sebuah komponen digunakan secara terpisah dari Zend Framewok yang lain, namun perlu diingat ini bisa menimbulkan masalah manakala beberapa file ada yang hilang atau komponen tersebut digunakan secara dinamis.

### Komponen Zend Framework dan Kebergantungannya Dengan Komponen Lain

Komponen Zend Framework | Tipe Kebergantungan | Komponen Zend Framework Yang Diperlukan
--- | --- | ---
`Zend_Acl` | Hard | `Zend_Exception`
`Zend_Auth` | Hard | `Zend_Exception`
Soft | `Zend_Db`
`Zend_Ldap`
`Zend_OpenId`
`Zend_Session`
`Zend_Cache` | Hard | `Zend_Exception`
`Zend_Loader`
`Zend_Config` | Hard | `Zend_Exception`
`Zend_Console_Getopt` | Hard | `Zend_Exception`
`Zend_Json`
`Zend_Controller` | Hard | `Zend_Config`
`Zend_Exception`
`Zend_Filter`
`Zend_Json`
`Zend_Layout`
`Zend_Loader`
`Zend_Registry`
`Zend_Session`
`Zend_Uri`
`Zend_View`
`Zend_Currency` | Hard | `Zend_Exception`
`Zend_Locale`
`Zend_Date` | Hard | `Zend_Exception`
`Zend_Locale`
`Zend_Db` | Hard | `Zend_Config`
`Zend_Exception`
`Zend_Loader`
`Zend_Registry`
`Zend_Debug` | --- | ---
`Zend_Exception` | --- | ---
`Zend_Feed` | Hard | `Zend_Exception`
`Zend_Http`
`Zend_Loader`
`Zend_Uri`
`Zend_Filter` | Hard | `Zend_Exception`
`Zend_Loader`
`Zend_Locale`
`Zend_Validate`
`Zend_Form` | Hard | `Zend_Controller`
`Zend_Exception`
`Zend_Filter`
`Zend_Json`
`Zend_Loader`
`Zend_Registry`
`Zend_Session`
`Zend_Validate`
`Zend_Gdata` | Hard | `Zend_Exception`
`Zend_Http`
`Zend_Loader`
`Zend_Mime`
`Zend_Version`
`Zend_Http` | Hard | `Zend_Exception`
`Zend_Loader`
`Zend_Uri`
`Zend_Json` | Hard | `Zend_Exception`
`Zend_Layout` | Hard | `Zend_Controller`
`Zend_Exception`
`Zend_Filter`
`Zend_Loader`
`Zend_View`
`Zend_Ldap` | Hard | `Zend_Exception`
`Zend_Loader` | Hard | `Zend_Exception`
`Zend_Locale` | Hard | `Zend_Exception`
`Zend_Log` | Hard | `Zend_Exception`
`Zend_Mail` | Hard | `Zend_Exception`
`Zend_Loader`
`Zend_Mime`
`Zend_Validate`
`Zend_Measure` | Hard | `Zend_Exception`
`Zend_Locale`
`Zend_Memory` | Hard | `Zend_Cache`
`Zend_Exception`
`Zend_Mime` | Hard | `Zend_Exception`
`Zend_OpenId` | Hard | `Zend_Controller`
`Zend_Exception`
`Zend_Http`
`Zend_Session`
`Zend_Pdf` | Hard | `Zend_Exception`
`Zend_Log`
`Zend_Memory`
`Zend_Registry` | Hard | `Zend_Exception`
`Zend_Loader`
`Zend_Request` | --- | ---
`Zend_Rest` | Hard | `Zend_Exception`
`Zend_Server`
`Zend_Service`
`Zend_Uri`
`Zend_Search_Lucene` | Hard | `Zend_Exception`
`Zend_Server_Reflection` | Hard | `Zend_Exception`
`Zend_Service_Akismet` | Hard | `Zend_Exception`
`Zend_Http`
`Zend_Uri`
`Zend_Version`
`Zend_Service_Amazon` | Hard | `Zend_Exception`
`Zend_Http`
`Zend_Rest`
`Zend_Service_Audioscrobbler` | Hard | `Zend_Exception`
`Zend_Http`
`Zend_Service_Delicious` | Hard | `Zend_Date`
`Zend_Exception`
`Zend_Http`
`Zend_Json`
`Zend_Rest`
`Zend_Service_Flickr` | Hard | `Zend_Exception`
`Zend_Http`
`Zend_Rest`
`Zend_Validate`
`Zend_Service_SlideShare` | Hard | `Zend_Cache`
`Zend_Exception`
`Zend_Http`
`Zend_Service_StrikeIron` | Hard | `Zend_Exception`
`Zend_Http`
`Zend_Loader`
`Zend_Service_Yahoo` | Hard | `Zend_Exception`
`Zend_Http`
`Zend_Rest`
`Zend_Validate`
`Zend_Session` | Hard | `Zend_Exception`
`Zend_Loader`
`Zend_TimeSync` | Hard | `Zend_Date`
`Zend_Exception`
`Zend_Loader`
`Zend_Translate` | Hard | `Zend_Exception`
`Zend_Loader`
`Zend_Locale`
`Zend_Uri` | Hard | `Zend_Exception`
`Zend_Loader`
`Zend_Validate`
`Zend_Validate` | Soft | `Zend_Date`
`Zend_Filter`
`Zend_Locale`
`Zend_Registry`
Hard | `Zend_Exception`
`Zend_Loader`
`Zend_Version` | --- | ---
`Zend_View` | Hard | `Zend_Controller`
`Zend_Exception`
`Zend_Json`
`Zend_Layout`
`Zend_Loader`
`Zend_Locale`
`Zend_Registry`
`Zend_XmlRpc` | Hard | `Zend_Exception`
`Zend_Registry`
`Zend_Server`