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.