Laravel ile Blog Sitesi Nasıl Oluşturulur?

  • Mart 25, 2023
  • PHP
No Comments

Laravel, PHP için açık kaynak bir web uygulama çerçevesidir ve birçok web sitesi ve uygulamanın oluşturulmasında yaygın olarak kullanılmaktadır. Laravel, özellikle MVC (Model-View-Controller) mimarisi üzerine kurulu olması ve güçlü veritabanı yönetimi özellikleri ile bilinir. Bu yazıda, Laravel kullanarak basit bir blog sitesi oluşturma adımlarını ve örnek kodları ele alacağız.

Adım 1: Laravel Kurulumu

Laravel kurulumu, öncelikle Composer yükleyicisini bilgisayarınıza yükleyerek başlar. Composer, PHP paketleri ve kütüphaneleri yönetmek için kullanılan bir araçtır. Composer’ı yükledikten sonra, Laravel’ı kurmak için aşağıdaki komutu kullanabilirsiniz:

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

Bu komut, blog adında yeni bir Laravel projesi oluşturur ve tüm gerekli dosyaları yükler. Blog adını istediğiniz herhangi bir şeyle değiştirebilirsiniz.

Adım 2: Veritabanı Bağlantısı

Bir blog sitesi oluşturmak için, verileri saklamak için bir veritabanına ihtiyacımız var. Laravel, farklı veritabanı motorlarına kolayca bağlanabilen bir ORM (Object-Relational Mapping) sistemi sunar. Bu örnekte, MySQL veritabanı kullanacağız.

Veritabanı bağlantısını yapmak için, .env dosyasını açın ve aşağıdaki değişiklikleri yapın:

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

Bu değişiklikler, MySQL veritabanına root kullanıcısı ile bağlanacağımızı ve blog adında bir veritabanı kullanacağımızı belirtir.

Adım 3: Model Oluşturma

Blog gönderilerini saklamak için, bir Post modeli oluşturacağız. Model oluşturmak için aşağıdaki komutu kullanabilirsiniz:

php artisan make:model Post

Bu komut, app/Models dizinine Post.php dosyasını oluşturur. Post modeli, posts adında bir posts tablosunu temsil eder. Tablo adını değiştirmek isterseniz, protected $table özelliğini model sınıfında değiştirebilirsiniz.

Adım 4: Veritabanı Tablosu Oluşturma

Bir posts tablosu oluşturmak için, bir göç (migration) dosyası oluşturmanız gerekiyor. Göç dosyası, veritabanı tablolarını ve sütunlarını oluşturmak için kullanılır. Aşağıdaki komutu kullanarak bir

göç dosyası oluşturabilirsiniz:

php artisan make:migration create_posts_table --create=posts

Bu komut, database/migrations dizinine bir create_posts_table göç dosyası oluşturur ve posts tablosunu oluşturmak için kullanılır.

Göç dosyasını açın ve aşağıdaki kodu ekleyin:

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 kod, posts tablosunu oluşturur ve id, title, content ve timestamps sütunlarını içerir. timestamps sütunu, created_at ve updated_at sütunları olarak otomatik olarak oluşturulur ve güncellenir.

Adım 5: Gönderi Oluşturma

Tüm gönderileri listelemek için, Post modelinde bir all fonksiyonu kullanabiliriz. Örneğin, aşağıdaki kod tüm gönderileri listeleyecektir:

$posts = Post::all();

foreach ($posts as $post) {
    echo $post->title . '<br>';
}

Bu kod, tüm gönderileri posts tablosundan alır ve her gönderinin başlığını ekrana yazdırır.

Adım 7: Gönderi Görüntüleme

Bir gönderiyi görüntülemek için, Post modelinde bir find fonksiyonu kullanabiliriz. Örneğin, aşağıdaki kod id değeri 1 olan bir gönderiyi görüntüler:

$post = Post::find(1);

echo $post->title;
echo $post->content;

Bu kod, id değeri 1 olan gönderiyi posts tablosundan alır ve başlığı ve içeriği ekrana yazdırır.

Adım 8: Yönlendirme ve Görünüm

Son adımda, bir yönlendirme ve bir görünüm oluşturacağız. Yönlendirme, kullanıcının blog anasayfasına gittiğinde nereye yönlendirileceğini belirler. Görünüm ise, blog sayfası tasarımını ve kullanıcı arayüzünü oluşturur.

Yönlendirme

routes/web.php dosyasını açın ve aşağıdaki kodu ekleyin:

Route::get('/', function () {
    return redirect('/posts');
});

Route::get('/posts', function () {
    $posts = Post::all();

    return view('posts.index', ['posts' => $posts]);
});

Route::get('/posts/{id}', function ($id) {
    $post = Post::find($id);

    return view('posts.show', ['post' => $post]);
});

Bu kod, üç yönlendirme tanımlar. İlk yönlendirme, blog anasayfasına giden tüm istekleri /posts sayfasına yönlendirir. İkinci yönlendirme, /posts sayfasına giden tüm istekleri Post modelinden tüm gönderileri alarak posts.index görünümünü döndürür. Üçüncü yönlendirme, /posts/{id} sayfasına giden tüm istekleri Post modelinden id değeri verilen gönderiyi alarak posts.show görünümünü döndürür.

Görünüm

resources/views dizinine posts adında bir klasör oluşturun. Bu klasör içinde, index.blade.php ve show.blade.php adında iki dosya oluşturun.

index.blade.php dosyasına aşağıdaki kodu ekleyin:

@extends('layouts.app')

@section('content')
    <h1>Blog</h1>

    <ul>
        @foreach ($posts as $post)
            <li><a href="/posts/{{ $post->id }}">{{ $post->title }}</a></li>
        @endforeach
    </ul>
@endsection

Bu kod, layouts/app.blade.php şablonunu kullanarak bir HTML sayfası oluşturur ve tüm gönderileri bir liste halinde ekrana yazdırır.

show.blade.php dosyasına aşağıdaki kodu ekleyin:

@extends('layouts.app')

@section('content')
    <h1>{{ $post->title }}</h1>

    <p>{{ $post->content }}</p>
@endsection

Bu kod, layouts/app.blade.php şablonunu kullanarak bir HTML sayfası oluşturur ve id değeri verilen gönderinin başlığı ve içeriğini ekrana yazdırır.

Şablon

Son olarak, resources/views/layouts dizinine app.blade.php adında bir dosya oluşturun ve aşağıdaki kodu ekleyin:

<!DOCTYPE html>
<html>
    <head>
        <title>Blog</title>
    </head>
    <body>
        <div class="container">
            @yield('content')
        </div>
    </body>
</html>

Bu kod, bir HTML sayfası oluşturur ve content bölümünde belirtilen içeriği container adında bir div içinde ekrana yazdırır.

Sonuç

Artık Laravel kullanarak basit bir blog sitesi oluşturmayı öğrendiniz. Bu siteyi genişletebilir ve özelleştirebilirsiniz. Örneğin, yorumlar ekleyebilir, arama ve sayfalama işlevleri ekleyebilir veya kullanıcı kayıt ve girişi gibi ek özellikler ekleyebilirsiniz.

Ayrıca, Laravel’in birçok farklı özelliği ve bileşeni var. Dökümantasyonunu inceleyerek daha fazla öğrenebilir ve projenizi geliştirebilirsiniz.

İşte Laravel kullanarak basit bir blog sitesi oluşturmak için gerekli olan adımlar bu kadar. Umarım bu yazı sizin için yararlı olmuştur. Başka sorularınız varsa, lütfen sormaktan çekinmeyin.

Kerem Özgüven, 2000 yılında php programlama geliştirmeye başladı. O günden bu yana bir çok yazılım projesine katkıda bulundu ve fullstack geliştirici olarak kariyerini sürdürüyor. Kullanıcı arayüzleri, web servislerinin tasarımı, veri yapıları, sunucu yönetimi ve web uygulamaları gibi birçok alanda uzmanlaşmıştır. Tasarladığı çözümler kullanıcı dostu tasarımlardan, güvenli ve kolay kullanılan arayüzlere kadar uzanmaktadır. Projelerde öncelikle en iyi sonuçların elde edilmesini kolaylaştıran modern yöntemler kullanmaktadır.Her zaman projelerinin başarısı için gerekli olan tüm araştırmaları yapmaya yönelik bir yaklaşım sergilemektedir.

Daha Fazla Makale

Hepsi

Leave a Comment