In deze artikel gaan we de bouwstenen van Laravel doorlopen en hoe we Laravel kunnen gebruiken om een klein project op te zetten.
Laravel is een krachtige en elegante PHP-webapplicatieframework dat onder ontwikkelaars enorme populariteit heeft gewonnen vanwege zijn eenvoud, veelzijdigheid en krachtige functies. Door de jaren heen is Laravel uitgegroeid tot het togo PHP-framework voor zowel grote als kleine projecten.
Vereisten: Aan de slag met Laravel
Voordat we ons storten op Laravel-ontwikkeling, moeten we ervoor zorgen dat we alle noodzakelijke tools en software hebben geïnstalleerd. Hier is wat we nodig hebben:
-
PHP. Laravel draait op PHP, dus de eerste stap is ervoor zorgen dat je PHP op je systeem hebt geïnstalleerd. Als je niet zeker weet of PHP geïnstalleerd is, open een terminal of opdrachtprompt en typ
php -v
. Als PHP geïnstalleerd is, zie je een versienummer. Zo niet, dan moet je het installeren.Om PHP in je machine te installeren hebben we een aantal opties:
Lokale installatie. Je kunt PHP direct op je computer installeren. Bezoek de PHP downloads pagina om de nieuwste versie voor je besturingssysteem te krijgen.
Laravel Homestead. Voor een meer gestroomlijnde setup, vooral als je nieuw bent in PHP-ontwikkeling, overweeg dan om Laravel Homestead te gebruiken. Homestead is een vooraf gepakte Vagrant-box die een complete ontwikkelomgeving voor Laravel biedt. Je kunt installatie instructies hier vinden.
-
Composer. Laravel gebruikt Composer voor afhankelijkheidsbeheer. Composer is de standaard PHP afhankelijkheidsmanager, en wordt breed gebruikt en goed gedocumenteerd.
-
Laravel Installer. Laravel kan wereldwijd worden geïnstalleerd op ons systeem met behulp van de Laravel Installer, een handige command-line tool die het proces van het maken van nieuwe Laravel-projecten stroomlijnt en vereenvoudigt. Om deze wereldwijd te installeren op uw systeem, volg deze stappen:
- Open een terminal of opdrachtprompt.
- Voer de volgende Composer-opdracht uit:
composer global require laravel/installer
Nadat de installatie is voltooid, zorg ervoor dat de globale bin-directory van Composer in uw systeem “PATH” staat, zodat u de
laravel
opdracht vanaf elke locatie kunt uitvoeren.Als u een lichtgewicht alternatief voor Homestead verkiest, kunt u misschien overwegen Laravel Herd. Herd is een Docker-gebaseerde lokale ontwikkelomgeving die specifiek is aangepast voor Laravel-projecten. U kunt meer informatie over Herd en hoe u het hier kunt installeren vinden.
Door uw ontwikkelomgeving in te stellen met PHP, Composer en de Laravel Installer (of alternatieven zoals Homestead of Herd te verkennen), bent u goed voorbereid om uw Laravel-reis te beginnen. In de volgende secties gaan we door het proces van het maken van een nieuw Laravel-project, het verkennen van de directorystructuur en het configureren van de ontwikkelomgeving.
Het instellen van een nieuw Laravel-project
Nu onze ontwikkelomgeving klaar is, is het tijd om een nieuw Laravel-project te maken. Om een nieuw, “leeg” project te maken, kunnen we de volgende terminalopdracht gebruiken:
composer create-project --prefer-dist laravel/laravel project-name
project-name
moet worden vervangen door de eigenlijke projectnaam. Deze opdracht downloadt de nieuwste versie van Laravel en stelt een nieuwe projectdirectory samen met alle noodzakelijke bestanden en afhankelijkheden.
Directorystructuur: Door een Laravel-project navigeren
Bij het maken van een nieuw Laravel-project, bevinden we ons in een goed georganiseerde directorystructuur. Het begrijpen van deze structuur is cruciaal voor effectieve Laravel-ontwikkeling. Hier zijn enkele belangrijke directories en hun doeleinden:
- app. Deze map bevat de kernlogica van onze applicatie, inclusief controllers, modellen en serviceproviders.
- bootstrap. De bootstrap- en configuratiebestanden van Laravel bevinden zich hier.
- config. Configuratiebestanden voor verschillende onderdelen van onze applicatie kunnen hier worden gevonden, waardoor we instellingen zoals databaseverbindingen en diensten kunnen vinden en aanpassen vanuit één punt in het project.
- Database. In deze map definiëren we onze database migraties en seeds die worden gebruikt door Laravel’s Eloquent ORM. Eloquent vereenvoudigt de databasebeheer.
- public. Publiek toegankelijke middelen zoals CSS, JavaScript en afbeeldingen behoren hier. Deze map bevat ook het toegangspunt voor onze applicatie, het
index.php
bestand. - resources. De ruwe, ongecompileerde middelen van onze applicatie, zoals Blade-templates, Sass en JavaScript, worden hier opgeslagen.
- routes. De routebesturing van Laravel wordt in deze map beheerd.
- storage. Tijdelijke en cachebestanden, evenals logboeken, worden hier opgeslagen.
- vendor. Composer beheert afhankelijkheden van ons project in deze map. Alle gedownloade bibliotheken zullen in deze map zijn.
Configuratie: Database-instellingen en Omgevingsvariabelen
Om onze databaseverbinding in te stellen, moeten we het .env
bestand in de hoofdmap van het project openen. Hier kunnen we het database type, host, gebruikersnaam, wachtwoord en de naam van de database opgeven. Dankzij Eloquent ORM ondersteunt Laravel meerdere databaseverbindingen, waardoor het veelzijdig is voor verschillende projectvereisten.
Begrijpen van het .env bestand
Het .env
bestand is waar we configuratiewaarden die specifiek zijn voor de omgeving definiëren, zoals databaseverbindingdetails, API-sleutels en andere instellingen. Laten we eens kijken naar een eenvoudig voorbeeld van wat je in een .env
bestand kunt aantreffen:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_database
DB_USERNAME=my_username
DB_PASSWORD=my_password
In dit voorbeeld:
DB_CONNECTION
specificeert het type database driver dat we gebruiken (zoals MySQL, PostgreSQL, SQLite).DB_HOST
specificeert de host waar ons databaseserver zich bevindt.DB_PORT
specificeert de poort waarop de databaseserver draait.DB_DATABASE
specificeert de naam van de database waar we mee willen verbinden.DB_USERNAME
enDB_PASSWORD
specificeren de gebruikersnaam en het wachtwoord dat nodig is om toegang te krijgen tot de database.
Gebruik van omgevingsvariabelen
Het is essentieel om gegevens zoals databasereferenties veilig te houden. Laravel beveelt het gebruik van omgevingsvariabelen aan om dit te bereiken. In plaats van onze referenties te hardcoderen in het .env
bestand, kunnen we ze in onze configuratiebestanden aanroepen.
Bijvoorbeeld, in onze Laravel configuratiebestanden (gelegen in de config/
directory), kunnen we de databaseconfiguratie zo opvragen:
'mysql' => [
'driver' => env('DB_CONNECTION', 'mysql'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
// ...
],
Hier haalt de env()
functie de waarde van de opgegeven omgevingsvariabele op uit het .env
bestand. Als de variabele niet gevonden wordt, valt het terug op een standaardwaarde die als tweede argument wordt meegegeven.
Door configuratiebestanden te gebruiken, kunnen we gevoelige gegevens op een veiligere locatie opslaan en gemakkelijk configuraties tussen omgevingen (zoals ontwikkeling en productie) wisselen.
Met ons Laravel project aangemaakt, directories georganiseerd en database geconfigureerd, zijn we klaar om aan de slag te gaan met het bouwen van onze webapplicatie. In de volgende secties zullen we ons richten op routing, controllers en het werken met Blade templates voor onze frontend weergaven.
Routing, Controllers en Weergaven: Het Hart van Je Laravel Applicatie
In Laravel werken routing, controllers en weergaven samen om HTTP-verzoeken af te handelen en dynamische webpagina’s weer te geven. Het begrijpen van deze concepten is essentieel voor het creëren van webapplicaties met Laravel.
Kort gezegd, worden HTTP-verzoeken ontvangen door de router, die vervolgens weet welke controller de actie moet afhandelen. De controller is verantwoordelijk voor het verwerken van de informatie en het tonen van de verwerkte informatie via weergaven.
Routing
In Laravel kunnen we routes definiëren in het routes/web.php
bestand. Een basisroute-definitie ziet er zo uit:
Route::get('/welcome', function () {
return view('welcome');
});
Dit voorbeeld stelt een route in die, wanneer geopend, de welcome
weergave retourneert. Routes kunnen ook worden gebruikt om controlleracties aan te roepen, zoals weboven hebben genoemd, waardoor we de code efficiënter kunnen organiseren.
Het maken van een controller
Controllers dienen als de brug tussen onze routes en de logica van ons toepassing. Om een controller te maken, kunnen we de make:controller
opdracht gebruiken:
php artisan make:controller YourControllerName
Onze nieuwe controller bevat methoden die corresponderen met verschillende acties in onze toepassing, zoals het weergeven van een pagina of het verwerken van formuliergegevens.
Weergaven en Blade-templates
Weergaven in Laravel zijn verantwoordelijk voor het presenteren van de gegevens van onze toepassing aan gebruikers. Out-of-the-box gebruikt Laravel een sjabloonengine genaamd Blade, die de creatie van dynamische, herbruikbare weergaven vereenvoudigt. Hier is een voorbeeld van het renderen van een weergave in een controller-methode:
public function index()
{
$data = ['name' => 'John'];
return view('welcome', $data);
}
In dit voorbeeld wordt de welcome
weergave met gegevens weergegeven, in dit geval wordt 'name'
erin doorgegeven.
Blade is een zeer krachtige sjabloonengine die dynamisch content mogelijk maakt via voorwaardelijke verklaringen, lussen, enzovoort.
Database Migratie en Seederen
Laravel’s database migration en seeding systeem stelt ons in staat om ons database schema te definiëren en het te vullen met initiële gegevens. We kunnen migraties bekijken als versie-beheerde databasewijzigingen en seeden als het proces van het toevoegen van voorbeeldgegevens.
Migraties en seeding zijn super krachtige concepten die consistentie in databases over omgevingen mogelijk maken.
Om een migratie te maken, kunnen we het make:migration
commando gebruiken:
php artisan make:migration create_table_name
Vervolgens kunnen we het gegenereerde migratiefile bewerken om ons tabelstructuur te definiëren en vervolgens Artisan gebruiken om de migratie uit te voeren:
php artisan migrate
Seeden wordt vaak gebruikt om tabellen te vullen met initiële gegevens voor testen en ontwikkeling. Om seeders te maken kunnen we het make:seeder
commando gebruiken en ze uitvoeren met:
php artisan db:seed
Het maken van Modellen voor Database-Interactie
Laravel’s Eloquent ORM vereenvoudigt database-interacties door ons in staat te stellen om te werken met databases alsof ze objecten zijn. Om een model te maken, gebruiken we het make:model
commando:
php artisan make:model YourModelName
Definieer de tabel en relaties in het model om gemakkelijke gegevensophaal en manipulatie mogelijk te maken. Bijvoorbeeld, om alle records op te halen uit een users
tabel:
$users = YourModelName::all();
Met al deze kennis in huis, met inbegrip van routing, controllers, views, database migratie, seeding en modellen, zijn we goed op weg om dynamische webapplicaties te bouwen met Laravel. In de volgende secties gaan we dieper in op het maken van een eenvoudige CRUD-applicatie en het verkennen van meer geavanceerde Laravel-functies.
Het maken van een Eenvoudige CRUD-Applicatie in Laravel
Laten we onze Laravel-reis naar het volgende niveau nemen door een CRUD-applicatie te bouwen – in dit geval, een eenvoudig boekregistratie-applicatie, waar we boeken kunnen aanmaken, lezen, bijwerken en verwijderen. Deze praktische oefening helpt ons te begrijpen hoe we CRUD-operaties in Laravel kunnen implementeren.
Vanwege de grootte van dit artikel zullen we ons concentreren op het maken van alleen de eerste pagina van de applicatie, dus het is aan jou om dit project af te maken!
Stap 1: Maak een migratie voor de boeken tabel
Om een migratie voor de boeken
tabel te genereren, gebruiken we het volgende commando:
php artisan make:migration create_books_table
Dit commando genereert een migratiebestand voor het aanmaken van de boeken
tabel in de database. Vervolgens bewerk je het zojuist gegenereerde migratiebestand (database/migrations/YYYY_MM_DD_create_books_table.php
) om de tabelstructuur te definiëren:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBooksTable extends Migration
{
public function up()
{
Schema::create('books', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('author');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('books');
}
}
In dit migratiebestand definiëren we de structuur van de boeken
tabel, inclusief de kolommen (id
, titel
, auteur
, timestamps
). Dan willen we de migratie uitvoeren om de tabel te creëren:
php artisan migrate
Dit commando voert het migratiebestand uit en creëert de boeken
tabel in de database.
Stap 2: Maak een seeder voor de boeken tabel
Vervolgens willen we een seeder genereren voor de boeken
tabel om deze te vullen met enkele initiële gegevens:
php artisan make:seeder BooksTableSeeder
Dit commando genereert een seederbestand voor het vullen van de boeken
tabel met initiële gegevens.
Bewerk het seederbestand (database/seeders/BooksTableSeeder.php
) om voorbeeldboekgegevens te definiëren:
use Illuminate\Database\Seeder;
class BooksTableSeeder extends Seeder
{
public function run()
{
DB::table('books')->insert([
['title' => 'Book 1', 'author' => 'Author A'],
['title' => 'Book 2', 'author' => 'Author B'],
['title' => 'Book 3', 'author' => 'Author C'],
]);
}
}
In deze seeder-bestand definiëren we voorbeeldboekgegevens die worden ingevoegd in de books
tabel. In dit specifieke geval creëren we boeken van 1 tot 3 en auteurs van A tot C.
Voer de seeder uit om de books
tabel te vullen:
php artisan db:seed --class=BooksTableSeeder
Deze opdracht voert het seeder-bestand uit en vult de books
tabel met de gedefinieerde voorbeeldgegevens.
Stap 3: Maak een controller
Genereer een controller voor het beheren van boeken:
php artisan make:controller BookController
Deze opdracht genereert een controller-bestand (BookController.php
) dat methoden bevat voor het afhandelen van CRUD-operaties met betrekking tot boeken. Met de controller gemaakt, richten we ons op het implementeren van CRUD-methoden in de BookController
. Het bevindt zich in app/Http/Controllers/BookController.php
:
use App\Book; // Importeer het Book model
public function index()
{
$books = Book::all();
return view('books.index', compact('books'));
}
public function create()
{
return view('books.create');
}
public function store(Request $request)
{
$book = new Book;
$book->title = $request->input('title');
$book->author = $request->input('author');
$book->save();
return redirect()->route('books.index');
}
// Implementeer edit, update, show en delete methoden op gelijke wijze
In dit controller-bestand definiëren we methoden voor het afhandelen van CRUD-operaties met betrekking tot boeken. Bijvoorbeeld, de index
methode haalt alle boeken uit de database op en stuurt ze door naar de index
weergave, terwijl de store
methode een nieuw boekrecord creëert op basis van de ingediende gegevens via een formulier. De create()
methode is verantwoordelijk voor het weergeven van het formulier voor het maken van een nieuw boekrecord. Wanneer een gebruiker naar de route gaat die geassocieerd is met deze methode, zal Laravel deze functie uitvoeren en een weergave genaamd books.create
teruggeven.
Stap 4: Maak weergaven
Maak weergaves aan voor het weergeven, creëren en bewerken van boeken in de map resources/views
.
Voorbeeld View (create.blade.php
):
@extends('layout')
@section('content')
<h1>Create a New Book</h1>
<form method="POST" action="{{ route('books.store') }}">
@csrf
<div class="form-group">
<label for="title">Title</label>
<input type="text" name="title" class="form-control" id="title" placeholder="Enter book title">
</div>
<div class="form-group">
<label for="author">Author</label>
<input type="text" name="author" class="form-control" id="author" placeholder="Enter author name">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
<a href="{{ route('books.index') }}">Back to the list</a>
@endsection
In dit voorbeeld bevat de create
weergave een formulier voor het toevoegen van een nieuw boek. Het formulier verzendt gegevens naar de store
methode van de BookController
. De @csrf
instructie genereert een CSRF-token om tegen cross-site request forgery te beschermen.
Met dit voorbeeld kun je zelf de methoden en weergaven van de controller implementeren voor de rest van de CRUD-bewerkingen, dus aan de slag!
Conclusie
In dit artikel hebben we gekeken naar de basisprincipes van een Laravel-toepassing: hoe we de command line kunnen gebruiken om ons te helpen bij het bouwen van een toepassing, de structuur van een Laravel-toepassing en hoe we een CRUD-toepassing in Laravel kunnen maken.
I hope this article was useful and that you’re now capable of using Laravel to create your applications and expand the information here with more advanced topics. More information on Laravel can be found at the official Laravel website.
Source:
https://www.sitepoint.com/laravel-project-setup-beginners-guide/