Laravel 11, modern PHP geliştirme için en güçlü ve popüler framework'lerden biridir. MVC (Model-View-Controller) mimarisini temel alarak geliştirilmiş olan Laravel, uygulamaların hızlı ve verimli bir şekilde geliştirilmesini sağlar. Bu makalede, Laravel 11'in temel yapısını ve nasıl çalıştığını detaylı bir şekilde inceleyeceğiz.
Diğer laravel 11 dersleri için sitemizi ve youtube kanalımızı takip edin.
Şafak Saraçoğlu YouTube | Laravel 11 Eğitim Seti
Laravel projeleri belirli bir dosya yapısı ile gelir. Bu yapıyı anlamak, projenizi daha kolay geliştirmenizi ve yönetmenizi sağlar. Laravel’in temel klasörleri şunlardır:
Controllers
, Middleware
, ve Requests
gibi HTTP istekleriyle ilişkili sınıfları içerir.cache
klasörü, uygulamanın hızlandırılması için kullanılır.index.php
dosyası, Laravel’in giriş noktasıdır.web.php
ve api.php
dosyaları, sırasıyla web ve API rotalarını içerir.Laravel, MVC (Model-View-Controller) mimarisini kullanır. Bu yapı, uygulamanın farklı sorumluluklara sahip üç ana bileşeni içerir:
Örnek bir model:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
// Bu model, veritabanındaki "posts" tablosunu temsil eder
}
Örnek Blade dosyası (resources/views/welcome.blade.php
):
<!DOCTYPE html>
<html>
<head>
<title>Laravel 11</title>
</head>
<body>
<h1>{{ $title }}</h1>
<p>Bu, Laravel 11 ile oluşturulmuş bir sayfadır.</p>
</body>
</html>
Örnek bir Controller sınıfı:
namespace App\Http\Controllers;
use App\Models\Post;
use Illuminate\Http\Request;
class PostController extends Controller
{
public function index()
{
// Veritabanındaki tüm post'ları al ve "posts.index" görünümüne ilet
$posts = Post::all();
return view('posts.index', ['posts' => $posts]);
}
}
Laravel'de yönlendirme, gelen HTTP isteklerini doğru Controller fonksiyonlarına yönlendirmek için kullanılır. routes/web.php
dosyasında web tabanlı rotalar tanımlanır. API istekleri için ise routes/api.php
dosyası kullanılır.
Örnek bir rota tanımı:
use App\Http\Controllers\PostController;
Route::get('/posts', [PostController::class, 'index']);
Bu rota, /posts
URL'sine yapılan bir GET isteğini PostController
sınıfındaki index
metoduna yönlendirecektir.
Middleware, bir HTTP isteği uygulamaya girmeden önce veya yanıt gönderilmeden önce belirli işlemler gerçekleştiren katmanlardır. Laravel'de kimlik doğrulama, giriş kontrolü gibi işlemler Middleware ile yapılır.
Örnek bir Middleware kullanımı:
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware('auth');
Bu rota, auth
middleware'ini kullanarak sadece kimliği doğrulanmış kullanıcılara dashboard sayfasını gösterir.
Laravel’in Eloquent ORM yapısı, veritabanı tablolarını nesne olarak temsil etmeyi ve ilişkileri kolayca yönetmeyi sağlar. Eloquent ile basit bir sorgu şu şekilde yapılabilir:
// Tüm kullanıcıları getir
$users = App\Models\User::all();
// ID'si 1 olan kullanıcıyı getir
$user = App\Models\User::find(1);
Eloquent aynı zamanda bir veritabanı kaydı ile diğerlerini ilişkilendirme konusunda güçlüdür. Örneğin, bir yazının yorumlarını şu şekilde alabilirsiniz:
// Yazının yorumlarını al
$post = App\Models\Post::find(1);
$comments = $post->comments;
Blade, Laravel’in basit ama güçlü bir şablon motorudur. Blade ile dinamik verileri sayfalarınıza kolayca ekleyebilir, koşullu ifadeler ve döngüler kullanabilirsiniz.
Örnek Blade şablonu:
<h1>{{ $title }}</h1>
@if($posts->isEmpty())
<p>Gösterilecek yazı yok.</p>
@else
<ul>
@foreach($posts as $post)
<li>{{ $post->title }}</li>
@endforeach
</ul>
@endif
Laravel’in güçlü komut satırı aracı Artisan, çeşitli geliştirme işlemlerini hızlandırır. Artisan ile kontrolörler, modeller, migrasyonlar ve daha fazlasını oluşturabilirsiniz.
Bazı yaygın Artisan komutları:
Projeyi yerel bir sunucuda çalıştırmak için:
php artisan serve
Yeni bir kontrolör oluşturmak için:
php artisan make:controller PostController
Yeni bir veritabanı migrasyonu oluşturmak için:
php artisan make:migration create_posts_table
Laravel’de veritabanı yapıları migration dosyaları ile yönetilir. Migrasyonlar, veritabanı tablolarının oluşturulmasını ve değiştirilmesini kolaylaştırır. Aşağıda bir migration dosyasının örneği verilmiştir:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePostsTable extends Migration
{
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('posts');
}
}
Bu migrasyonu uygulamak için şu komut çalıştırılır:
php artisan migrate
Laravel 11, modern web geliştirme için güçlü bir temel sunar. MVC mimarisi, Eloquent ORM, Blade şablon motoru ve Artisan CLI gibi özellikleri ile geliştirme sürecini hızlandırır. Laravel'in sunduğu araçlar ve esnek yapı, projelerinizi daha organize ve sürdürülebilir hale getirir.