Laravel

Laravel ir bezmaksas, atvērtā koda PHP tīmekļa ietvars, ko izveidojis Teilors Otvels, kas ir paredzēts, lai izgatavotu tīmekļa lietojumprogrammas pēc modeļa—skats—kontrolieris (MVC-model-view-controller) arhitektūras modeļa. Dažas no Laravel iezīmēm ir modulāra pakošanas sistēma ar atvēlētu atkarību administratoru, dažādu veidu pieeju saistītajām datubāzēm, priekšrocībām, kas palīdz aplikāciju izvietošanai un uzturēšanai un tās tiekšanos uz Syntactic Sugar — sintaksi programmēšanas valodā, kas ir izveidota, lai padarītu lietas vienkāršāk saprotamas un izsakāmas.

2015. gada martā Laravel tiek uzskatīts par vienu no populārākajiem PHP ietvariem, kopā ar Symfony2, Nette, Codelgniter, Yii2 un citiem ietvariem. Laravel pirmkods ir pieejams GitHub un licencēts zem MIT Licences noteikumiem.

Vēsture 

Teilors Otvels izveidoja Laravel kā mēģinājumu, lai nodrošinātu daudz spēcīgāku alternatīvu Codelgniter ietvaram, kas nenodrošina drošu lietotāja autentifikāciju un autorizāciju. Laravel pirmā palaišana notika 2011. gada 9. jūnijā, tajā pašā mēnesī sekoja Laravel 1 palaišana. Laravel 1 ietver sevī iebūvētu atbalstu autentifikāciju, lokalizāciju, modeļus, skatus, sesijas, maršrutus un citus mehānismus, bet tam trūka kontroliera atbalsta, kas novērstu to no tā, ka tas būtu īsts MVC ietvars.

Laravel 2 tika izlaists 2011. gada septembrī, ietverot sevī dažādus uzlabojumus no autora un kopienas. Galvenie uzlabojumi ietvēra kontroliera atbalstu, kas padara Laravel 2 par pilnībā MVC atbalstošu ietvaru, kas atbalsta kontroles inversijas (IOC) principus un šablonu sistēmu Blade. Kā trūkumu var minēt, ka tika noņemta trešā pakete Laravel 2.

Laravel 3 tika izlaists 2012. gada februārī ar jaunu iezīmju komplektu, kas ietver komandrindas interfeisu Artisan, būvēts, lai atbalstītu datu bāzu pārvaldības sistēmu, datu bāzu migrāciju kā kontroles versijas formu datu bāzu izkārtojumam, atbalsta apstrādes notikumus un pakošanas sistēmu Bundles. Datu bāzu pieaugums un popularitāte Laravel 3 versijai bija pārāk liels slogs.

Laravel 4 ar segvārdu Illuminate tika izlaists 2013. gada maijā. Tas tika veidots, lai pilnībā pārrakstītu Laravel ietvaru, pārveidotu tā izkārtojumu atsevišķā paketē caur Composer, kas kalpo kā lietojumprogrammas līmeņa paketes pārvaldnieks. Šāds izkārtojums uzlaboja Laravel 4 elastību. Citas jaunās Laravel 4 iezīmes iekļāva ziņojumu rindas atbalstu, iebūvētu atbalstu dažādu e-pasta tipu sūtīšanai un atbalstu atliktu datu bāzu ierakstu dzēšanu, kuru dēvē par ‘’mīksto dzēšanu’’.

Laravel 5 tika izlaists 2015.gada februārī, kā iekšējo pārmaiņu rezultāts, kas beidzās ar Laravel 4.3 pārnumerāciju. Jaunās Laravel 5 iezīmes ietvēra atbalstu periodiski izpildītu uzdevumu plānošanā, izmantoto paketi sauca Scheduler, abstrakcijas slāni Flysystem, kurš ļauj lietot attālo glabāšanu tāpat kā lokālā failu sistēma, uzlabotu paketes aktīvu apstrādi caur Elixir un vienkāršotu ārēji apstrādātu autentifikāciju pēc Socialite paketes izvēles. Laravel 5 arī ieviesa jaunu iekšējo koku direktorija struktūru izstrādātajām aplikācijām.

Laravel 5.1 tika izlaists 2015. gada jūnijā, šī versija ir pirmā Laravel versija, lai saņemtu ilgtermiņa atbalstu (LTS-long-term support), ar plānotu pieejamību kļūdu labojumiem uz diviem gadiem un drošības plāksteriem uz trīs gadiem. Ilgtermiņa atbalsta Laravel izlaišana tika plānota izlaist katros divos gados

Laravel 5.3 tika izlaists 2016. gada 23. augustā. Jaunās iezīmes Laravel 5.3 ir vērstas uz uzlabotu izstrādātāju ātrumu, pievienojot papildu uzlabojumus kopējiem uzdevumiem.

Iezīmes 

Sekojošās iezīmes kalpo kā Laravel galvenie dizaina punkti (kur nav īpaši atzīmēts, apraksti attiecas uz Laravel 3 iezīmēm).

 Bundles nodrošina modulāru pakošanas sistēmu kopš tika izlaists Laravel 3, komplektā ar jau pieejamām iezīmēm viegli papildinot aplikācijas. Turklāt, Laravel 4 lieto Composer kā atbalsta pārvaldnieku, lai pievienotu nedroša ietvara un Laravel specifiskas PHP paketes, kas pieejamas no Packagist krātuves.
 Eloquent ORM (objektrelāciju kartēšana) ir uzlabota PHP aktīvu ieraksta modeļu īstenošana, nodrošinot vienlaikus iekšējās metodes par izpildes ierobežojumu attiecībām starp datu bāzu objektiem. Pēc aktīvu ieraksta modeļa, objektrelāciju kartēšana prezentē datu bāzu tabulas kā klases ar saistītu objekta gadījumu kā vienu tabulas rindu.
 Query builder, pieejams kopš Laravel 4, piedāvā daudz tiešāku piekļuvi datu bāzēm alternatīvu objektrelāciju kartēšanai. Tā vietā, kā pieprasīt tiešu SQL vaicājumu pierakstu, Laravel vaicājumu veidotājs nodrošina komplektu ar klasēm un metodēm, kas spēj veidot vaicājumus tehniski. Tas arī ļauj izvēlēties uzkrātos rezultātus no realizētajiem vaicājumiem.
 Application logic ir neatņemama aplikāciju izstrādes sastāvdaļa, kuru īsteno vai nu lietojot kontrolierus, vai daļu no programmas deklarācijas. Lietotā sintakse, lai noteiktu aplikāciju loģiku ir līdzīga tādai, kuru izmanto Sinatra ietvarā.
 Reverse routing definē attiecības starp saitēm un maršrutiem, ļaujot vēlāk izmainītos maršrutus pavairot uz attiecīgām saitēm. Kad saites ir izveidotas, izmantojot eksistējošu maršrutu vārdus, atbilstošie formu resursu identifikatori (Url) automātiski tiek izveidoti Laravel.
 Restful controllers- nodrošina izvēles veidu, lai atdalītu HTTP GET un POST pieprasījumus.
 Class auto loading- nodrošina automātisku PHP klašu ielādi, bez nepieciešamības manuāli uzturēt iekļautos ceļus. Pēc pieprasījuma ielādes novērš nevajadzīgo komponenšu iekļaušanu, tāpēc tiek ielādētas tikai faktiski lietojamās komponentes.
 View composers kalpo kā pielāgojama loģiskā koda vienība, kas var tikt izpildīta, kad skats ir ielādējies.
 Blade templating engine apvieno vienu vai vairākas veidnes ar datu modeļiem, lai uzrādītu rezultātu skatus, pārveidojot viednes PHP kodā, lai uzlabotu izpildījumu. Blade sniedz virkni arī savas kontroles struktūras, kā nosacījuma apgalvojums un cikli, kas ir iekšēji samēroti ar PHP dublikātiem. Turklāt, Laravel pakalpojumu var saukt no Blade veidnēm un šablonu līdzeklis pats var tikt pagarināts ar pasūtījuma direktīvām.
 loC containers dod iespēju jauniem objektiem tikt radītiem, sekojot kontroliera (loC) inversijas principam.
 Migrations nodrošina kontroles sistēmas versiju datu bāzu shēmām, padarot iespējamu saistīt izmaiņas aplikācijas pirmkodā un nepieciešamās izmaiņas datu bāzu izkārtojumā. Kā rezultāts, šī iezīme vienkāršo Laravel balstītās aplikācijas izvietošanu un atjaunināšanu.
 Database seeding nodrošina iespēju aizpildīt datu bāzu tabulas ar izvēlētiem noklusējuma datiem, kas var tikt izmantoti aplikāciju testēšanā vai realizēti kā daļa no aplikācijas sākuma uzstādīšanas.
 Unit testing ir neatņemama Laravel daļa, kura pati satur vienības testu, kas atrastu un novērstu ietvara regresiju. Vienības testi var tikt palaisti caur nosacījuma artisan command- line utility.
 Automatic pagination vienkāršo lappušu numerācijas īstenošanas uzdevumu, aizstājot parasto manuālo īstenošanas pieeeju ar automatizētu integrētu metodi Laravel.
 Form request ir Laravel 5 iezīme, kas kalpo kā ievades validācijas formas bāze ar iekšēji saistošu notikumu klausītāju, atsaucoties uz automatizētās validācijas formas metodi un aktuālās sākuma formas.
 Homestead- a Vagrant virtual machine- nodrošina Laravel izstrādātājus ar visiem nepieciešamajiem rīkiem, lai izstrādātu Laravel taisni no kastes, ieskaitot Ubuntu, Gulp, Bower un citus izstrādātāju rīkus, kas ir noderīgi, lai izstrādātu pilna mēroga tīmekļa aplikāciju.

Piedāvātās paketes 

Ready-to-use Laravel nodrošinātās paketes caur Composer un Packagist iekļauj:
 
 Cashier, ieviests Laravel 4.2, nodrošina saskarni, lai pārvaldītu abonēšanas norēķinu pakalpojumus, kas nodrošināti ar Stripe, piemēram, kuponu apstrāde un rēķinu ģenerēšana.
 SSH, ieviests Laravel 4.1, ļauj programmēt CLI komandas izteiksmi uz attāliem serveriem, izmantojot Secure Shell (SSH) kā šifrētu tīkla protokolu.
 Scheduler, ieviests Laravel 5.0, ir papildinājums Artisan, kas ļauj programmēt plānošanu no periodiski izpildītiem uzdevumiem. Iekšēji Scheduler balstās uz cron dēmona, lai palaistu vienu Artisan darbu, kas savukārt izpilda konfigurētus uzdevumus.
 Flysystem, ieviests Laravel 5.0, ir failu sistēmas abstrakcijas slānis, kas ļauj vietējai failu sistēmai un mākoņu bastītam uzglabāšanas serverim, ieviests ar Amazon S3 un Rackspace Cloud , izmantot pārredzami un tādā pašā veidā.
 Socialite, ieviests Laravel 5.0 kā izvēles pakete, nodrošina vienkāršotus autentifikācijas mehānismus ar dažādiem Oauth sniedzējiem, ieskaitot Facebook, Twitter, Google, GitHub un Bitbucket.

Artisan CLI 
Laravel Artisan komandrindas saskarne (CLI- command-line interface) sākotnēji tika ieviesta Laravel 3 ar virkni ierobežotu iespēju. Laravel vēlāka nomainīšanās uz Composer bāzētu arhitektūru ļāva Artisan iekļaut dažādus Symfony ietvara komponentus, kā rezultātā Laravel 4 tika pieejamas papildu Artisan iezīmes.
Bieži izmantotie Artisan lietojumi ietver vadošo datu bāzu migrāciju un produkciju, publicējot paketes vērtību un radot tekstveidnes kodu jauniem kontrolieriem; tā atbrīvo izstrādātāju no pareiza koda radīšanas skeletons. Artisan funkcionalitāte un spējas iespējams arī paplašināt, ieviešot jaunas pielāgotas komandas, kuras, piemēram, var tikt izmantotas, lai automatizētu lietojumprogrammas specifiku, atkārtojot uzdevumus.

Konferences 

Laracon ir konference, kas centrēta ap Laravel ietvaru, aptverot tā attīstību, lietojumus un saistītas vispārējās programmatūras izstrādes praksi. Laracon konference notiek gan ASV, gan Eiropā, galvenokārt organizēta ar UserScape sponsoru atbalstu. Līdz 2016. gadam ir notikušas sekojošas Laracon konferences:

Piezīmes 
PHP 5.3.7 vai jaunākai versijai ir nepieciešama Laravel 4.1 versija un vecāka versija, Laravel 4.2 un 5.0 vajadzīgs vismaz PHP 5.4, bet Laravel 5.1 prasa PHP 5.5.9 vai jaunāku.

Atsauces

Papildu informācija 
Laravel Design Patterns and Best Practices, Packt, , July 2014, by Arda Kılıçdağı and H. İbrahim Yilmaz

Ārējās saites 
 Oficiālā mājaslapa, pirmkods un GitHub.
 Sāc strādāt ar Laravel- programmēšanas piemēri.
 Laravel palīglapa — īso piezīmju kolekcija
 Laravel 5.0

PHP ietvari