Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Laravel’de HTML’den kurs bitirme sertifikaları nasıl oluşturulur
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Laravel’de HTML’den kurs bitirme sertifikaları nasıl oluşturulur

Yazılım

Laravel’de HTML’den kurs bitirme sertifikaları nasıl oluşturulur

teknomers
Son güncelleme: 16 Temmuz 2026 17:12
teknomers
Paylaş
Paylaş

İlk olarak Accreditly blogunda yayımlandı.

Laravel uygulamanızda bir kursu bitirenler, kanıt istiyor: indirebilecekleri, bastırıp LinkedIn’de gösterebilecekleri bir sertifika. Genellikle bunun üretilmesi zahmetli oluyor. DomPDF, tablo dışındaki CSS’leri bozar ve sunucunuzda bir headless Chrome kurmak bakım gerektiren bir iş. Daha temiz bir yol var. Sertifikayı, standart bir Blade görünümü gibi tasarlıyorsunuz, rendelenmiş HTML’yi bir görüntü API’sine gönderiyorsunuz ve PNG’yi kullanıcıya kaydediyorsunuz. Makalenin sonunda, kursu tamamlayanları markalı, doğrulanabilir bir sertifika görüntüsüne dönüştüren bir CertificateService oluşturmuş olacaksınız.


Tasarımı Blade’de Tutun

Bir sertifika, sadece stilize edilmiş bir HTML belgesidir. Zor olan kısım, o tasarımı her açıldığında aynı görünen bir dosyaya dönüştürmektir. Bu nedenle tasarımı, hâlihazırda çalıştığınız yer olan Blade’de tutun ve rendelenmesi için gerçek Chromium üzerinden geçen bir hizmete teslim edin. Bu kılavuz, tam da bu amaç için oluşturulmuş HTML to Image API‘sini kullanıyor. Bitmiş bir düzenle başlayıp başlamayacağınızdan emin değilseniz, değerleri geçirebileceğiniz hazır bir tamamlama sertifikası şablonu var.

Akış üç adımdan oluşuyor. Blade görünümünü bir HTML dizesine rendere edin, bu dizgiyi API’ye POST edin, ardından dönen resmi kullanıcı ve kursa kaydedin.


Adım 1: Sertifika görünümünü oluşturun

Sertifikayı, uygulamanızın stil sayfasına bağımlı kalmayan satır içi stillerle, kendi kendine yeterli bir HTML belgesi olarak tasarlayın.

{{-- resources/views/certificates/completion.blade.php --}}




Tamamlama Sertifikası

Bu belge,

{{ $name }}

şu kursu tamamladı: {{ $date }}

Doğrulama için {{ config('app.url') }}/verify/{{ $code }}

Tüm bunlar, isim, kurs başlığı, tarih ve doğrulama kodu gibi dört değer tarafından yönlendirilir. Kod önemli, çünkü bunu en sonunda entegre edeceğiz.


Adım 2: Görünümü render edin ve API’yi çağırın

Blade görünümünü view()->render() ile bir dizeye rendere edin, ardından bunu Laravel’in HTTP istemcisiyle /api/html uç noktasına POST edin. API, HTML’nizi alır ve boyutlarıyla birlikte geri bir PNG döndürür.

// app/Services/CertificateService.php
namespace App\Services;

use App\Models\Course;
use App\Models\User;
use Illuminate\Support\Facades\Http;

class CertificateService
{
    public function generate(User $user, Course $course): string
    {
        $html = view('certificates.completion', [
            'name'   => $user->name,
            'course' => $course->title,
            'date'   => now()->format(),
            'code'   => $this->verificationCode($user, $course),
        ])->render();

        $response = Http::withHeaders([
            'X-API-Key' => config(),
        ])->post(, [
            => $html,
            => 1600,
            => 1130,
        ]);

        return $response->throw()->json();
    }

    public function verificationCode(User $user, Course $course): string
    {
        return strtoupper(substr(
            hash(, {$user->id}$course->id}.config()), 0, 10
        ));
    }
}

Anahtarınızı config/services.php dosyasına ekleyin. Böylece kodlarınız arasında dağılmaz:

=> [
    => env(),
],

1600x1130 boyutlandırması, temiz bir şekilde basılan bir A4 oranıdır. Doğrulama kodu, kullanıcının, kursun ve uygulama anahtarınızın bir deterministik hash’idir; böylece aynı tamamlama her zaman aynı kodu üretir ve kimse başkasınınkisini tahmin edemez.


Adım 3: Tamamlandığında sertifikayı verin

Rendere etme işlemi birkaç saniye alır, bu yüzden bunu istekten ziyade sıraya alınmış bir işte yapın. URL’yi kalıcı hale getirin, böylece aynı tamamlamada tekrar render işlemi yapmazsınız.

// app/Jobs/IssueCertificate.php
class IssueCertificate implements ShouldQueue
{
    use Dispatchable, Queueable;

    public function __construct(public User $user, public Course $course) {}

    public function handle(CertificateService $certs): void
    {
        Certificate::updateOrCreate(
            [=> $this->user->id, => $this->course->id],
            [
                => $certs->verificationCode($this->user, $this->course),
                => $certs->generate($this->user, $this->course),
            ]
        );
    }
}

Sertifikayı verme işlemini, bitiş dersini tamamladığınız dinleyicide başlatın:

IssueCertificate::dispatch($user, $course);


Dosyayı kendi diskine kaydet

Barındırılan URL çoğu uygulama için yeterlidir ve en hızlı yoldur. Ancak dosyayı kendiniz tutmak isterseniz, aynı işte indirin ve S3 veya yerel depolama alanına koyun:

$contents = Http::get($url)->body();
Storage::disk()->put({$code, $contents);

Bir gruba aynı anda sertifika veriyorsanız, bunları sıraya alınmış işler halinde oluşturun; böylece yavaş bir render diğerlerini de bekletmez.


Sertifikayı doğrulanabilir hale getirin

Bir sertifika sadece kontrol edilebiliyorsa değerlidir. Görüntüde yazılı olan kod, kendi sitenizdeki bir rotaya işaret eder:

Route::get(, function (string $code) {
    $certificate = Certificate::where(, $code)->firstOrFail();

    return view(, compact());
});

O URL’yi ziyaret eden herkes, sertifikanın kime verildiğini ve hangi kurs için verildiğini görür; bu da gerçek bir yeterliği, güzel bir resimden ayıran unsurdur. Sertifika görüntüsüne doğrulama URL’sinin bir QR kodunu ekleyin ve bir telefon kamerası işlemi sizin yerinize yapsın.

Bu sistemin tamamı: tasarım için bir Blade görünümü, onu rendere etmek için bir API çağrısı, verdiğiniz sertifikayı yöneten sıraya alınmış bir iş ve sertifikanın doğrulanması için bir rota. Tasarım HTML’de yaşamaya devam eder, böylece onu saniyeler içinde değiştirebilirsiniz ve kendi sunucunuzda mükemmel bir dosya almak için bir tarayıcı çalıştırmazsınız.

Kaynak: Orijinal Makale

Contents
  • Tasarımı Blade’de Tutun
  • Adım 1: Sertifika görünümünü oluşturun
  • Adım 2: Görünümü render edin ve API’yi çağırın
  • Adım 3: Tamamlandığında sertifikayı verin
  • Dosyayı kendi diskine kaydet
  • Sertifikayı doğrulanabilir hale getirin
Laravel ile 3 Satır Kodla WhatsApp Mesajı Gönderin
Laravel’den Symfony’ye Alan Kodunu Yeniden Yazmadan Geçiş Yapmak
Laravel’de Özel Model Cast’ları Nasıl Oluşturulur
Laravel, Twilio ve OpenAI Kullanarak WhatsApp AI Asistanı Geliştirin
PHP Atribute’leri Belgelerinizi Geliştirmenize Yardımcı Olabilir, Ancak Kurtaramazlar
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Nvidia ve Japonya’dan dünya çapında ilk ulusal AI altyapısı
Sonraki Makale Hayatta Kalma Mücadelesinin Anahtarı: Land or Die Kodları

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Ecovacs’ın kendi kendini temizleyen Deebot X11 Yeni Fiyata Düştü
Liste
Apple’ın OpenAI’ye Davası ve New York’un Veri Merkezleri Üzerine İddiaları
Genel
Acil: Coca-Cola’nın Fairlife saldırısı ABD süt üretimini durdurdu
Siber Güvenlik
Google İsim Değiştirme Dalgasını Gemini Notebook ile Sürüyor
Genel
Path of Exile 3.29 Su Altı Savaşında Çığır Açıyor
Oyun
Netflix 300 Başlıkta Üretken Yapay Zeka Kullanıyor
Liste
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?