Programski jezik PHP stekao je veliku popularnost u zadnjih 10 godina te je postao jednim od glavnih tehnologija za razvoj web aplikacija. Velika prihvaćenost i dominacija jezika PHP vidljiva je i kroz brojna razvojna okruženja kako što je Zend Framework.

Razvojna okruženja općenito služe za potporu izgradnje i testiranja dinamičkih web stranica, web aplikacija i usluga. Također, pomažu u razrješavanju učestalih problema koji se pojavljuju prilikom projektiranja web aplikacija. Često okruženja nude gotov skup biblioteka i alata za pristup bazi podataka, izradu i upravljanje predlošcima, upravljanje korisničkom sjednicom te olakšavaju ponovnu uporabu programskog koda. Zend okruženje je stvoreno s ciljem jednostavnijeg stvaranja i održavanja velikih web aplikacija baziranih na jeziku PHP. Sadrži bogat skup gotovih komponenata koje pokrivaju velik dio učestalih potreba prilikom izrade web aplikacija. Iako ih je moguće koristiti odvojeno, komponente razvojnog okruženja Zend čine snažnu i proširivu biblioteku gotovih rješenja.

Cilj Zenda je pružiti programerima robusnu okolinu za razvoj vlastitih web aplikacija i usluga. Nudi MVC implementaciju visoke učinkovitosti, apstraktni sloj nad bazom podataka koji olakšava upravljanje podatcima i niz komponenata koje implementiraju prikaz HTML stranica te validaciju i filtriranje korisničkog unosa.

 

 

Zend Framework je razvojno okruženje otvorenog koda za izradu web aplikacija i servisa zasnovan na programskom jeziku PHP 5. Zend je u potpunosti implementiran korištenjem objektno orijentirane paradigme. Komponente ovog web razvojnog okruženja su oblikovane tako da imaju što manji broj zavisnosti prema drugim komponentama. Ovim se postiže suglasnost sa jednim od osnovnih koncepata objektno orijentiranog programiranja, smanjivanje sprege (engl. coupling). Slaba spregnutost komponenata omogućava programerima korištenje individualnih komponenata po potrebi. Zend zajednica ovu pogodnost naziva oblikovanje po potrebi (engl. use-at-will design). Iako ih je moguće koristiti odvojeno, komponente Zend Framework razvojnog okruženja čine snažnu i proširivu biblioteku gotovih rješenja. Cilj Zend-a je pružiti programerima robusnu okolinu za razvoj vlastitih web aplikacija i usluga.

U programskom inženjerstvu oblikovni obrasci predstavljaju opće rješenje za višestruku uporabu čestih problema prilikom dizajna programske potpore. Oblikovni obrazac nije gotov dio programskog koda već predložak koji opisuje kako riješiti problem. Obrazac MVC (engl. model-view-controller) je programska arhitektura za odvajanje programskog koda koji reprezentira problem od koda koji prezentira problem korisniku. Točnije, osnovno svojstvo MVC obrasca je odvajanje modela domene od prezentacijskog sloja ili grafičkog sučelja. Time se omogućuje jednostavno mijenjanje i stvaranje novih grafičkih maski bez promjene podložnog modela.

Zend je jedno od najpopularnijih PHP razvojnih okruženja, a koristi se za izradu jednostavnih i složenih aplikacija. Samim time potrebno je osigurati ispravan, posebice siguran, rad svih Zend komponenata. Razlog tome je što ranjivost samo jedne komponente može kompromitirati velik broj web aplikacija (odnosno svih aplikacija koje tu komponentu koriste). Drugi, puno češći izvor ranjivosti web aplikacija su propusti koje programeri samostalno uvode u svoje aplikacije nepažnjom ili neznanjem. Svaka komponenta Zend okruženja prolazi iscrpan proces testiranja. Ipak, zbog moguće složenosti komponente ili procesa testiranja neke propuste jednostavno nije moguće uočiti na vrijeme. Posljedice takvih propusta potencijalno mogu biti velike. U većini slučajeva postoji potreba za samostalnom implementacijom funkcionalnost. Kako bi se smanjio broj ranjivosti u vlastitim implementacijama Zend nudi velik broj gotovih komponenata koje enkapsuliraju česte potrebe kao što su filtriranje sadržaja, upravljanje sjednicom, sprječavanje injekcija i sl.

Iako vrlo popularan, zbog velikog broja gotovih komponenti koje je potrebno konfigurirati na odgovarajuć način, te zbog složenosti korištenja oblikovnog obrasca MVC, Zend nije namijenjen početnicima. Za manje projekte (i za početnike) pogodna su druga okruženja poput CakePHP i Codeigniter koji imaju manje naglašenu ovisnost o MVC obrascu te su jednostavniji za uporabu. Dolaskom programskog jezika PHP, Java programeri postepeno napuštaju tehnologije poput JSP i prelaze upravo na PHP. Autor Zend okruženja (Zeev Suraski) smatra da ća kroz narednih nekoliko godina trend razvoja aplikacija korištenjem jezika PHP naglo narasti, a primarni razlog će biti korištenje razvojnih okruženja poput Zend.