Kurkistus pinnan alle
Työskenteltyäni useita vuosia muutaman eri sisällönhallintajärjestelmien kanssa, joitain käyttäen ja toisia koodaten, päätin vihdoin ja viimein etten pyörittäisi omaa saittiani mokoman päällä. Yksi syistä oli oma täydellisyyden tavoitteluni. Geneeriset sovellukset toteuttivat usein melkein kaiken mitä halusin ja omat sovellukseni tuppasivat paisumaan useamman miestyövuoden projekteiksi (hei, kuka ei aloittaisi CMS-projektiaan WebDAV rajapinnan määrittämisellä).
Loppupeleissä päädyin toteuttamaan oman sivustoni räätälöitynä PHP ja Zend Framework -sovelluksena, näin pystyin kehittämään juuri omiin tarkoituksiini sopivan, laajennettavan sovelluksen, joka toimii samalla inkrementaalisena ikuisuusprojektina (busineskielellä nopea markkinoille saattaminen). Samalla sivusto toimii referenssinäni ja yleisenä, muttei välttämättä laadukkaana Zend Framework sovelluksen esimerkkinä.
Suunitteluprosessin tavoitteet olivat luoda modernin näköinen ja ominaisuuksilla kyllästetty verkkosovellus, joka ei vaadi fakiiria adminiksi tuotantoonviemisvaiheessa. Softan pitäisi toimia samalla mallikappaleena Zend Frameworkkiin tutustuvalle vierailijalle ja sen pitäisi noudattaa suurinpiirtein määriteltyjä koodausstandardeja.
Käytetyt teknologiat
- PHP
- Zend Framework
- SqLite (luovuttu viime julkaisuissa MySQL:n hyväksi)
- JavaScript
- jQuery
Zend Framework
Zend Frameworkin valitseminen sovellukseni "viralliseksi kirjastoksi" oli helppo valinta. Itselläni on kokemusta kyseisestä ohjelmistokehyksestä aina sen alkutaipaleelta saakka, olen suorittanut aiheesta Zendin tarjoaman sertifikaatin ja koulutan sen käyttöä (aluksi Zendin kurssilla ja myöhemmin Brain Alliancelle tekemäni materiaalin kanssa). Oppimiskynnys muuhun (ikäänkuin muita tarvittaisi) olisi ollut vanhalle ihmiselle jo liian korkea. Yhtenä syynä teknologiavalintaan oli ZF:n jatkuva kehittyminen ja uusien versioiden mukanaan tuomat ominaisuudet - tarvitsen yksinkertaisesti leikkikentän, jossa testata uusia ominaisuuksia jatkossa :)
Käytetyt Zend Frameworkin komponentit
Alla kerättynä mielestäni mielenkiintoisimmat projektissa käytetyt ZF:n luokat
- Zend_Http
- Käytetty useassa paikassa. Eräänä esimerkkinä view helperi (onnea tuon suomentamiselle) jolla olen luonut osan linkeistä. Helperi tekee HTTP-pyynnön linkitetylle sivustolle ja asettaa puolestani linkkielementin title -attribuutin sivuston titlen perusteella. Tulokset cachetetaan, tottakai!
- Zend_Cache
- Tämä on kovassa käytössä. Sivusto on teknisen kikkailunsa takia melko raskas, joten se kaipaa kipeästi välimuistittelua.
- Zend_Service_Flickr
- Oman kuvapankin rakentaminen on kivaa, mutta luokittelen sen "tulevaisuuden haasteeksi". Toistaiseksi käytän mielummin Zendin tarjoamaa itegraatiota Flickr-kuvapankkiin. Ulkoinen palvelu hoitaa puolestani mm. etusivulle postaamieni lomakuvien hallinnan ja varastoinnin, skaalaukset ja muut vaivalloiset operaatiot.
Automaatio ja integraatio
Kuvien skaalaus
Se osa kuvistani, joka liittyy staattiseen sisältöön, käsitellään sovelluksen omilla konsteilla. Porfolio-sivun kuvankaappaukset olivat tarpeaksi ikävät kaivaa internetistä, jotta päätin hoitaa skaalauksen automaattisesti. Sisäisesti skaalaus toimii niin, että linkitän view helperin kautta alkuperäisen kuvan ja view helper tarkistaa löytyykö kuvaa välimuistista, skaalaa sen tarvittaessa ja muodostaa lopuksi lightboxia tukevan linkin. Sivulla näkyy pikkukuva, jota klikkaamalla alkuperäinen kuva avautuu.
Linkkien esikatselu
Ainakin osa sivustolla olevista linkeistä näyttää esikatselukuvan kun viet hiiren linkin päälle. Tämä on saatu aikaan javascriptillä, php:lla ja ulkoisella Thumbalizer-palvelulla (samankaltaisia palveluita itseasiassa löytyy useita kun vain jaksaa kaivaa). Palvelu oli vielä tätä kirjoitettaessa beta asteella, mutta tarjoaa kelvollisen rajapinnan sen käyttöön.
Kommentit
Ei kommentteja, mikset kirjoittaisi ensimmäistä?