
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!