“Zend Framework in Action” review

Zend Framework in Action Īsti nezinu, kā tālāku tekstu nosaukt. Apskats, recenzija vai vēl kā citādi. Lai nu kā, esmu izlasījis grāmatu “Zend Framework in Action” (ZFiA) un vēlos padalīties ar informāciju par to, kas kurā grāmatas nodaļā rakstīts, kā arī kas manuprāt no rakstītā ir īpaši noderīgs un kas nav pateikts. Uzreiz jāpiebilst, ka grāmatas versija, kuru lasīju bija “Nepabeigts melnraksts” stadijā. Taču neskatoties uz to, ka līdz grāmatas izdošanas brīdim tajā var notikt nelieli papildinājumi, pamatlietas nemainīsies. Brīdinu – apraksts sanācis nedaudz pārāk garš.

Kā jau liecina nosaukums, ZFiA ir grāmata par Zend Framework. Šo grāmatu sarakstījuši 3 autori: Rob Allen, Nick Lo un Steven Brown. Visi savas jomas lieli speciālisti. Grāmata ir sadalīta 3 daļās un tai ir divi pielikumi. 3 lielās daļas satur kopā 16 mazākas sadaļas, kuras aptver visus būtiskākos Zend Framework laukus. Šobrīd grāmatai ir 279lpp, bet tā kā izmantotais fonts ir visai smalks, tad iekļautās informācijas apjoms ir liels.

Pirmā lielā daļa saucas “The Essentials”. Šai daļai ir divas lielas sadaļas.

1 – “Introducing Zend Framework”. Vienkāršā valodā apstāstīts par to, kā ir attīstījusies Web lapu programmēšana ar PHP. Parādīts kā atšķiras Web lapas darbības loģika standarta gadījumā un Zend Framework (vai citu MVC tipa ietvaru) gadījumā. Uzskaitīti iemesli kāpēc būtu jāizmanto Zend Framework, kā arī no kādām loģiskajām daļām tas sastāv (ne tikai uzskaitījums, bet arī īss funkcionalitātes skaidrojums). Lasot likās, ka būs baigā Zend Framework reklāma, bet šo iespaidu likvidēja tas, ka nav aizmirsts arī uzskaitīt citus ietvarus un veikt nelielu viņu salīdzinājumu.

2 – “Hello Zend Framework”. Izskaidrots kā īsti darbojas MVC tipa sistēmas (MVC design pattern). Ļoti noderīga sadaļa un neizprotot viņu līdz pašiem pamatiem, nav ieteicams lasīt tālākās sadaļas. Turpinājumā ir apstāstīts kā sagatavot Zend Framework darbam. Tātad paši, paši pamati. Ja jau esat kaut ko ar Zend Framework kaut nedaudz taisījuši, tad īpaši jaunumi šeit nebūs. Kaut gan apraksts par “Helper” funkcijām varētu būt visai noderīgs, jo parasti dažādās pamācībās tiek aizmirsta šīs lietas nozīmība.

Neskatoties uz to, ka iepazīšanās nodaļas ir uzrakstītas tā, ka sistēmu var izprast pat iesācēji, arī tiem, kam jau ir kaut kāda pieredze ar Zend Framework, šīs nodaļas būtu jāizlasa. Jo ja arī netiks uzzinātas kādas kardināli jaunas lietas, tad varbūt tiks aizlāpīti kādi mazi caurumi zināšanās, kas vēlāk var izrādīties izšķiroši.

Otrā lielā daļa saucas “A Core Application”. Kā jau liecina nosaukums, šajā daļā aprakstītas lietas, bez kuru pārzināšanas neiztikt jebkuras daudz maz sarežģītas Web lapas izveidē ar Zend Framework.

3 – “Building a web site with the Zend Framework”. Šīs nodaļas sākumā tiek aprakstītas prasības tam, kādai būtu jābūt Web lapai “Places to take the kids”. Tā ir Web lapa, kura pamazām tiek veidota visas grāmatas garumā. Šāda Web lapas veidošana nepieciešama, lai tālākajos aprakstos dotajiem kodiem būtu kāda savstarpējas jēgas sasaiste. Bez prasību aprakstīšanas vēl tiek izskaidrots kā sagatavot Zend Framework tālākai izstrādei un doti piemēri kā izmantot dažas no komponentēm: Zend_Config, kas paredzēts manipulācijām ar konfigurācijas datiem, Zend_Registry, kas darbojas kā globāla datu krātuve. Dots ieskats arī darbam ar datu bāzi, taču sīkāks izklāsts būs tālākās nodaļās. Dots ieskats arī kā testēt kodus ar PHPUnit testu palīdzību. Testēšanas apraksts, ja nav nekādu priekšzināšanu, varētu likties mazliet neizprotams.

4 – “Managing the View”. Detalizēts izklāsts par Zend_View un Zend_Layout komponentēm. Šīs komponentes atbild par lietotājiem redzamo Web lapas daļu. Citiem vārdiem sakot – tā ir kā templeitu (šablonu) sistēma. Būtiskākās lietas, kurām jāpievērš uzmanību – Helper, Plugin funkcijas. Ļoti kvalitatīvs un saprotams attiecīgo lietu izklāsts.

5 – “Ajax”. Šajā nodaļā ir paskaidrots kas īsti ir Ajax, kā arī dots piemērs tam, kā Ajax ir implementējams Zend Framework kopējā konceptā. Man nepatika tas, ka pie bibliotēkām, kuras atvieglo darbu JavaScript pusē netika nosaukts jQuery. Tiem, kam ir priekšzināšanas par Ajax, no šīs nodaļas noderīga būs tikai maza daļa (tā kur pastāstīts kas jāmaina Zend Framework pusē, lai apstrādātu Ajax pieprasījumus).

6 – “Managing the Database”. Kā jau var sagaidīt, šī nodaļa ir veltīta, lai aprakstītu to, kā Zend Framework ir realizēts darbs ar datu bāzēm. Dots viegli pārskatāms salīdzinājums Zend_Db_Adapter un Zend_Db_Table komponentēm. Tas ir ļoti noderīgi, lai saprastu kuru komponenti kurā gadījumā labāk izmantot. Ļoti noderīgi ir piemēri tam, kā strādāt ar saistītajām tabulām (atlasīt datus no vairākām tabulām vienlaicīgi). Parasti dažādās pamācībās tādas sarežģītības piemēri vispār netiek doti vai doti ļoti virspusēji. Lai gan dotie piemēri parāda, ka Zend Framework komponentes darbam ar datu bāzēm ir ļoti elastīgas, nerodas īsti pārliecība, ka ar attiecīgajiem paņēmieniem var izlīdzēties visos gadījumos. Bet tas iespējams ir tikai pieredzes jautājums. Nodaļā ievērojama daļa veltīta arī tam, lai turpinātu iepazīstināšanu ar PHPUnit testēšanu.

7 – “User Authentication and Access Control”. Apstāstīts kā darbojas Zend_Auth un Zend_Acl, kā arī to kādus dažādus autorizēšanas veidus Zend Framework piedāvā. Ļoti noderīgi ir piemēri tam, kā implementēt attiecīgās lietas reālā Web lapā. Vienīgi sākotnēji varētu rasties mulsums par to, kā realizēt attiecīgās lietas sarežģītākos gadījumos nekā dotajos piemēros. Te gan gribētos vēl piebilst, ka ja gadījumā jūs mēģināsiet grāmatā dotos skriptus un sistēma nestrādās, pamēģiniet nomainīt noklusēto sesijas namespace, kurā tiek glabāti Zend_Auth dati.

8 – “Forms”. Nodaļa par ideoloģiju. Rakstīt formas klasiskā veidā vai definēt nepieciešamās lietas un lai forma izveidojas pati. Autori ļoti labi parādījuši Zend_Form komponentes funkcionalitāti. Lai gan lieta ir visai sarežģīta, toties izlasot nodaļu kļūst skaidrs, ka ar laiku šāda pieeja varētu atmaksāties. Parādīts kā nodefinēt dažādus filtrēšanas un validācijas nosacījumus un kā mainīt formu izskatu. Tā kā Zend_Form tika iekļauts tikai Zend Framework 1.5 versijā, tad šo nodaļu būtu ieteicams izlasīt arī visiem tiem, kas programmē ar Zend Framework 1.0 un līdz šim nav izmantojuši Zend_Form.

9 – “Searching”. Šajā nodaļā apstāstīts ne tikai tas, kādus rīkus Zend Framework piedāvā, lai nodrošinātu kvalitatīvu meklēšanu, bet apstāstīta meklēšanas sistēmu ideoloģija kā tāda. Lai gan aprakstītās lietas varētu šķist visai sarežģītas, tas ir tā vērts, lai tomēr izburtos visam cauri.

10 – “Email”. Šī nodaļa ir veltīta, lai iepazīstinātu lasītāju ar to, kā Zend Framework sadzīvo ar epastiem. Dots arī ieskats tajā, kā vispār epasta sistēmas strādā. Parādīts kā strādāt ar IMAP un POP3. Ja līdz šim viss ko zinājāt par epastu sūtīšanu ar PHP palīdzību bija mail() funkcija, tad šī nodaļa pavērs pavisam jaunus apvāršņus darbam ar epastiem. Piemēram, epastu nosūtīšana ar pielikumiem jums vairs neliksies nekas sarežģīts.

11 – “Deployment”. Apstāstītas svarīgākie soļi Web lapas izstrādes procesā. Piemēram, servera uzstādīšana, versiju kontrole, funkcionālā testēšana. Vienīgi tā kā grāmata ir veltīta Zend Framework nevis tam, kā konfigurēt serveri, kā veikt testēšanas un versiju kontroles, tad attiecīgās lietas ir apstāstītas visai virspusēji. Jā – tās dod ieskatu tajā, kas zem šiem jēdzieniem slēpjas un kā vienu vai otru lietu izmantot. Taču produktīvai attiecīgo lietu izmantošanai būtu nepieciešams izlasīt vēl citas grāmatas.

Trešā lielā daļa “More Power to Yout Application”. Šajā nodaļā aprakstītas lietas, kuras vairāk uztveramas kā ekstras. Tas tāpēc, ka tās ir nepieciešamas jau lielāka sarežģītības Web lapu izstrādē.

12 – “Talking with Other Applications”. Nodaļa par to, kā un kāpēc dažādām sistēmām jāmāk savstarpēji sarunāties. Ļoti labi ietvaru spēks nodemonstrēts ar Zend_Feed komponentes iespēju parādīšanu. Grūti iedomāties, kā vēl vairāk var vienkāršot darbu ar RSS plūsmām. Visai detalizēti aprakstīts darbs ar XML-RPC, REST. Šīs lietas gan varētu likties visai sarežģītas, ja par attiecīgo tēmu nav nekādu priekšzināšanu.

13 – “Mashups with public web servies”. Zend Framework ir vairākas komponentes kuras paredzētas darbam ar dažādiem trešās puses servisiem. Piemēram, ar Google, Akismet, Delicious, Flickr un daudziem citiem. Šī nodaļa ir veltīta konkrēto servisu uzskaitījumam un doti daži izmantošanas piemēri. Lai gan nav aprakstīts kā darboties ar pilnībā visiem servisiem, taču dotie piemēri parāda to, cik elementāri mijiedarboties ar Flickr, Youtube un citiem servisiem. Nav jāmēģina izprast attiecīgo servisu API. Viss kas jādara, lai servisus izmantotu – jāizsauc atbilstošās Zend_Framework komponentes un jāpadod tām nepieciešamie parametri.

14 – “Caching”. Ļoti svarīga nodaļa tiem, kuri programmē Web lapas, kurām paredzēts samērā liels apmeklējums. Nodaļā apstāstīta gan kešošanas sistēmu ideoloģija, gan parādīts kā reālā Web lapā izmantot Zend_Cache komponenti.

15 – “Internationalization & Localization”. Izlasot šo nodaļu vairs nespēju saprast, kā es līdz šim bez šādas sistēmas esmu varējis izdzīvot. Nodaļā ļoti uzskatāmi parādīts kāpēc nepieciešams izmantot dažādas lokāles un tas, cik elementāri ir izveidot daudzu valodu atbalstu Web lapai ar Zend Framework palīdzību. Ļoti noderīgs ir apraksts par to, kā Zend_Translate integrējas ar Zend_View.

16 – “Zend_Pdf”. Šajā nodaļā aprakstīts darbs ar PDF. Ne tikai tas, kā PDF dokumentus izveidot, bet arī kā iespējams izmantot jau iepriekš izveidotus PDF failus. Lai gan ir uzskaitītas vairākas metodes darbam ar PDF, trūkst kāds lielāks piemērs. Būtu bijis noderīgi, ja autori būtu pievienojuši kodu gabalu tam, kā no Web lapas “Places to take the kids” izveidot kādu PDF dokumentu ar konkrētu formatējumu. Nodaļa, pretēji pārējām, likās nedaudz nepabeigta.

Pielikumi

A – “Stuff you (should) already know”. Jocīgs nosaukums. Pirmajā mirklī man likās, ka šajā nodaļā būs kopsavilkums par to, kas grāmatā bija sarakstīts. Kļūdījos. Šajā pielikumā aprakstītas lietas, kuras vajadzētu zināt pirms vispār ķerties pie grāmatas lasīšanas. Tādas, kā OOP principi, SPL, Software design patterns. Lai gan pēdējo var arī sākotnēji nezināt, jo grāmatas laikā Zend Framework izmantotie patterni tiek vēlreiz apskaidroti, OOP principus vajadzētu pārzināt visai augstā līmenī. Pretējā gadījumā redzot tādas lietas, kā abstraktas klases, maģiskās metodes, interfeisus utt. varētu rasties liela nesaprašana par to, kā tas viss strādā un kāpēc tiek izmantots.

B – “Tips and Tricks”. Pastāstīts par to, ka ar Zend Framework veidotās Web lapas var veidot arī citādāk kā grāmatā aprakstīts (piemēram, moduļos). Ļoti noderīga apakšsadaļas ir Zend_Log un Zend_Debug, kā arī Zend_Db_Profiler iespēju izklāsti.

Grāmatas kvalitāte vērtējama kā ļoti augsta. Pēdējā laika interesantākā grāmata kuru esmu lasījis. Ne tikai tāpēc, ka tajā aprakstīts kā strādāt ar Zend Framework, bet tas, ka lasot grāmatu var iegūt arī sīkāku priekšstatu par globālākām lietām (piemēram, kā jau iepriekš minēju – par to kā strādā meklēšanas sistēmas, PHPUnit tests, design patterns utt.).

Viena lieta, kas tomēr grāmatā trūkst ir padomi par to, kā labāk kodu rakstīt un kā nerakstīt, lai nesabojātu ātrdarbību. Jā – grāmatā dažās vietās ir dots viens otrs padoms, bet manuprāt vajadzētu nedaudz vairāk pievērsties šai lietai. Tieši ātrdarbības iespējamās problēmas ir tas, kāpēc daudzi baidās no Zend Framework, līdz ar to šim jautājumam vajadzētu veltīt īpašu nodaļu. Kas to lai zina. Varbūt grāmatas fināla versijā tāda arī tiks iekļauta.

Nobeigumā jāsaka, ka ja gadījumā tu esi nolēmis apgūt Zend Framework, tad šī grāmata ir līdzeklis numur 1, kuram jābūt tavā krājumā. Var mēģināt mācīties no dažādiem rakstiem, taču tad kopējais iespaids par visu sistēmu būs sadrumstalots.

Dodu 4.5 zvaigznes no 5.

1 comment

  1. :o
    Super! :) tieši tas ko meklēju.. tikai nebiju gaidijis to atrast latviešu valodā :p
    Paldies!

Atbildēt

Jūsu e-pasta adrese netiks publicēta.

This site uses Akismet to reduce spam. Learn how your comment data is processed.