Laravel

avoimen lähdekoodin web-sovelluskehys, kirjoitettu PHP:lla

Laravel on ilmainen, avoimen lähdekoodin[2] PHP-ohjelmointikieleen perustuva web-ohjelmistokehys, jonka on luonut Taylor Otwell. Se on tarkoitettu web-sovellusten kehitykseen MVC-arkkitehtuurilla ja se pohjautuu Symfonyyn. Osia Laravelin ominaisuuksia ovat modulaarinen pakkausjärjestelmä, jolla on dedikoitu riippuvuuksienhallinta, erilaisia tapoja hallita relaatiotietokantoja, apuohjelmia, jotka auttavat sovellusten käyttöönotossa ja ylläpidossa, ja sen suuntaus syntaktiseen sokeriin.[3][4][5][6]

Laravel
Kehittäjä Taylor Otwell
Kehityshistoria
Ensijulkaisu 9. kesäkuuta 2011
Vakaa versio 11.0.6 / [1]
Tiedot
Ohjelmistotyyppi web-ohjelmistokehys
Ohjelmointikielet PHP
Lisenssi MIT-lisenssi
Aiheesta muualla
Verkkosivusto
Versiohallinta


Laravelin lähdekoodia ylläpidetään GitHubissa ja lisensoidaan MIT-lisenssin ehtojen nojalla.[7]

Historia muokkaa

Taylor Otwell loi Laravelin yrittääkseen tarjota edistyneempää vaihtoehtoa CodeIgniter- kehykselle, joka ei tarjonnut tiettyjä ominaisuuksia, kuten sisäänrakennettua tukea käyttäjän todennukselle ja valtuutukselle. Laravelin ensimmäinen beetaversio saatiin saataville 9. kesäkuuta 2011, jota seurasi Laravel 1 julkaisu myöhemmin samassa kuussa. Laravel 1 sisälsi sisäänrakennetun tuen todennukselle, lokalisoinnille, malleille, näkymille, istunnoille, reititykselle ja muille mekanismeille, mutta tuki puuttui ohjaimille, jotka estivät sitä olemasta todellinen MVC- kehys.[8]

Laravel 2 julkaistiin syyskuussa 2011, ja se tuotti erilaisia parannuksia kehittäjältä ja yhteisöltä. Tärkeimpiä uusia ominaisuuksia oli ohjainten tuki, joka teki Laravel 2:sta täysin MVC-yhteensopivan kehyksen. Muita ominaisuuksia olivat mm. sisäänrakennettu tuki ohjausprosessin (eng. Inversion of control) periaatteelle ja mallijärjestelmän nimeltä Blade. Haittapuolina kolmansien osapuolien pakettien tuki poistettiin Laravel 2:sta.[8]

Laravel 3 julkaistiin helmikuussa 2012, ja siinä oli joukko uusia ominaisuuksia, kuten Artisan -niminen komentoliittymä (CLI), sisäänrakennettu tuki useammalle tietokannan hallintajärjestelmälle, tietokanta-asettelun siirrot versionhallinnasta, tuki tapahtumien käsittelylle ja pakkausjärjestelmä nimeltään Bundles. Laravelin käyttäjäryhmän ja suosion kasvu lisääntyi Laravel 3 julkaisun myötä.[8]

Laravel 4, koodinimeltään Illuminate, julkaistiin toukokuussa 2013. Se tehtiin täydellisenä Laravel-kehyksen uudelleenkirjoituksena, siirtämällä sen asettelu erillisiin paketteihin, jotka jaettiin Composerin kautta, joka toimii sovellustason pakettihallintana. Tällainen suunnitelma paransi Laravel 4:n laajennettavuutta, joka yhdistettiin sen säännölliseen kuuden kuukauden julkaisuaikatauluun, jonka välein julkaistiin pieniä puolijulkaisuja . Muita uusia ominaisuuksia Laravel 4:ssä olivat tietokantojen siemennys tietokantojen alkuperäiselle täytölle, tuki viestijonoille, sisäänrakennettu tuki erityyppisten sähköpostien lähettämiselle ja tuki tietokantatietueiden viivästyneelle poistamiselle, jota kutsutaan pehmeäksi poistoksi.[8]

Laravel 5 julkaistiin helmikuussa 2015 sisäisten muutosten seurauksena, jotka päätyivät silloin tulevaan Laravel 4.3-julkaisun uudelleennumerointiin. Uudet ominaisuudet Laravel 5:ssa sisälsivät tuen ajoitettujen tehtävien suorittamiseen Scheduler-nimisen paketin kautta, Flysystem-nimisen abstraktiokerroksen avulla mahdollistettiin etätallennuksen käyttäminen samalla tavalla kuin paikalliset tiedostojärjestelmät, web-omaisuuksien parempaan käsittelyyn Elixirin kautta ja yksinkertaisti ulkoisesti hoidettavan todennuksen valinnaisen Socialite-paketin kautta. Laravel 5 esitteli myös uuden sisäisen hakemistopuurakenteen kehitettyihin sovelluksiin.[4][9]

Laravel 5.1 julkaistiin kesäkuussa 2015, joka oli Laravelin ensimmäinen julkaisu, joka sai pitkäaikaista tukea (LTS). Uusia LTS-versioita suunniteltiin kerran joka toinen vuosi.[10]

Laravel 5.3 julkaistiin 23. elokuuta 2016. Uudet ominaisuudet 5.3-versiossa keskittyvät kehittäjänopeuden parantamiseen lisäämällä parannuksia tavallisiin tehtäviin.[11]

Laravel 5.4 julkaistiin 24. tammikuuta 2017, monilla uusilla ominaisuuksilla, kuten Laravel Dusk, Laravel Mix, Blade komponentit ja Slotit, Markdown-sähköpostit, automaattiset Facadet, reittien parannukset, kokoelmien korkeamman tason viestityksen ja monta muuta.[12]

Laravel 6 julkaistiin 3. syyskuuta 2019, joka esittelee semanttisen versioinnin, yhteensopivuuden Laravel Vaporin kanssa, parannettuja valtuutusvastauksia, parannettuja työväliohjelmistoja, laiskoja kokoelmia ja alikyselyjen parannuksia. Käyttöliittymäpuolen alkukoodi poistettiin pääpakkauksesta ja siirrettiin laravel/ui -nimiseen pakettiin.[13]

Laravel 7 julkaistiin 3. maaliskuuta 2020, uusilla ominaisuuksilla, kuten Laravel Sanctum, Custom Eloquent Casts, Blade komponent tagit, Fluent String operaatiot, sekä rettien mallisitomisparannukset.[14]

Julkaisuhistoria muokkaa

LTS-nimisiä versioita tuetaan virhekorjauksilla 2 vuotta ja suojauskorjauksilla 3 vuotta. Muita julkaisuja tuetaan virhekorjauksilla kuusi kuukautta ja tietoturvakorjauksilla yksi vuosi. [15]

Versio Julkaisupäivämäärä PHP versio
Vanha versio, ei enää tuettu: 1.0 kesäkuu 2011
Vanha versio, ei enää tuettu: 2.0 syyskuu 2011
Vanha versio, ei enää tuettu: 3.0 tammikuu 22, 2012
Vanha versio, ei enää tuettu: 3.1 maaliskuu 27, 2012
Vanha versio, ei enää tuettu: 3.2 toukokuu 22, 2012
Vanha versio, ei enää tuettu: 4.0 toukokuu 28, 2013 ≥ 5.3.0
Vanha versio, ei enää tuettu: 4.1 joulukuu 12, 2013 ≥ 5.3.0
Vanha versio, ei enää tuettu: 4.2 kesäkuu 1, 2014 ≥ 5.4.0
Vanha versio, ei enää tuettu: 5.0 helmikuu 4, 2015 ≥ 5.4.0
Vanha versio, ei enää tuettu: 5.1 LTS kesäkuu 9, 2015 ≥ 5.5.9
Vanha versio, ei enää tuettu: 5.2 joulukuu 21, 2015 ≥ 5.5.9
Vanha versio, ei enää tuettu: 5.3 elokuu 23, 2016 ≥ 5.6.4
Vanha versio, ei enää tuettu: 5.4 tammikuu 24, 2017 ≥ 5.6.4
Vanhempi versio, yhä tuettu: 5.5 LTS elokuu 30, 2017 ≥ 7.0.0
Vanha versio, ei enää tuettu: 5.6 helmikuu 7, 2018 ≥ 7.1.3
Vanha versio, ei enää tuettu: 5.7 syyskuu 4, 2018 ≥ 7.1.3
Vanha versio, ei enää tuettu: 5.8 helmikuu 26, 2019 ≥ 7.1.3
Vanhempi versio, yhä tuettu: 6 LTS syyskuu 3, 2019 ≥ 7.2.0
Nykyinen versio: 7 maaliskuu 3, 2020[16] ≥ 7.2.5[17]
Tuleva versio: 8 syyskuu 3, 2020 (ei varmaa) ≥ 7.3.0


Seloste: Vanha versio Vanhempi versio, yhä tuettu Nykyinen versio Viimeisin testiversio tulevasta julkaisusta Tuleva versio

Lähde: Laravel[18][19]

Ominaisuudet muokkaa

Seuraavat ominaisuudet toimivat Laravelin keskeisinä suunnittelupisteinä (jos ei erikseen mainita, kuvaukset viittaavat Laravel 3:n ominaisuuksiin):[3][4][5][6][20]

  • Bundles tarjoaa modulaarisen pakkausjärjestelmän Laravel 3:n julkaisun jälkeen, mukana toimitetut ominaisuudet, joita on helppo lisätä sovelluksiin. Lisäksi Laravel 4 käyttää Composer -sovellushallintaohjelmaa lisätäkseen kehysangnostisia ja Laravel -kohtaisia PHP-paketteja, jotka ovat saatavana Packagist- arkistosta. [21]
  • Eloquent ORM (olio-relaatiomappaus) on aktiivisen tietuemallin edistyksellinen PHP-toteutus, joka tarjoaa samalla sisäisiä menetelmiä tietokantaobjektien välisten suhteiden rajoitusten toteuttamiseksi. Aktiivisen tietuemallin jälkeen Eloquent ORM esittää tietokantataulukoita luokkina, niiden objekti-esiintymät sidottuina yksittäisiin taulukkoriviin. [22]
  • Query builder, saatavana Laravel 3:sta lähtien, tarjoaa suoremman pääsyn tietokantaan verrattuna Eloquent ORM:ään. Sen sijaan, että vaadittaisiin SQL-kyselyiden kirjoittamista suoraan, Laravelin Query builder tarjoaa joukon luokkia ja menetelmiä, jotka pystyvät muodostamaan kyselyitälauseita ohjelmallisesti. Se mahdollistaa myös suoritettujen kyselyiden tulosten tallentamisen välimuistiin. [23]
  • Sovelluslogiikka on olennainen osa kehitettyjä sovelluksia, jotka toteutetaan joko ohjaimia käyttämällä tai osana reitin ilmoituksia. Sovelluslogiikan määrittelemiseen käytetty syntaksi on samanlainen kuin Sinatra- kehyksessä.
  • Käänteinen reititys määrittelee linkkien ja reittien välisen suhteen, jolloin reittien myöhemmät muutokset voidaan levittää automaattisesti merkityksellisiksi linkkeiksi. Kun linkit luodaan käyttämällä olemassa olevien reittien nimiä, Laravel luo automaattisesti asianmukaiset yhtenäiset resurssitunnukset (URI).
  • RESTful ohjaimet tarjoavat valinnaisen tavan erottaa HTTP GET- ja POST- pyyntöjen logiikka.
  • Luokkien automaattinen lataus tarjoaa PHP-luokkien automaattisen lataamisen ilman sisällyttämispolkujen manuaalista ylläpitoa. Automaattinen lataus estää tarpeettomien komponenttien sisällyttämisen, joten vain tosiasiallisesti käytetyt komponentit ladataan.
  • Näkymän kasaajat toimivat muokattavina loogisina koodiyksiköinä, jotka voidaan suorittaa, kun näkymä ladataan.
  • Blade mallinnusmoottori yhdistää yhden tai useamman pohjamallin tietomallin kanssa tuottaakseen näkymiä, tehden sen kääntämällä pohjamallit PHP välimuistiin suorituskyvyn parantamiseksi. Blade tarjoaa myös joukon omia ohjausrakenteita, kuten ehdolliset lauseet ja silmukat, jotka on sisäisesti kartoitettu niiden PHP-vastineisiin. Lisäksi Laravel-palveluita voidaan kutsua Blade-malleista, ja itse mallintamoottoria voidaan laajentaa mukautetuilla direktiiveillä. [24] [25]
  • IoC-säilöt mahdollistavat uusien kohteiden generoinnin seuraamalla inversion of control -ohjausprosessin periaatetta, jossa kehys kutsuu sovellus- tai tehtäväkohtaiseen koodin, valinnaisella aloituksella ja viittauksella uusille kohteille singletoneina.
  • Migraatiot tarjoavat versionhallintajärjestelmän tietokanta-asettelulle, mikä mahdollistaa muutosten liittämisen sovelluksen koodipohjaan ja vaaditut muutokset tietokannan asetteluun. Seurauksena on, että tämä ominaisuus yksinkertaistaa Laravel-pohjaisten sovellusten käyttöönottoa ja päivittämistä. [26]
  • Tietokannan siemennys tarjoaa tavan täyttää tietokantataulukoita valituilla oletustiedoilla, joita voidaan käyttää sovelluksen testaamiseen tai suorittaa osana sovelluksen alkuasetuksia.
  • Yksikkötestaus on oleellinen osa Laravelia,[8] joka itsessään sisältää yksikkötestejä, jotka havaitsevat ja estävät regressioita kehyksessä. Yksikkötestit voidaan suorittaa mukana toimitetun artisan komentoriviohjelman kautta.
  • Automaattinen sivutus yksinkertaistaa sivutuksen toteuttamista korvaamalla tavalliset manuaaliset toteutustavat automaattisilla menetelmillä, jotka on integroitu Laraveliin.
  • Lomakepyynnöt on ominaisuus Laravel 5:ssä, joka toimii pohjana lomakkeen syötön validoinnille, joka sisäisesti käyttää tapahtumakuuntelijoita, johtaen automaattiseen lomakkeen validoinnin käynnistämiseen ja todellisen lomakkeen generoimiseen.[27]
  • Homestead - Vagrant- virtuaalikone, joka tarjoaa Laravel-kehittäjille kaikki tarvittavat työkalut valmiiksi Laravelin kehittämiseen, mukaan lukien Ubuntu, Gulp, Bower ja muut kehittämistyökalut, jotka ovat hyödyllisiä täysimittaisten web-sovellusten kehittämisessä. [28]
  • Canvas - Laravel-käyttöinen julkaisualusta, joka auttaa visualisoimaan kuukausitrendejä, näkemään mistä lukijat tulevat ja mihin vuorokaudenaikaan he mieluummin lukevat sisältöä. Ominaisuuksia, kuten: julkaisutilastot, häiriötön kirjoittaminen, Unsplash integraatio, ja mukautettu sosiaalinen data. [29]
  • Lazy Collection - Tämä Laravel 6:n ominaisuus antaa ensisijaisesti mahdollisuuden käsitellä raskaita tietomääriä pitäen samalla muistin käytön alhaisena. Lisäksi, kun vaihdat all() cursor() metodiin, vain yksi malli siirtyy muistissa kerrallaan, kun cursor() käyttää LazyCollection-esiintymää.

Ensimmäisen osapuolen paketit muokkaa

Käyttövalmiita paketteja, jotka Laravel toimittaa Composerin ja Packagistin kautta, ovat seuraavat:

  • Cashier, saatavilla Laravelin 4.2 versiossa, tarjoaa rajapinnan Stripe tilauslaskutuksen hallintaan. Ominaisuuksia, kuten kuponkien käsittely ja laskujen tuottaminen.[30]
  • Envoy, saatavilla Laravel 4.2 versiossa, tarjoaa syntaksin etäpalvelimilla suoritettavan koodin määrittelemiseksi. Blade-tyylisyntaksin avulla voi määrittää käyttöönotto-, Artisan-komennot.[31]
  • Socialite tarjoaa todennusmekanismin eri OAuth- palveluntarjoajien, kuten Facebook, Twitter, Google, GitHub ja Bitbucket, kanssa.[32]
  • Passport, saatavilla Laravel 5.3 versiossa, tarjoaa OAuth2 palvelintoteutuksen Laravel-sovelluksille. [33]
  • Scout, saatavilla Laravel 5.3 versiossa, tarjoaa ajuripohjaisen ratkaisun tekstihaun lisäämiseen Eloquent-malleihin.[34]
  • Dusk, saatavilla Laravel 5.4 versiossa, tarjoaa selaimen automaation ja testausrajapinnan.[35]
  • Horizon, saatavilla Laravel 5.5 versiossa, tarjoaa kojelaudan Laravel-pohjaisiin Redis- jonoihin.[36]
  • Telescope, saatavilla Laravel 5.7 versiossa, tarjoaa näkyvyyttä sovelluksen pyyntöihin, poikkeuksiin, lokimerkintöihin, tietokantakyselyihin, jonossa oleviin töihin, sähköposteihin, ilmoituksiin, välimuistioperaatioihin, ajoitettuihin tehtäviin, muutujien dumppaukseen, ja muihin.[37]
  • Sanctum, saatavilla Laravel 7.0 versiossa, tarjoaa todennusjärjestelmän SPA:ille (Singe Page Applications), mobiilisovelluksille ja yksinkertaisille, token perusteisille rajapinnoille.[38] . Aluksi nimeltään Laravel Airlock, mutta tuote jouduttiin uudelleennimeämään 'Airlock' nimeä koskevasta tavaramerkkiriidasta.[39]

Artisan CLI muokkaa

Laravelin komentoriviliittymä (CLI), nimeltään Artisan, otettiin alun perin käyttöön Laravel 3:ssa rajoitetuilla ominaisuuksilla. Laravelin myöhempi siirtyminen Composer-pohjaiseen arkkitehtuuriin antoi Artisanille mahdollisuuden sisällyttää erilaisia komponentteja Symfony- kehyksestä, minkä seurauksena Artisan-lisäominaisuuksia oli saatavana Laravel 4:ssä.[8][40]

Artisanin ominaisuudet on jaoteltu erilaisiin alikomentoihin Artisan komentoriviohjelmassa, joka tarjoaa toimintoja, jotka auttavat hallitsemaan ja rakentamaan Laravel-pohjaisia sovelluksia. Artisanin yleisiä käyttötapoja ovat tietokantojen siirtojen hallinta ja siemennys, pakettien assettien julkaiseminen ja alkukoodin luominen uusille käsittelijöille ja migraatioille. Jälkimmäinen näistä vapauttaa kehittäjän luomasta oikeita koodirunkoja. Artisanin toimintoja ja ominaisuuksia voidaan myös laajentaa toteuttamalla uusia mukautettuja komentoja, joita voidaan esimerkiksi käyttää sovelluskohtaisten toistuvien tehtävien automatisointiin.[8][40]

Kokoukset muokkaa

 
Taylor Otwell vuonna 2013 Yhdysvaltain Laraconissa

Laracon on virallinen Laravel-konferenssi, jonka keskipisteenä on Laravel-kehys, joka kattaa sen kehittämisen, käytön ja niihin liittyvät yleiset ohjelmistokehitysaiheet . Laracon on tapahtunut aiemmin Yhdysvalloissa, Euroopassa ja verkossa.[41][42] Konferenssi tapahtuu tyypillisesti Yhdysvalloissa ja Euroopassa joka vuosi. 2017 oli ensimmäinen vuosi, jolloin Laracon pidettiin vain verkkotapahtumana. 2018 oli ensimmäinen vuosi, jolloin Laracon pidettiin Australiassa. Konferenssissa on joka vuosi erilaisia sponsoreita ja järjestäjiä, mutta Laravel, Laravel News ja UserScape ovat yleensä ensisijaisia järjestäjiä.

Lähteet muokkaa

  1. Release 11.0.6, (viitattu ). Tieto on haettu Wikidatasta.
  2. The real-time community site Voten goes open-source Laravel News. 16.6.2017. (englanniksi)
  3. a b Daniel Gafitescu: Goodbye CodeIgniter, Hello Laravel sitepoint.com. 2013-06-06-mdy6. kesäkuuta 2013.
  4. a b c Martin Bean: Laravel 5 Essentials. Packt Publishing. ISBN 978-1785283017.
  5. a b Laravel Documentation (versions 3.0–3.2.14) three.laravel.com. Arkistoitu 26.8.2014.
  6. a b Laravel Documentation (version 4.2) laravel.com.
  7. laravel/laravel: laravel/readme.md at master github.com. 2015-04-22-mdy22. huhtikuuta 2015.
  8. a b c d e f g Saunier, Raphaël: Getting Started with Laravel 4. Packt. ISBN 978-1783287031.
  9. Eric Barnes: Laravel 5 laravel-news.com. 2015-01-30-mdy30. tammikuuta 2015.
  10. Eric L. Barnes: Laravel 5.1 is released laravel-news.com. 2015-06-09-mdy9. kesäkuuta 2015.
  11. Eric L. Barnes: Laravel  5.3 is now released laravel-news.com. 2016-08-23-mdy23. elokuuta 2016.
  12. Eric L. Barnes: Laravel 5.4 Is Now Released Laravel News. 24.1.2017. (englanniksi)
  13. Laravel 6 release notes Laravel.
  14. Release Notes - Laravel - The PHP Framework For Web Artisans laravel.com.
  15. Laravel Documentation: Releases Laravel.
  16. https://twitter.com/laravelphp/status/1227607366717321216
  17. https://web.archive.org/web/20200118155356/https://laravel.com/docs/master/upgrade
  18. Release Notes - Laravel Laravel.
  19. Github Repository Release Notes - Laravel Laravel.
  20. Jeffrey Way: Why Laravel is Taking the PHP Community by Storm code.tutsplus.com. 2012-11-28-mdy28. marraskuuta 2012.
  21. Laravel documentation (version 4.2): Package development laravel.com.
  22. Develop Faster with the Laravel PHP Framework developer.com.
  23. Laravel documentation (version 4.0): Query builder laravel.com. Arkistoitu 24.3.2015.
  24. Laravel documentation (version 5.1): Blade Templates laravel.com.
  25. Dayle Rees: Laravel Blade engine daylerees.com.
  26. Laravel documentation (version 5.0): Migrations and seeding laravel.com.
  27. Manmeet Anand: Creating a Contact Form in Laravel 5 Using the Form Request Feature! tisindia.com. 12.2.2015.
  28. Laravel Homestead - Laravel the PHP Framework for Web artisans laravel.com.
  29. Laravel Canvas - Laravel Publishing Platform laravel-news.com.
  30. Laravel Cashier - Laravel - The PHP Framework For Web Artisans laravel.com.
  31. Laravel Envoy - Laravel - The PHP Framework For Web Artisans laravel.com.
  32. Laravel Socialite - Laravel - The PHP Framework For Web Artisans laravel.com.
  33. Laravel Passport - Laravel - The PHP Framework For Web Artisans laravel.com.
  34. Laravel Scout - Laravel - The PHP Framework For Web Artisans laravel.com.
  35. Laravel Dusk - Laravel - The PHP Framework For Web Artisans laravel.com.
  36. Laravel Horizon - Laravel - The PHP Framework For Web Artisans laravel.com.
  37. Laravel Telescope - Laravel - The PHP Framework For Web Artisans laravel.com.
  38. Laravel Sanctum - Laravel - The PHP Framework For Web Artisans laravel.com.
  39. Laravel Airlock Renamed to Sanctum PAUL REDMOND.
  40. a b Jason Lewis: Your One-Stop Guide to Laravel Commands code.tutsplus.com. 2013-02-28-mdy28. helmikuuta 2013.
  41. Laracon Online | The official worldwide Laravel online conference laracon.net. (englanniksi)
  42. Search Results laravel-news.com. (englanniksi)

Kirjallisuutta muokkaa

  • Laravel Design Patterns and Best Practices, Packt,  ISBN 978-1783287987, heinäkuu 2014, kirjoittanut Arda Kılıçdağı ja H. İbrahim Yilmaz

Aiheesta muualla muokkaa

 
Käännös suomeksi
Tämä artikkeli tai sen osa on käännetty tai siihen on haettu tietoja muunkielisen Wikipedian artikkelista.
Alkuperäinen artikkeli: en:Laravel