Sākums / Programmēšana / Yii Framework – jauns, daudzsološs MVC PHP ietvars

7. septembris, 2010 | RSS

Yii Framework – jauns, daudzsološs MVC PHP ietvars

10. janvāris, 2010 | Nav komentāru | Programmēšana

Pirms trim gadiem, kad sāku interesēties par web aplikāciju izstrādi ar PHP ietvariem, izvēlējos apgūt Zend Framework. Neskatoties uz tā spēcīgajām īpašībām, tomēr nācās secināt, ka, lai pielāgotu ietvaru izstrādājamās aplikācijās vajadzībām, nākas pavadīt visai padaudz laika lasot oficiālo Zend Framework dokumentāciju, kā arī regulāri meklēt risinājumus citos resursos. Ar Zend Framework izveidoju dažus portālus, interneta veikala sistēmu, kā arī vairākas mazākus web projektus, tomēr nepameta sajūta, ka pat vienkāršu lietu realizācijai ir jāpatērē pārāk daudz laika lasot dokumentāciju, kas ne vienmēr ir skaidri saprotama, kā arī citus resursus. Vēl pirms gada radās izdevība vienam projektam izmēģināt Codeigniter, veidojot sistēmu, kur bija jārealizē 5 atsevišķu domēnu darbība caur vienu kodu. Nevarētu teikt, ka arī Codeigniter būtiski paātrinātu aplikācijas izstrādi un izstrāde ar to būtu ļoti ērta un intuitīva. Izveidoju arī savu minimālisma stilā ieturēto MVC PHP ietvaru, kas galvenokārt nodrošina koda dalīšanu slāņos pēc Model View Controller arhitektūras principiem, bet lielāko daļu funkcionalitātes atstājot citu veidotām PHP klašu bibliotēkām. Visos trīs gadījumos nepameta sajūta, ka ir jāraksta pārāk daudz koda standartlietu realizācijai, piemēram CRUD (Create, Retrieve, Update, and Delete) funkcionalitātes nodrošināšanai, kā arī Zend Framework un Codeigniter, vadoties pēc dažādiem internetā atrodamajiem ātrdarbības testiem, ir visai resursprasīgi. Pirms neilga laika, meklējot ietvaru, kas gan paātrinātu aplikācijas izstrādes laiku, gan būtu ievērojami pārāks atrdarbības ziņā par Zend Framework, Codeigniter u.c. populārajiem PHP ietvariem, uzgāju pāris alternatīvas. Viena no tām bija DooPHP ietvars, par kuru jau rakstīju iepriekš. Neskatoties, uz tā iespaidīgajiem ātrdarbības testiem, šķiet, ka šim jaunajam ietvaram vēl ir nepieciešams laiks, lai tas izaugtu par nopietnu palīgrīku, kas būtiski atvieglotu aplikāciju izstrādi. Otrs PHP ietvars, kas piesaistīja uzmanību, bija Yii Framework.

Yii Framework ir jauns PHP ietvars, kuru izveidojis Prado framework izstrādes komandas bijušais dalībnieks Qiang Xue. Pirmā alfa versija tika izdota 2008. gada oktobrī un ieguvu lielu web izstrādātāju kopienas ieinteresētību, jo Yii ietvars pārspēja konkurējošos ietvarus ātrdarbībā, neskatoties uz to, ka piedāvāja līdzvērtīgas iespējas. Yii ietvarā JavaScript atbalstam tiek izmantota JQuery bibliotēka, tas ir ērtā veidā paplašināms ar 3rd party klasēm, kā arī ar Yii Framework palīdzību ir iespēja ģenerēt aplikācijas kodu – ir nepieciešams tikai izveidot datu bāzi un no komandrindas izsaukt koda ģenerēšanas funkcijas, kas izveido būtisku daļu no aplikācijas funkcionalitātes. Yii Framework ir ietekmējies no vairākiem citiem populāriem ietvariem:

  • Prado - šis ietvars ir galvenais ideju avots Yii Framework realizētajai arhitektūrai. Yii no Prado ir paņēmis komponentu bāzēto (component-based) un notikumu vadīto (event-driven) programmēšanas paradigmu, datu bāzes abstrakcijas slāni, modulāro aplikācijas arhitektūru, internacionalizāciju, lokalizāciju un daudzas citas īpašības.
  • Ruby on Rails – Yii ir mantojis aplikācijas konfigurācijas paražas, kā arī active record dizaina šablonu.
  • Symfony – no šī ietvara Yii ir īstenots filtru dizains un spraudņu (plug-in) arhitektūra
  • Joomla – modulārais dizains un ziņojumu tulkošanas shēma

Kā jau minēju, Yii piedāvā visai ievērojamu ātrdarbības pārākumu pār konkurējošiem PHP MVC ietvariem.  Tas ir panākts tādā veidā, ka Yii Framework arhitektūrā klašu faili netiek iekļauti līdz brīdim, kamēr klase tiek lietota pirmo reizi, kā arī objekti netiek veidoti līdz brīdim, kamēr nenotiek vēršanās pie tiem. Citos ietvaros būtisks ātrdarbības zudums rodas dēļ tā, ka katrā pieprasījumā tiek iekļauta arī tā funkcionalitātē, kas nav vienmēr nepieciešama, piemēram, datu bāzes konekcijas, sesiju atbalsts utt. Kā redzams zemāk esošaja attēlā, Yii ietvara ātrdarbības būtisks uzlabojums ir panākams, izmantojot APC paplašinājumu.

performance-20090131

Vēl no Yii Framework iespējām ir jāpiemin dizaina tēmu atbalsts, kas ļauj nomainīt aplikācijas izskatu vienā mirklī. Tāpat ir realizēta slāņota kešošanas shēma (layered caching scheme), kas nodrošina datu, lapu, fragmentu un dinamiska satura kešošanu. Kešinga uzglabāšanas vide var tikt viegli mainīta bez aplikācijas koda izmaiņām. Yii Framework izstrādātāji ir padomājuši arī par aplikāciju drošību, ieviešot dažādus aizsardzības mehānismus, piemēram, aizsardzību pret cross site scripting (XSS), cross-site request forgery (CSRF) u.c. izplatītākajām web aplikāciju ievainojamībām. Vēl ir jāpiemin tas, ka Yii ir atbalsts lietotāju veidotiem Yii ietvara paplašinājumiem, kas, līdzīgā veidā kā WordPress spraudņu (plugin) mehānisms, padara praktiski neierobežotu ietvara iespēju klāstu.

Vairāk par Yii Framework iespējām var atrast šeit.

Biežāk dzirdētais arguments ietvaru neizmantošanai ir tas, ka tie patērē liekus resursus, bet no otras puses ir jāpadomā tas, cik daudz no mūsu veidotajām aplikācijām ir tādas, kurām sagaidāmais apmeklējums ir tik milzīgs, ka ietvara darbībai esošie resursu patēriņš radīs nepieciešamību veikt tādus ieguldījumus serveru resursos, kurus nevarēsim atļauties. Manuprāt web aplikāciju izstrādātājiem lielākoties sanāk veidot aplikācijas, kur primārais ir tas, cik ātri un viegli mēs varam to realizēt, nevis panākt maksimāli iespējamā ātrdarbība un, ja tas ir tā, tad kāpēc gan neizmantot ietvarus, kas būtiski samazina rutīnas darbu, kā arī radina programmētājus pie labās programmēšanas prakses, piemēram, atdalot html izvadu no datu bāzes un biznesa loģikas slāņa, tādā veidā samazinot koda dublēšanos, kas nākotnē atvieglos projekta tālāku attīstību un iespēju arī kādam programmētājam no malas turpināt mūsu iesākto darbu.

Nobeigumā vēl maza karikatūra, kas lieliski raksturo to, kāpēc, veidojot aplikācijas kodu, būtu vērts vadīties pēc programmēšanas labās prakses.

Komentēt 748 skatījumi, 1 no tiem šodien |
Atslēgas vārdi: , , ,

Komentēt

Virszemes TV