13 priežasčių, kodėl su Laravel PHP kalba vėl tampa "sexy"

2014-09-03

Pastaruosius penketą metų programuotojų bendruomenėje tenka visur skaityti ir girdėti neigiamas nuomones apie PHP kalbą. Kad joje daug nelogiškumų, kad ji per "silpna", kad netinkama rimtesniems projektams ir t.t. Tiesos tuose žodžiuose yra, bet pagrindinė tokių kalbų priežastis yra ne pati kalba, o ta kalba parašytas blogas kodas - kadangi PHP išmokti yra ganėtinai lengva, tai ir atsiranda daug wannabe-programuotojų, kurie rašo kodą "kad tik veiktų". Tai panašu, kad rinkoje atsirado framework'as, kuris po truputį kelia PHP bendruomenę - tai Laravel. Kuo jis toks ypatingas? Pabandysiu išvardinti priežastis iš savo praktikos.

 

"Filosofinės" priežastys

1. Lengva išmokti

Sukurti pirmą projektą su Laravel iš tikro gana paprasta - daug kas jau yra padaryta pačiame karkase, o pridėti savo elementarias funkcijas yra lengva. Tad, variantas "nuo nulio iki pirmo tinklalapio" čia labai realus. Tiesa, reikia pridurti, kad yra ir "sudėtingesnė" Laravel pusė - tiems, kas nori pasiekti profesionalų lygį, yra kur gilintis - Inversion of Control, Facades ir panašūs dalykai.

2. Labai aktyvi bendruomenė

Frameworkas yra sukurtas vieno žmogaus - tai Taylor Otwell. Tačiau šalia jo yra keletas labai aktyvių pagalbininkų - pvz Jeffrey Way, kuris dabar kasdien transliuoja Laracasts pamokėles. Be to, atsiranda vis daugiau savanorių, kuriančių papildomus paketus, rašančių forumuose ir bloguose (save irgi prie jų priskiriu). Tad jei jums reikės pagalbos - labai didelė tikimybė, kad į savo klausimus atsakymą surasite nesunkiai. Dar daugiau - Laravel bendruomenė jau po truputį primena religiją: vyksta "Laracon" konferencijos, įrašinėjami Podcastai, kuriami Github nuorodų sąrašai ir specialūs puslapiai, žodžiu bendruomenė ne tik gyva bet ir labai labai aktyvi. Frameworkui tai be galo svarbu - vienas iš esminių sėkmės faktorių.

3. Gražus ir lengvai skaitomas kodas

Laravel sukurtas taip, kad realaus kodo būtų rašoma kiek įmanoma mažiau. Kur buvo galima sutrumpinti, ten iš visų jėgų stengiamasi taip padaryti. Be to, funkcijų ir operatorių vardai dažniausiai yra suprantami iš konteksto, tad skaityti kodą taip pat patogu ir malonu.

 

Vidinės "technologinės" priežastys

4. Eloquent ORM

Darbui su duomenų baze Laravel turi įrankį pavadinimu Eloquent - jis leidžia minimaliai aprašyti lentelių struktūrą, taip pat sąryšius tarp lentelių, ir vėliau dirbti su duomenimis praktiškai keliomis kodo eilutėmis. Taip pat yra ir galingas Query Builder įrankis, padedantis sukonstruoti "mandresnę" užklausą, jei to reikia.

5. Migrations/seeds

Taip pat prie duomenų bazės yra toks pagalbininkas kaip Migrations - ši funkcija leidžia sukurti ir palaikyti duomenų bazės struktūrą panašiai kaip versijų kontrolės sistemoje kaip Git. Dirbant komandoje arba keliose aplinkose (lokaliai ir keliuose serveriuose) tai yra nepamainomas pagalbininkas, norint nesusipainioti tarp to, kuris laukas kurioje aplinkoje yra sukurtas. Taip pat yra ir Seeds - galima aprašyti, kokių duomenų realiai reikia projekto pradžiai, ir juos vėliau užpildyti viena komandinės eilutės komanda.

6. Routing/filters

Route mechanizmas Laravel sistemoje yra lengvai įsisavinamas, bet galingas. Paviršiuje - tiesiog galima nurodyti GET ar POST metodus ir nukreipti juos į norimus Controller'ius. Bet po tuo slepiasi galingesni dalykai - pvz filtrai, kurių pagalba galima priskirti tam tikrą veiksmą, kuris būtų atliekamas prieš kraunant tam tikrus puslapius ar jų grupes.

7. REST ir Resource Controllers

Jei jums reikia greitai sukurti REST aplikaciją, tai su Laravel tai galima padaryti per kelias minutes. Routes ir Controllers sistema yra tokia, kad reikalingos funkcijos gali būti generuojamos automatiškai iš komandinės eilutės vienos komandos.

8. Artisan

Kalbant apie komandinę eilutę, kurią jau keliskart paminėjome, daug kas iš Laravel "magijos" daroma pagalbininko Artisan pagalba. Jis ne tik turi savyje daug komandų visokiems generavimams ir migracijoms, bet ir gali būti nesunkiai praplečiamas jūsų pačių komandų.

9. Built-in authentication

Jei jūsų projekte reikia paprasto prisijungimo mechanizmo, tai Laravel savyje jį turi iškart - reikia tik sukurti duomenų bazės lentelę ir pritaikyti filtrus per Routes. Prisijungimo ir registracijos procesą galima sukurti per keletą minučių. Tiesa, yra ir rimtesnė alternatyva - paketas Sentry, dabar jau pakeitęs pavadinimą į Sentinel - jis siūlo rolių sistemą, slaptažodžio atkūrimo funkcijas ir dar daugiau mandrų dalykų.

10. Blade šablonų variklis

Dėl šito punkto kyla nemažai ginčų - maždaug, kam dar viena šablonų kalba, kai galima rašyti tiesiogiai PHP kodą, daug kas nemato prasmės. Bet čia yra keli argumentai - vienas dalykas, kodas atrodo gražiau ir tvarkingiau, o realiai Blade privalumai yra ne sintaksėje, o tame, kaip paprastai galima suraryti viso projekto struktūrą su @yield, @section ir kitomis komandomis. Be to, galima Blade šablonuose naudoti PHP funkcijas su operatoriumi {{ }} o tai kartais labai praverčia bei vėlgi padaro kodą skaitomesnį.

 

Išorinės "bendruomenės" priežastys

11. Laravel + Symfony

Vienas didžiausių Laravel privalumų, kad jis stengiasi "įsipaišyti" į PHP bendruomenės visumą ir draugauti su kitais įrankiais, vienas iš tokių įrodymų - kad savo branduoliui Laravel naudoja net keliolika laiko patikrintų Symfony bibliotekų, tokių kaip Routing ar HttpKernel.

12. Composer

Composer tapo nerašytu standartu šiuolaikinėje PHP bendruomenėje - paketų valdymas tapo daug patogesnis ir struktūrizuotas. Tai Laravel pilnai išnaudoja visus privalumus - reikalingos bibliotekos valdomos per composer.json

13. Bonus: Laravel Forge

Viena iš Laravel naujovių, pristatytų prieš kelis mėnesius, yra serverio aplinka Laravel Forge - jos tikslas yra paleisti serverio aplinką ar kelias aplinkas kiek įmanoma greičiau, kad programuotojas galėtų susikoncentruoti ties kodo rašymu, o ne serverio konfigūravimu. Labai patogus dalykas, pats naudoju ir taip taupau laiką.

 

Taigi, turint tokį įrankį kaip Laravel, PHP programavimas vėl tampa solidus, bet tuo pačiu ir išlieka malonus bei lengvai perprantamas.

Jei tiek priežasčių jums nepakanka ir norėtumėte įsitikinti patys, kaip paprasta kurti projektus su Laravel, kviečiu užsirašyti į mano online-kursą Laravel 4 - jūsų pirmasis projektas, vietų skaičius ribotas bet šiuo metu jų dar yra.






Naujausi PHPpamokos.lt online-kursai

23 EUR (79.41 Lt)
23 EUR (79.41 Lt)
23 EUR (79.41 Lt)
Nuo Laravel 4 prie Laravel 5
Povilas Korop

23 EUR (79.41 Lt)
MySQL: nuo pradmenų iki optimizavimo
Povilas Korop
23 EUR (79.41 Lt)
OOP: objektinis programavimas su PHP
Povilas Korop
23 EUR (79.41 Lt)
Kaip kurti Wordpress pluginus?
Arūnas Liuiza

23 EUR (79.41 Lt)
PHP online-kursas pradedantiesiems
Povilas Korop