menu
 

Laravel

  1. Home
  2. /
  3. Informatie
  4. /
  5. Laravel

Laravel is een webframework voor de programmeertaal PHP. Het is tegenwoordig het meest gebruikte PHP-framework. Dit populaire framework is in 2011 ontwikkeld door Taylor Otwell. De nieuwste versie, Laravel 8, is uitgebracht in september 2020.

Het ontstaan van Laravel

Taylor Otwell ontwikkelde Laravel op basis van een reeds bestaand webframework: Symfony. De gedachtegang van deze nieuwe ontwikkeling was om de functionaliteit van een ander PHP-framework, genaamd CodeIgniter, te evenaren. In tegenstelling tot CodeIgniter ondersteunde Laravel functies zoals autorisatie en authenticatie in de eerste versie.

Otwell heeft veel tijd besteed aan het goed documenteren van het framework. Laravel wordt beschouwd als een van de best gedocumenteerde PHP-frameworks, wat ook aanzienlijk heeft bijgedragen aan de populariteit.

Licenties en ontwikkeling

De broncode van het framework staat op GitHub en wordt gedistribueerd onder de MIT-licentie, dus het framework is open source en kan onder elke licentie worden gedistribueerd. Dit maakt gebruik in niet-open source software mogelijk.

Laravel 4 zag de eerste grote veranderingen in het webframework. De focus lag vooral op een goede integratie van de PHPUnit-tests. Bovendien zou over het algemeen een betere testbaarheid van de Laravel-functies moeten worden toegevoegd om functionaliteit te kunnen garanderen. En om installaties te vereenvoudigen, werd besloten om gebruik te maken van pakketbeheersystemen. Hierbij werd vooral gebruik gemaakt van het toepassingsgerichte pakketbeheersysteem Composer, dat wordt beschouwd als de standaard op het gebied van PHP-ontwikkeling.

Ontwikkelen met Laravel

Zoals eerder vermeld, is Laravel een PHP-framework. Frameworks kenmerken zich door een aantal nuttige en toepassingsspecifieke functies die gebundeld en beschikbaar zijn. Deze bundeling wordt in de programmeerwereld een library genoemd. Bepaalde modules hoeven niet in eigen beheer ontwikkeld te worden, maar zijn altijd toegankelijk en bruikbaar. Laravel biedt bijvoorbeeld functies voor eenvoudige middleware en routing. Maar ook functies voor databaseverbindingen (ORM) en taakwachtrijen (queues), evenals een architectuurspecificatie genaamd MVC (Model-View-Controller) worden meegeleverd.

Laravel is perfect te combineren met andere software. Het kan bijvoorbeeld worden gebruikt in samenspraak met Magento, Shopware of Wordpress, door middel van de API.

MVC-patroon

Dit is een architectonisch patroon voor de logische weergave van de programmacode. Dit gebeurt met behulp van het model-view-controller-patroon, vandaar de naam MVC. De programmacode is logisch onderverdeeld in:

  • Datamodel (model)
  • Applicatielogica (controller)
  • Datapresentatie (view).

Dit heeft het voordeel van de integriteit van de gegevens en een duidelijke scheiding van logica. Laravel biedt kant-en-klare oplossingen voor elk van deze gebieden. Er zijn modelklassen die verbindingen met databases, relaties en attribuutbeheer mogelijk maken. De controllers kunnen in de routing worden geïntegreerd en bieden validatie en authenticatie. Op weergaveniveau biedt Laravel veel nuttige vereenvoudigingen met zijn eigen sjabloontaal Blade.

Routing

PHP biedt al een gemakkelijk leesbare implementatie van URL-routering. Door Laravel te gebruiken is de routing nu logisch gescheiden van de rest van de programmacode en biedt bovendien nog betere leesbaarheid en talloze configuratie-opties. Inclusief het gebruik van zogenaamde middleware.

Opgemerkt moet worden dat het MVC-patroon wordt aanbevolen, maar niet absoluut noodzakelijk. Voor kleinere pagina's zijn er bijvoorbeeld eenvoudige manieren om de stap van het model en de controller over te slaan:

Route::get('/', function () {
   return view('welcome');
});

Queues

Voor complexere webapplicaties zijn vaak complexere berekeningen nodig, die asynchroon kunnen plaatsvinden. Om paginaweergaven goed te laten presteren, biedt Laravel een kant-en-klare takenwachtrij, die gemakkelijk kan worden gebruikt. De ontwikkelaars kunnen taken schrijven die worden verwerkt door 'queue workers' met een breed scala aan parameters.

Veiligheid

Met de hulp van Laravel kan beveiliging eenvoudig worden geïntegreerd. Het framework biedt hash-functies en salt-cryptografie voor wachtwoorden. Dit voorkomt dat wachtwoorden in platte tekst worden opgeslagen. Laravel vermijdt ook SQL-injecties. De SQL-functies zijn al zo ontworpen dat deze mogelijkheid tot aanvallen standaard wordt voorkomen. CSRF-aanvallen en XSS-injecties kunnen ook gemakkelijk worden voorkomen, mits juist geimplementeerd. Versleuteling voor sessies of cookies is ook standaard geïntegreerd en geactiveerd.

Databases

Met Laravel is het mogelijk om meerdere databaseverbindingen op te zetten. Dit is met name handig wanneer het systeem gegevens uit veel verschillende databases haalt en ook wanneer de gebruikte databasesystemen van verschillende typen zijn. Een voorbeeld hiervan is het gebruik van MySQL op het productiesysteem en een 'in-memory' sqlite-database in een testomgeving.

Testen

Laravel biedt twee soorten testen:

  • unit testing
  • feature testing

Met unit tests kunnen individuele stukken code eenvoudig worden getest door de PHPUnit functionaliteit uit te breiden. Feature tests testen de volledige levenscyclus van een aanvraag en simuleren bijvoorbeeld volledige toegang door één bezoeker. Laravel biedt hier ook een kant-en-klare testsuite aan, die eenvoudig kan worden aangepast.

Op zoek naar een webontwikkelaar?

Kies voor kwaliteit, zowel in code als communicatie.