Carbon (Tarih ve Saat Yönetimi)

artiframe add carbon komutu, PHP'nin standart DateTime sınıfının yeteneklerini zirveye taşıyan nesbot/carbon kütüphanesini kurar. Tarihleri karşılaştırmak, ekleme/çıkarma yapmak veya "3 gün önce", "1 ay sonra" gibi insan odaklı (human-readable) formatlar üretmek için sektör standardıdır.

💡 Bilgilendirme: Direkt Kullanım
ArtiFrame, bu paket için src/Service klasörüne özel bir entegrasyon (Wrapper/Stub) sınıfı kopyalamaz. Kurulum yalnızca Composer üzerinden paketi projeye dahil eder. Aşağıdaki kodlar, paketin kendi orijinal işleyişini gösteren basit kullanım örnekleridir. Daha fazlası için Carbon Dokümantasyonunu inceleyebilirsiniz.
Kurulum
terminal
$ artiframe add carbon
Kullanım Örneği
İpucu: Carbon, projenizde yer alan dil dosyalarınıza veya sunucunuzun setlocale() ayarlarına saygı duyar. Türkçe kullanmak için Carbon::setLocale('tr'); diyebilirsiniz.
TimeController.php
<?php

use Carbon\Carbon;

// Dil ayarını Türkçe yapalım
Carbon::setLocale('tr');

// 1. Şu Anki Zaman
$now = Carbon::now();
echo $now->toDateTimeString(); // 2026-09-18 10:30:00

// 2. İnsan Odaklı Okuma (DiffForHumans)
$kayitTarihi = Carbon::create(2023, 1, 15);
echo "Kayıt Zamanı: " . $kayitTarihi->diffForHumans(); // "3 yıl önce" (gibi)

// Gelecek hesaplama
$bitisTarihi = Carbon::now()->addDays(15);
echo "Üyelik Bitişi: " . $bitisTarihi->diffForHumans(); // "15 gün sonra"

// 3. Yaş / Süre Hesaplama
$dogumGunu = Carbon::parse('1995-05-20');
echo "Yaşınız: " . $dogumGunu->age; // 31 (2026 yılına göre)

// 4. Zaman Manipülasyonları
$sonTarih = Carbon::now()
            ->addYears(1)
            ->subMonths(2)
            ->endOfMonth();

echo "Kampanya Son Tarihi: " . $sonTarih->format('d/m/Y'); 

// 5. Karşılaştırmalar
if (Carbon::now()->isWeekend()) {
    echo "Bugün haftasonu!";
}

if ($dogumGunu->isPast()) {
    echo "Doğum gününüz geçmiş.";
}