Uvod u Laravel: Moderni PHP Framework
Što je Laravel?
Laravel je open-source PHP framework za web razvoj, poznat po svojoj jednostavnosti, eleganciji i čitljivosti koda. Kreirao ga je Taylor Otwell 2011. godine kako bi programerima pružio kompletan okvir za razvoj web aplikacija, uključujući sve osnovne funkcionalnosti potrebne za izradu modernih web aplikacija. Laravel koristi MVC (Model-View-Controller) arhitekturu, što pomaže u organizaciji koda i olakšava održavanje aplikacija.
Zašto koristiti Laravel?
Laravel je dizajniran kako bi olakšao razvoj aplikacija pružajući set alata i resursa koji pojednostavljuju uobičajene zadatke kao što su autentifikacija, routing, sesije i keširanje. Neke od ključnih prednosti Laravela uključuju:
- Elegantan sintaks: Laravel je poznat po svom čistom i razumljivom sintaksu koji poboljšava produktivnost programera.
- MVC arhitektura: Razdvajanje aplikacije na model, prikaz i kontroler pomaže u organizaciji koda i održavanju.
- Ugrađeni alati: Laravel dolazi s mnoštvom alata kao što su Artisan CLI, Eloquent ORM, Blade templating engine, i mnogi drugi.
- Sigurnost: Laravel pruža robustan sustav za autentifikaciju i autorizaciju, zaštitu od CSRF (Cross-Site Request Forgery) i XSS (Cross-Site Scripting) napada.
- Komunita i podrška: Laravel ima veliku zajednicu koja pruža podršku, dokumentaciju i mnoštvo paketa koji proširuju osnovne funkcionalnosti.
Instalacija Laravela
Za instalaciju Laravela, potreban vam je Composer, PHP-ov alat za upravljanje paketima. Prvo, osigurajte da imate Composer instaliran. Zatim, otvorite terminal i pokrenite sljedeću naredbu:
composer global require laravel/installer
Ova naredba instalira Laravel instalacijski alat globalno na vašem sustavu. Nakon što je instalacija završena, možete kreirati novi Laravel projekt koristeći naredbu:
laravel new naziv_projekta
Ako radije koristite Composer izravno za instalaciju Laravel aplikacije, možete koristiti sljedeću naredbu:
composer create-project --prefer-dist laravel/laravel naziv_projekta
Osnovna Struktura Laravel Aplikacije
Nakon što je aplikacija kreirana, vaša projektna struktura će izgledati ovako:
- app/: Sadrži jezgreni kod aplikacije. Ovdje se nalaze kontroleri, modeli i ostale klase.
- bootstrap/: Sadrži datoteku
app.php
koja inicijalizira aplikaciju. - config/: Sadrži sve konfiguracijske datoteke za aplikaciju.
- database/: Sadrži migracije i “faktorie” za rad s bazom podataka.
- public/: Sadrži ulaznu točku aplikacije (
index.php
) i statičke datoteke kao što su slike, JavaScript i CSS. - resources/: Sadrži Blade template datoteke i druge resurse kao što su jezične datoteke.
- routes/: Sadrži sve definicije ruta za aplikaciju.
- storage/: Sadrži kompajlirane Blade predloške, sesije, cache i druge privremene datoteke.
- tests/: Sadrži testove za aplikaciju.
- vendor/: Sadrži sve Composer pakete.
Osnove Laravela
Routing
Routing u Laravelu omogućava definiranje URL ruta za vašu aplikaciju. Sve rute su definirane u datotekama unutar direktorija routes/
. Primjer jednostavne rute:
// routes/web.php Route::get('/pozdrav', function () { return "Pozdrav svima!"; });
Ova ruta odgovara na HTTP GET zahtjev za URL /pozdrav
i vraća tekst “Pozdrav svima!”.
Kontroleri
Kontroleri grupiraju logiku za rukovanje zahtjevima. Mogu se kreirati koristeći Artisan CLI:
php artisan make:controller PozdravController
Primjer kontrolera:
// app/Http/Controllers/PozdravController.php namespace App\Http\Controllers; use Illuminate\Http\Request; class PozdravController extends Controller { public function prikaziPozdrav() { return "Pozdrav iz kontrolera!"; } }
Zatim, definirajte rutu koja koristi ovaj kontroler:
// routes/web.php Route::get('/pozdrav', [PozdravController::class, 'prikaziPozdrav']);
Blade Templates
Blade je jednostavan, ali moćan templating engine koji dolazi s Laravelom. Omogućava korištenje običnog PHP-a u vašim predlošcima. Primjer Blade datoteke:
<!-- resources/views/pozdrav.blade.php --> <!DOCTYPE html> <html> <head> <title>Laravel Pozdrav</title> </head> <body> <h1>{{ $poruka }}</h1> </body> </html>
Zatim, u kontroleru možete vratiti ovaj pogled:
// app/Http/Controllers/PozdravController.php public function prikaziPozdrav() { $poruka = "Pozdrav svima!"; return view('pozdrav', compact('poruka')); }
Eloquent ORM
Eloquent je Laravelov ORM (Object-Relational Mapping) koji omogućava rad s bazama podataka pomoću modela. Kreirajmo primjer modela:
php artisan make:model Korisnik
Primjer modela:
// app/Models/Korisnik.php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Korisnik extends Model { use HasFactory; // Definiranje tablice povezane s modelom protected $table = 'korisnici'; }
Možete koristiti model za dohvaćanje podataka iz baze:
// app/Http/Controllers/PozdravController.php public function prikaziPozdrav() { $korisnici = Korisnik::all(); return view('pozdrav', compact('korisnici')); }
Migracije
Migracije omogućuju kreiranje i upravljanje bazom podataka. Kreirajmo migraciju:
php artisan make:migration create_korisnici_table
Primjer migracije:
// database/migrations/2023_06_07_000000_create_korisnici_table.php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateKorisniciTable extends Migration { public function up() { Schema::create('korisnici', function (Blueprint $table) { $table->id(); $table->string('ime'); $table->string('prezime'); $table->timestamps(); }); } public function down() { Schema::dropIfExists('korisnici'); } }
Pokrenite migraciju:
php artisan migrate
Zaključak
Laravel je moćan i fleksibilan framework za PHP web razvoj koji nudi širok spektar alata i funkcionalnosti za razvoj modernih web aplikacija. S njegovim čistim sintaksom, robusnom dokumentacijom i velikom zajednicom, Laravel je idealan izbor za razvoj različitih vrsta web projekata, od malih web stranica do velikih enterprise aplikacija. Nastavite istraživati Laravel dokumentaciju i eksperimentirajte s kodom kako biste maksimalno iskoristili mogućnosti ovog izvanrednog frameworka.