Laravel’de Blog Uygulaması Geliştirme

Laravel, PHP tabanlı modern ve güçlü bir web uygulama geliştirme framework’üdür. MVC (Model-View-Controller) yapısını kullanarak, temiz ve düzenli kod yazmaya olanak sağlar. Blog uygulamaları, Laravel ile öğrenmeye başlamak için ideal projelerdendir. Bu yazıda, Laravel kullanarak basit bir blog uygulamasını adım adım nasıl geliştirebileceğinizi anlatacağım.

1. Laravel Projesini Kurmak

Adım 1: Laravel Projesini Yükleyin

İlk olarak Laravel’i Composer aracılığıyla kurmanız gerekiyor. Terminale şu komutu girin:

composer create-project --prefer-dist laravel/laravel blog

Bu komut, blog adında bir Laravel projesi oluşturacaktır.

Adım 2: Geliştirme Sunucusunu Başlatın

Kurulum tamamlandıktan sonra, projenizin kök dizinine gidin ve Laravel’in yerleşik sunucusunu başlatın:

php artisan serve

Artık http://localhost:8000 adresinde çalışır bir Laravel uygulamanız var.

2. Blog Veritabanı Yapısını Hazırlama

Adım 1: Veritabanını Ayarlayın

.env dosyanızda veritabanı ayarlarını yapılandırın. Örnek bir yapılandırma şöyle olabilir:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=

Adım 2: Blog Tablosunu Oluşturmak

Blog yazılarınızı saklamak için bir tabloya ihtiyacınız var. Laravel, migration komutlarıyla kolayca tablo oluşturmanızı sağlar. Terminalde şu komutu çalıştırın:

php artisan make:migration create_posts_table

Oluşturulan migration dosyasını database/migrations dizininde bulabilirsiniz. Migration dosyanızın içini şu şekilde güncelleyin:

Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('body');
$table->timestamps();
});

Daha sonra, migration’ı çalıştırarak tabloyu veritabanınıza ekleyin:

php artisan migrate

3. Model ve Controller Oluşturma

Adım 1: Post Modelini Oluşturun

Model, veritabanı ile etkileşim kuran bir bileşendir. Post modelini oluşturmak için şu komutu çalıştırın:

php artisan make:model Post

Adım 2: Post Controller’ı Oluşturun

Controller, gelen istekleri işler ve kullanıcıya gerekli yanıtları döner. Post modelimiz için bir controller oluşturalım:

php artisan make:controller PostController --resource

Bu komut, PostController’ı app/Http/Controllers dizinine ekler ve blog yazılarımızla ilgili CRUD (Oluştur, Oku, Güncelle, Sil) işlemlerini gerçekleştirmemize yardımcı olur.

4. Blog Fonksiyonlarını Oluşturma

Adım 1: Post Ekleme (Create)

PostController içerisinde create ve store metodlarını aşağıdaki gibi tanımlayın:

public function create()
{
return view('posts.create');
}
public function store(Request $request)
{
$post = new Post();
$post->title = $request->title;
$post->body = $request->body;
$post->save();
return redirect()->route('posts.index');
}

Adım 2: Post Listeleme (Read)

Tüm postları listelemek için index metodunu şu şekilde yazın:

public function index()
{
$posts = Post::all();
return view('posts.index', compact('posts'));
}

Adım 3: Post Güncelleme (Update)

Bir postu güncellemek için edit ve update metodlarını tanımlayın:

public function edit($id)
{
$post = Post::find($id);
return view('posts.edit', compact('post'));
}
public function update(Request $request, $id)
{
$post = Post::find($id);
$post->title = $request->title;
$post->body = $request->body;
$post->save();
return redirect()->route('posts.index');
}

Adım 4: Post Silme (Delete)

Bir postu silmek için destroy metodunu ekleyin:

public function destroy($id)
{
$post = Post::find($id);
$post->delete();
return redirect()->route('posts.index');
}

5. Blade Templating ile Görünüm Oluşturma

Laravel, Blade adlı güçlü bir templating motoru kullanır. Blog uygulamanızın arayüzünü oluşturmak için resources/views dizininde Blade dosyaları oluşturabilirsiniz.

Adım 1: Post Listeleme Sayfası (index.blade.php)

Tüm postları listeleyen basit bir sayfa:

@extends('layouts.app')
@section('content')
<h1>Blog Posts</h1>
@foreach($posts as $post)
<div>
<h2>{{ $post->title }}</h2>
<p>{{ $post->body }}</p>
</div>
@endforeach
@endsection

Adım 2: Post Ekleme Sayfası (create.blade.php)

Yeni bir post eklemek için form sayfası:

@extends('layouts.app')
@section('content')
<h1>Create a New Post</h1>
<form action="{{ route('posts.store') }}" method="POST">
@csrf
<label for="title">Title:</label>
<input type="text" name="title" id="title" required>
<label for=”body”>Body:</label>
<textarea name=”body” id=”body” required></textarea><button type=”submit”>Create Post</button>
</form>
@endsection

6. Sonuç

Bu adımları takip ederek basit bir blog uygulaması geliştirdiniz. Laravel’in sunduğu güçlü özellikler sayesinde uygulamanızı kolayca genişletebilir ve işlevselliğini artırabilirsiniz. İleriye dönük olarak, kullanıcı kimlik doğrulama, yorum sistemi ve kategori gibi özellikleri ekleyerek blogunuzu daha da geliştirebilirsiniz.

Laravel dünyasına hoş geldiniz!

Exit mobile version