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:

  1. Elegantan sintaks: Laravel je poznat po svom čistom i razumljivom sintaksu koji poboljšava produktivnost programera.
  2. MVC arhitektura: Razdvajanje aplikacije na model, prikaz i kontroler pomaže u organizaciji koda i održavanju.
  3. Ugrađeni alati: Laravel dolazi s mnoštvom alata kao što su Artisan CLI, Eloquent ORM, Blade templating engine, i mnogi drugi.
  4. Sigurnost: Laravel pruža robustan sustav za autentifikaciju i autorizaciju, zaštitu od CSRF (Cross-Site Request Forgery) i XSS (Cross-Site Scripting) napada.
  5. 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.

Odgovori

Vaša adresa e-pošte neće biti objavljena. Obavezna polja su označena sa * (obavezno)

Kontaktirajte nas

Ispunite obrazac ispod i mi ćemo Vas kontaktirati. Na sve upite stojimo odgovoriti u roku od 24 sata radnim danima.