Laravel
Utvecklare | Taylor Otwell |
---|---|
Initial release | juni 2011 |
Stabil frisättning | |
Förvar | |
Skrivet i | PHP |
Typ | Web ramverk |
Licens | MIT-licens |
Hemsida |
Laravel är ett gratis PHP - webbramverk med öppen källkod , skapat av Taylor Otwell och avsett för utveckling av webbapplikationer enligt det arkitektoniska mönstret model-view-controller (MVC) och baserat på Symfony . Några av funktionerna i Laravel är ett modulärt förpackningssystem med en dedikerad beroendehanterare, olika sätt att komma åt relationsdatabaser , verktyg som hjälper till med applikationsdistribution och underhåll, och dess orientering mot syntaktisk socker .
Källkoden för Laravel är värd på GitHub och licensieras under villkoren för MIT License .
Historia
Taylor Otwell skapade Laravel som ett försök att tillhandahålla ett mer avancerat alternativ till CodeIgniter -ramverket, som inte tillhandahöll vissa funktioner som inbyggt stöd för användarautentisering och auktorisering . Laravels första betaversion gjordes tillgänglig den 9 juni 2011, följt av Laravel 1-släppet senare samma månad. Laravel 1 inkluderade inbyggt stöd för autentisering, lokalisering , modeller , vyer , sessioner , routing och andra mekanismer, men saknade stöd för kontroller som hindrade det från att vara ett riktigt MVC -ramverk.
Laravel 2 släpptes i september 2011, med olika förbättringar från författaren och communityn. Stora nya funktioner inkluderade stödet för kontroller, vilket gjorde Laravel 2 till ett helt MVC-kompatibelt ramverk, inbyggt stöd för inversion av kontroll (IoC) och ett mallsystem som heter Blade . Som en nackdel togs stöd för tredjepartspaket bort i Laravel 2.
Laravel 3 släpptes i februari 2012 med en uppsättning nya funktioner inklusive kommandoradsgränssnittet cmd (CLI) som heter Artisan , inbyggt stöd för fler databashanteringssystem , databasmigreringar som en form av versionskontroll för databaslayouter, stöd för hantering av händelser och ett paketeringssystem som heter Bundles . En ökning av Laravels användarbas och popularitet följde med lanseringen av Laravel 3.
Laravel 4, med kodnamnet Illuminate , släpptes i maj 2013. Det gjordes som en fullständig omskrivning av Laravel-ramverket, och migrerade dess layout till en uppsättning separata paket distribuerade via Composer , som fungerar som en pakethanterare på applikationsnivå . En sådan layout förbättrade utbyggbarheten för Laravel 4, som parades ihop med dess officiella vanliga releaseschema som sträckte sig över sex månader mellan mindre punktsläpp . Andra nya funktioner i Laravel 4-versionen inkluderar databassådd för den initiala populationen av databaser, stöd för meddelandeköer , inbyggt stöd för att skicka olika typer av e-post och stöd för fördröjd radering av databasposter som kallas mjuk radering .
Laravel 5 släpptes i februari 2015 som ett resultat av interna förändringar som slutade med att numrera om den då framtida Laravel 4.3-utgåvan. Nya funktioner i Laravel 5-utgåvan inkluderar stöd för att schemalägga periodiskt körda uppgifter genom ett paket som heter Scheduler , ett abstraktionslager som heter Flysystem som tillåter fjärrlagring att användas på samma sätt som lokala filsystem , förbättrad hantering av pakettillgångar genom Elixir , och förenklad externt hanterad autentisering genom den valfria Socialite paket. Laravel 5 introducerade också en ny intern katalogträdstruktur för utvecklade applikationer.
Lumen 5.0 är den första utgåvan av Lumen-ramverket, ett ljusderivat av Laravel optimerat för hastighet. Den här första utgåvan är baserad på Laravel 5.x-serien av PHP-komponenter, och följande versioner återspeglar Laravel-versionerna som den delar gemensam infrastruktur med. Från och med 2022 rekommenderar författarna inte längre användningen av Lumen för att få dessa fördelar, utan marknadsför Laravel Octane istället.
Laravel 5.1, som släpptes i juni 2015, var den första utgåvan av Laravel som fick långsiktigt stöd (LTS). Nya LTS-versioner planerades för en vartannat år.
Laravel 5.3 släpptes den 23 augusti 2016. De nya funktionerna i 5.3 är fokuserade på att förbättra utvecklarhastigheten genom att lägga till ytterligare förbättringar för vanliga uppgifter.
Laravel 5.4 släpptes den 24 januari 2017, med många nya funktioner som Laravel Dusk, Laravel Mix, Blade Components and Slots, Markdown Emails, Automatic Facades, Route Improvements, Higher Order Messaging for Collections och många andra.
Laravel 6 släpptes den 3 september 2019, skiftar generering av blueprint-kod, introducerar semantisk versionering, kompatibilitet med Laravel Vapor, förbättrade auktoriseringssvar, förbättrad jobbmellanvara, lata samlingar och förbättringar av underfrågor. Den främre ställningen togs bort från huvudpaketet och flyttades in i laravel/ui-paketet.
Laravel 7 släpptes den 3 mars 2020, med nya funktioner som Laravel Sanctum, Custom Eloquent Casts, Blade Component Tags, Fluent String Operations och Route Model Binding Improvements.
Laravel 8 släpptes den 8 september 2020, med nya funktioner som Laravel Jetstream, modellfabriksklasser, migration squashing, Tailwind CSS för sidvisningsvyer och andra användbarhetsförbättringar.
Laravel 9 släpptes den 8 februari 2022.
Laravel 10 är planerad att släppas den 14 februari 2023.
Releasehistorik
Versioner betecknade LTS stöddes med buggfixar i 2 år och säkerhetsfixar i 3 år. Andra versioner stöddes med buggfixar i 6 månader och säkerhetskorrigeringar i 1 år. Från och med version 8 släpps större versioner årligen, och supportens tidslinje är: buggfixar i 18 månader och säkerhetsfixar i 2 år, för alla utgåvor. För ytterligare bibliotek är det bara den senaste större utgåvan som får buggfixar.
Version | Utgivningsdatum | PHP-version |
---|---|---|
1.0 | juni 2011 | |
2.0 | september 2011 | |
3.0 | 22 februari 2012 | |
3.1 | 27 mars 2012 | |
3.2 | 22 maj 2012 | |
4.0 | 28 maj 2013 | ≥ 5.3.0 |
4.1 | 12 december 2013 | ≥ 5.3.0 |
4.2 | 1 juni 2014 | ≥ 5.4.0 |
5.0 | 4 februari 2015 | ≥ 5.4.0 |
5.1 LTS | 9 juni 2015 | ≥ 5.5.9 |
5.2 | 21 december 2015 | ≥ 5.5.9 |
5.3 | 23 augusti 2016 | ≥ 5.6.4 |
5.4 | 24 januari 2017 | ≥ 5.6.4 |
5,5 LTS | 30 augusti 2017 | ≥ 7.0.0 |
5.6 | 7 februari 2018 | ≥ 7.1.3 |
5.7 | 4 september 2018 | ≥ 7.1.3 |
5.8 | 26 februari 2019 | ≥ 7.1.3 |
6 LTS | 3 september 2019 | 7,2 – 8,0 |
7 | 3 mars 2020 | 7,2 – 8,0 |
8 | 8 september 2020 | 7,3 – 8,1 |
9 | 8 februari 2022 | 8,0 – 8,1 |
10 | 14 februari 2023 | ≥ 8,1 |
11 | Q1 2024 | ≥ 8,2 |
Källa: Laravel
Funktioner
Följande funktioner fungerar som Laravels nyckeldesignpunkter (där det inte anges specifikt, hänvisar beskrivningarna till funktionerna i Laravel 3):
- Bundles tillhandahåller ett modulärt förpackningssystem sedan lanseringen av Laravel 3, med buntade funktioner som redan är tillgängliga för enkelt tillägg till applikationer. Dessutom använder Laravel 4 Composer som en beroendehanterare för att lägga till ramagnostiska och Laravel-specifika PHP-paket tillgängliga från Packagist -förrådet.
- Eloquent ORM ( objektrelationell mappning ) är en avancerad PHP-implementering av det aktiva postmönstret , som samtidigt tillhandahåller interna metoder för att upprätthålla begränsningar för relationerna mellan databasobjekt . Efter det aktiva postmönstret presenterar Eloquent ORM databastabeller som klasser , med deras objektinstanser knutna till enstaka tabellrader .
- Frågebyggaren , tillgänglig sedan Laravel 3, ger ett mer direkt databasåtkomstalternativ till Eloquent ORM. Istället för att kräva att SQL-frågor skrivs direkt, tillhandahåller Laravels frågebyggare en uppsättning klasser och metoder som kan bygga frågor programmatiskt. Det tillåter också valbar cachelagring av resultaten av körda frågor.
- Applikationslogik är en integrerad del av utvecklade applikationer, implementerad antingen med hjälp av styrenheter eller som en del av ruttdeklarationerna. Syntaxen som används för att definiera applikationslogik liknar den som används av Sinatra - ramverket.
- Omvänd routing definierar ett förhållande mellan länkarna och rutterna, vilket gör det möjligt för senare ändringar av rutter att automatiskt spridas till relevanta länkar. När länkarna skapas med hjälp av namn på befintliga rutter skapas lämpliga enhetliga resursidentifierare (URI) automatiskt av Laravel.
- Vilsamma kontroller tillhandahåller ett valfritt sätt att separera logiken bakom att betjäna HTTP GET- och POST -förfrågningar.
- Klass automatisk laddning ger automatisk laddning av PHP-klasser utan behov av manuellt underhåll av inkluderingsvägar. On-demand-laddning förhindrar inkludering av onödiga komponenter, så endast de faktiskt använda komponenterna laddas.
- Vykompositörer . fungerar som anpassningsbara logiska kodenheter som kan köras när en vy laddas
- Bladmallmotor kombinerar en eller flera mallar med en datamodell för att producera resulterande vyer, vilket gör det genom att transpilera mallarna till cachad PHP-kod för förbättrad prestanda . Blade tillhandahåller också en uppsättning av sina egna kontrollstrukturer som villkorliga uttalanden och loopar , som är internt mappade till deras PHP-motsvarigheter. Dessutom kan Laravel-tjänster anropas från Blade-mallar, och själva mallmotorn kan utökas med anpassade direktiv.
- IoC-behållare gör det möjligt för nya objekt att genereras genom att följa principen inversion of control (IoC), där ramverket anropar den applikations- eller uppgiftsspecifika koden, med valfri instansiering och referens till nya objekt som singletons .
- Migrationer tillhandahåller ett versionskontrollsystem för databasscheman , vilket gör det möjligt att associera ändringar i applikationens kodbas och nödvändiga ändringar i databasens layout. Som ett resultat förenklar den här funktionen driftsättning och uppdatering av Laravel-baserade applikationer.
- Databassådd ger ett sätt att fylla databastabeller med utvalda standarddata som kan användas för applikationstestning eller utföras som en del av den initiala applikationsinstallationen.
- Enhetstestning tillhandahålls som en integrerad del av Laravel, som i sig innehåller enhetstester som upptäcker och förhindrar regressioner i ramverket. Enhetstest kan köras via det medföljande kommandoradsverktyget för hantverkare .
- Automatisk paginering förenklar uppgiften att implementera paginering, och ersätter de vanliga manuella implementeringsmetoderna med automatiserade metoder integrerade i Laravel.
- Formulärbegäran är en funktion i Laravel 5 som fungerar som bas för validering av formulärinmatning av internt bindande händelseavlyssnare , vilket resulterar i automatiserat anrop av formulärvalideringsmetoderna och generering av det faktiska formuläret.
- Homestead - en virtuell Vagrant- maskin som förser Laravel-utvecklare med alla verktyg som behövs för att utveckla Laravel direkt ur lådan, inklusive Ubuntu , Gulp , Bower och andra utvecklingsverktyg som är användbara för att utveckla fullskaliga webbapplikationer.
- Lazy Collection - Den här funktionen i PHP-ramverket Laravel gör att du i första hand kan hantera stora mängder data, samtidigt som minnesanvändningen hålls låg. Dessutom, när du byter från alla ( _ till markören ( ), flyttas bara en uttrycksfull modell i minnet åt gången eftersom markören ( ) använder LazyCollection-instansen.
Förstapartspaket
Färdiga paket som tillhandahålls av Laravel genom Composer och Packagist inkluderar följande:
- Cashier , introducerad i Laravel 4.2, tillhandahåller ett gränssnitt för att hantera prenumerationsfaktureringstjänster som tillhandahålls av Stripe , såsom hantering av kuponger och generering av fakturor .
- Envoy , introducerad i Laravel 4.2, ger en ren, minimal syntax för att definiera vanliga uppgifter som du kör på dina fjärrservrar. Med hjälp av Blade-syntax kan du enkelt ställa in uppgifter för distribution, Artisan-kommandon och mer.
- Socialite , tillhandahåller förenklade mekanismer för autentisering med olika OAuth- leverantörer, inklusive Facebook , Twitter , Google , GitHub och Bitbucket .
- Passport , introducerat i Laravel 5.3, tillhandahåller en fullständig OAuth2- serverimplementering för din Laravel-applikation på några minuter.
- Scout , introducerad i Laravel 5.3, tillhandahåller en enkel, drivrutinsbaserad lösning för att lägga till fulltextsökning till dina Eloquent-modeller.
- Dusk , introducerad i Laravel 5.4, tillhandahåller ett uttrycksfullt, lättanvänt webbläsarautomatiserings- och test-API.
- Horizon , introducerad i Laravel 5.5, ger en visuell instrumentpanel och koddriven konfiguration för dina Laravel-drivna Redis- köer.
- Telescope , introducerat i Laravel 5.7, ger insikt i de förfrågningar som kommer in i din applikation, undantag, loggposter, databasfrågor, köade jobb, e-post, meddelanden, cache-operationer, schemalagda uppgifter, variabeldumpar och mer.
- Sanctum , introducerat i Laravel 7.0, tillhandahåller ett fjäderlätt autentiseringssystem för SPA:er (ensidiga applikationer), mobilapplikationer och enkla, tokenbaserade API:er. Först kallades det Laravel Airlock, det har bytt namn på grund av en varumärkestvist angående namnet "Airlock".
- Jetstream , introducerad i Laravel 8.0, vilket ger en applikationsställning för Laravel. Detta paket bygger effektivt på idén om UI-verktygen inbyggda i tidigare Laravel-applikationer som låter användaren välja mellan två alternativ, Livewire + Blade eller Inertia.js + Vue. Detta paket fungerar med Laravel Fortify. Det fanns en del kontroverser med Taylor Otwell- och Laravel-användare kort efter Laravels release på grund av att vissa trodde att gamla applikationsställningar förkastades till förmån för Jetstream. Sedan dess har det klarlagts att så inte är fallet.
- Fortify , introducerat i Laravel 8.0, tillhandahåller en applikationsställning för Laravel. Fortify används för att hantera hanteringen av typiska användaruppgifter, som bygger på typisk autentisering för att tillhandahålla saker som team och tvåfaktorsautentiseringsmekanismer. Paketet samarbetar nära med Laravel Jetstream. Fortify är något baserat på funktioner som ursprungligen skapades för Laravel Spark.
- Breeze, Laravel Breeze är en minimal, enkel implementering av alla Laravels autentiseringsfunktioner, inklusive inloggning, registrering, lösenordsåterställning, e-postverifiering och lösenordsbekräftelse. Laravel Breezes standardvylager består av enkla Blade-mallar utformade med Tailwind CSS. Breeze ger en underbar [ citat behövs ] startpunkt för att börja en ny Laravel-applikation.
Laravels kommandoradsgränssnitt (CLI), kallat Artisan , introducerades ursprungligen i Laravel 3 med en begränsad uppsättning möjligheter. Laravels senare migrering till en kompositörsbaserad arkitektur gjorde det möjligt för Artisan att införliva olika komponenter från Symfony- ramverket, vilket resulterade i tillgängligheten av ytterligare Artisan-funktioner i Laravel 4.
Funktionerna i Artisan är mappade till olika underkommandon i Artisan kommandoradsverktyg, vilket ger funktionalitet som hjälper till att hantera och bygga Laravel-baserade applikationer. Vanliga användningsområden för Artisan inkluderar hantering av databasmigreringar och -sådd, publicering av pakettillgångar och generering av standardkod för nya styrenheter och migreringar; det senare befriar utvecklaren från att skapa korrekta kodskelett . Funktionaliteten och kapaciteten hos Artisan kan också utökas genom att implementera nya anpassade kommandon, som till exempel kan användas för att automatisera applikationsspecifika återkommande uppgifter.
Konferenser
Laracon är den officiella Laravel-konferensen centrerad kring Laravel-ramverket, som täcker dess utveckling, användningar och relaterade allmänna mjukvaruutvecklingsämnen . Laracon har ägt rum i USA , Europa och online tidigare. Vanligtvis äger konferensen rum i USA och Europa varje år. 2017 var första året en Laracon hölls endast som ett onlineevenemang. 2018 var första året en Laracon hölls i Australien. Varje år har konferensen olika sponsorer och arrangörer, men Laravel, Laravel News och UserScape är vanligtvis de primära arrangörerna.
Medan de många Laracon-konferenserna officiellt körs, drivs ett antal andra konferenser under namnet Laravel Live. För närvarande hålls det årliga Laravel Live UK och Laravel Live India konferenser. Även om dessa inte drivs officiellt, har de Taylor Otwells tillåtelse att använda namnet Laravel.
Se även
- Jämförelse av webbramverk
- Jämförelse av webbmallmotorer
- October , ett innehållshanteringssystem byggt på Laravel
- Vue.js , ett front-end-ramverk som levereras som standard inom Laravel
- Hur man skapar ett kontaktformulär i Laravel 9 och lagrar formulärdata i MySQL-databasen
Vidare läsning
- Laravel Design Patterns and Best Practices, Packt, ISBN 978-1783287987 , juli 2014, av Arda Kılıçdağı och H. İbrahim Yilmaz