1. Istorija - nuo Laravel 1 iki Laravel 5

Pradėkime nuo "nuobodaus" dalyko - įvado ir istorijos. Kodėl Laravel? Kuo jis toks patrauklus? Ir koks buvo kelias nuo pirmos iki dabartinės penktos versijos? Visai pravartu tą žinoti, norint perprasti, kodėl turime tai ką turime dabar.

Taylor Otwell - Laravel "tėvas"

Laravel buvo sukurtas vieno žmogaus. Taylor Otwell, kurio vardas bendruomenėje linksniuojamas vis dažniau, iki šiol taip ir liko vieninteliu pagrindiniu kūrėju, nuo kurio sprendimų ir priklauso - kada pasirodys naujos versijos, kokios funkcijos bus įtrauktos, kaip jos veiks, kaip bus parašyta dokumentacija ir kt. Galbūt atrodo, kad tai problema ir kad nuo to darbai vyksta lėtai, bet priešingai - Laravel žygiuoja į priekį su labai didele sparta, ir daugelis Laravel programuotojų turi didžiulę pagarbą Taylorui už tai, ką jis daro.

Tiesa, dabartinėje Laravel bendruomenėje yra daug daugiau aktyvistų. Jeffrey Way projektas Laracasts susilaukė didžiulio susidomėjimo ir eigoje išaugo iš vien tik Laravel tematikos, o Shawn McCool prisidėjo prie mėnesinio Laravel podcasto, kuriame kartu su Tayloru ir Jeffrey aptarinėja naujausias tendencijas ir atsakinėja į bendruomenės klausimus.

Taip pat atsirado eilė tinklalapių, skirtų būtent Laravel frameworkui - populiariausias būtų Laravel News, taip pat yra Laravel Snippets, Laravel Recipes, jau nekalbant apie nuorodų rinkinius, kuriuos aktyvistai talpina į Github čia arba čia.

Laravel 1 - bandymas pabėgti nuo CodeIgniter

Pirmoji kukli Laravel versija pasirodė 2011 metų birželį, kai Taylor nusprendė, kad populiariausio tuo metu CodeIgniter frameworko funkcionalumo jam nepakanka - trūko įtraukto prisijungimo/vartotojų mechanizmo, routinimo su Closure funkcijomis ir dar kelių svarbių dalykų. Tad pirmoji versija buvo tyliai išleista "pačiam sau" ir neturėjo tikslo užkariauti pasaulį.

Tiesa, funkcionalumas jau tada buvo gana įspūdingas: jau minėta autentifikacija, routinimas, žymusis Eloquent ORM, kešavimas, sesijos, formų ir HTML helperiai - visa tai egzistavo jau pirmoje Laravel versijoje.

Bet pirmieji frameworko naudotojai pamatė esminį trūkumą: nebuvo normalaus MVC modelio, taip pat trūko patogaus išorinio paketų valdymo. Ir taip gimė versija 2.

Laravel 2 - pirmasis populiarumas

Antroji versija pasirodė stebėtinai greitai - jau po pusmečio nuo pirmosios išleidimo: 2011 metų lapkričio mėnesį. Ties šiuo momentu Taylor turbūt pamatė potencialą platesniam vartotojų ratui, ir jau pradėjo "reklamuoti" frameworką. Kad ir Readme faile prie šios versijos yra visai skambus užrašas:

"Freeing you from spaghetti code, Laravel helps you create wonderful applications using simple, expressive syntax. Development should be a creative experience that you enjoy, not something that is painful. Enjoy the fresh air."

Na, toks ir buvo tikslas - sukurti frameworką, kuris iš tikro palengvintų projektų kūrimą ir paverstų procesą malonumu. Tam tikslui antroje versijoje pasirodė Controlleriai, "Blade" šablonų varikliukas, Inversion of Control sistema. Tik buvo viena didelė problema - nebuvo trečiųjų šalių modulių palaikymo, tiksliau apskritai nebuvo galimybės diegti nieko iš išorės. Tad visai greitai įvyko dar vienos versijos išleidimas.

Laravel 3 - pilnavertis frameworkas

Trečioji versija buvo išleista praktiškai iškart po antrosios, praėjus vos trims mėnesiams: 2012 metų vasarį. Tiesą pasakius, kiek pats pažįstu Laravel programuotojų, mažai kas apskritai žinojo apie pirmąsias dvi versijas ir savo pažintį pradėjo nuo Laravel 3. Iš dalies, tai yra dėl to, kad internete praktiškai nebuvo straipsnių ar tutorialų apie Laravel 1-2, o juk su jais ir ateina populiarumas.

Laravel 3 pagaliau "pramušė ledus" ir apie frameworką pradėjo rašyti PHP portalai ir blogeriai. Naujoji versija jau turėjo savyje tokius dalykus kaip: "bundles" išoriniams paketams, Artisan komandinės eilutės įrankis, DB migracijos, daugiau driverių sesijoms ir duomenų bazėms, taip pat patobulintą Eloquent ORM.

Taip pat buvo pristatyta nauja oficiali svetainė, kurios forume prasidėjo aktyvesnės diskusijos. Ir tada, kad pakeltų frameworką į visiškai naują lygmenį, praėjus 5 mėnesiams Taylor sugalvojo perkurti frameworką nuo nulio. Taip, Laravel 3 ir 4 skiriasi visiškai kardinaliai savo vidine struktūra. Tiesa, darbai užtruko ir Laravel 3 versija dar gan ilgai išliko kaip naujausia rinkoje, ir su ja buvo sukurta jau nemažai projektų.

Laravel 4 - pasaulinis pripažinimas

Ketvirtoji versija pasirodė po metų ir trijų mėnesių po Laravel 3 - konkrečiau tai buvo 2013 metų gegužę. Be to, kad frameworkas buvo perkurtas nuo nulio, pasirodė funkcijos, kurios leido galutinai įsitvirtinti rinkoje ir naudoti frameworką kaip pilnavertį: tai Composer palaikymas ir Facade architektūra. Iš principo, tokia architektūra leido į Laravel žiūrėti dvejopai - pradedantiesiems programuotojams galima buvo tiesiog naudoti paruoštus "fasadus" ir nesigilinti, kaip ten viskas veikia viduje, tuo pačiu labiau pažengę specialistai galėjo pasinaudoti vidine struktūra ir geriau suskirstyti didesnius projektus.

Taip pat buvo patobulintos beveik visos pagrindinės vidinės funkcijos bei pridėti tokie dalykai kaip Database Seeding, Queues ir Mail. Taip pat Eloquent ORM tapo dar galingesnis, palaikydamas "soft delete" funkciją ir dar kelis patobulinimus.

Su šia versija atėjo visuotinis populiarumas - apie Laravel 4 kalbėjo visas internetas: buvo leidžiami tutorialai, straipsniai, kursai ir knygos, išoriniai paketai. Ir tada prasidėjo praktiškai eksponentinis augimas, kurio rezultatas - 2015 metų pradžioje mano atliktas mini-tyrimas parodė, kad Laravel yra populiariausias PHP frameworkas Lietuvoje.

Tiesa, šitoje vietoje galima kalbėti apie lūžį frameworkų rinkoje apskritai - kai kurie seniau sukurti frameworkai "užmigo ant laurų", ir tai dar labiau paskatino Laravel populiarumo bangą: rinkos lyderiu buvęs CodeIgniter nebuvo kardinaliai atnaujinamas nuo 2011 metų, Zend Framework tapo "dideliu ir per sunkiu žvėrimi", Yii ir CakePHP taip ir nerado didesnės auditorijos. Tad visame šitame fone Laravel iškilo ir kartu su Symfony tvirtai perėmė rinkos lyderių pozicijas.

Laravel 5 - žingsnis į priekį

Taylor Otwell, leisdamas ketvirtosios versijos sub-versijas 4.1 ir 4.2 su smulkiais patobulinimais, jau ruošėsi leisti 4.3 versiją, bet su ja buvo suplanuota tiek daug naujovių, kad galiausiai jis nusprendė pakeisti planus ir išleisti Laravel 5 su dar daugiau patobulinimų. Oficialiai naujoji versija buvo pristatyta 2015 m. vasario mėnesį - praėjus beveik dvejiems metams po Laravel 4.

Iš esmės, į Laravel 5 galima žiūrėti kaip į patobulintą ketvirtą versiją. Buvo pristatyta apie 20 svarbių patobulinimų ir naujovių - apie jas ir kalbėsime viso šio kurso metu. Taigi, gal užteks istorijos - laikas grįžti į dabartį ir žiūrėti į tai, ką turime dabar? Pirmyn!