yaknet / divan
PHP hatalarını ve istisnalarını şairane Türkçe şiirler ve büyüleyici bir arayüzle sunan hata yönetim kütüphanesi.
Requires
- php: ^8.2
- filp/whoops: ^2.15
- google-gemini-php/client: ^1.0
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- phpstan/phpstan: ^1.10
Suggests
- yaknet/sentinel: AI tabanlı koruma kalkanı ve otomatik hata yamama (self-healing) entegrasyonu için önerilir.
README
YakNet Divan, geleneksel PHP hata sayfalarının o soğuk, ürkütücü ve ruhsuz yapısından sıkılan yazılımcılar için geliştirilmiş, PHP hatalarını ve istisnalarını (exceptions) derin, duygusal ve kimi zaman da eğlenceli Türkçe şiirlerle (gazel, rubai veya serbest nazım) süsleyip sunan premium bir hata yönetim kütüphanesidir.
✍️ Şairane Ekosistem Terimleri
Kütüphanemiz, tüm teknik hata bileşenlerini edebiyat dünyasından terimlerle eşleştirir:
- Dosya (File) ➔ Şiir: Her kod dosyası dergahımızda yazılmış birer şiirdir (örn:
index.php Şiiri). - Satır (Line) ➔ Mısra: Hatanın gerçekleştiği satır, şiirin hırpalanmış bir mısrasıdır (örn:
45. Mısra). - Hata Satırı ➔ Kırık Mısra: Hatanın tam gerçekleştiği satır arayüzümüzde kırmızı güller ve hat çizgileriyle sarılmış "Kırık Mısra" olarak adlandırılır.
"Ey fani, 'index.php' şiirinin 45. mısrasında dertli bir duraksama husule geldi..."
🚀 Öne Çıkan Özellikler
- 🧠 Divan Poet Brain (Gemini AI): Gemini API (
gemini-2.5-flashmodeli) aracılığıyla, gerçekleşen hatanın sınıfına, mesajına, dosyasına (şiirine) ve satırına (mısrasına) göre tamamen özelleştirilmiş, sanatsal quatrainler (kıtalar) üretir. - 📚 Zengin Çevrimdışı Şiir Kitaplığı: Gemini API anahtarı veya internet bağlantısı olmadığında devreye giren; Division by Zero, Parse Error, Type Error, PDOException (Veritabanı hasreti) gibi birçok yaygın hata türü için özel olarak kaleme alınmış şairane şiir fallbacks sistemi.
- 🌹 Gül Yapraklı Glassmorphism Arayüzü: Koyu mor, derin gece gökyüzü temalı ve yıldızlı arka plan üzerinde, CSS animasyonlarıyla süzülen gül yaprakları ve klasik hat sanatından ilham alan premium bir sayfa tasarımı.
- ⚙️ Whoops (uhoox) Entegrasyonu: Projelerinde Whoops kullanan yazılımcılar için tek adımda şairane hata sayfasına ve istendiğinde tek tıkla standart Whoops teknik sayfasına geçiş sağlayan çift yönlü Handler.
📦 Kurulum
Composer ile kütüphaneyi projenize dahil edin:
composer require yaknet/divan
🛠️ Kullanım Şekilleri
1. Bağımsız (Standalone) Kullanım
Projenizin giriş noktasında (örn: index.php veya bootstrap.php) Divan hata yöneticisini kaydetmeniz yeterlidir:
use YakNet\Divan\Core\Divan; // Divan'ı başlat Divan::register([ 'gemini_api_key' => $_ENV['GEMINI_API_KEY'] ?? '', // AI şiirleri için isteğe bağlı 'active' => true // .env'den okumak için belirtmeyebilirsiniz ]);
2. Whoops (uhoox) ile Entegre Kullanım
Eğer uygulamanızda filp/whoops kullanıyorsanız, Divan'ı Whoops'a bir Handler olarak ekleyebilirsiniz:
use Whoops\Run; use Whoops\Handler\PrettyPageHandler; use YakNet\Divan\Whoops\DivanHandler; $whoops = new Run; // 1. Şairane Divan Handler'ı ekle $whoops->pushHandler(new DivanHandler([ 'gemini_api_key' => $_ENV['GEMINI_API_KEY'] ?? '' ])); // 2. Teknik Whoops Handler'ını ekle (Toggled fallback) $whoops->pushHandler(new PrettyPageHandler); $whoops->register();
Bu sayede, .env dosyasındaki durumuna göre hatalar şairane sayfa ile gösterilir. Şairane hata sayfasındaki "Standart Detaylı Hata Sayfasına (Whoops) Git" butonuna basıldığında teknik Whoops ekranı saniyeler içinde karşınıza gelir.
⚙️ Çevresel Ayarlar (.env)
Projenizin kök dizinindeki .env dosyasında şu değişkenleri tanımlayabilirsiniz:
# Gemini API Anahtarı (Canlı şiir üretimi için) GEMINI_API_KEY=AIzaSy... # Şairane hataları açıp kapatmak için (true/false) POETIC_ERRORS=true
POETIC_ERRORS=trueise: Hatalar göz kamaştırıcı Divan şiirleriyle süslenir.POETIC_ERRORS=falseise: Divan sessizce arka plana çekilir ve projenizdeki standart hata yöneticileri (Whoops vb.) devreye girer.
🛡️ Sentinel ile Uyum Entegrasyonu
YakNet Sentinel kullanan projelerde, Sentinel arayüzünde şairane açıklama almak veya doğrudan Divan şablonunu kullanmak için Sentinel'e Divan desteğini entegre edebilirsiniz. Sentinel'in templates/error_page.php şablonu veya hata yakalayıcısı Divan kurulu olduğunda bunu tespit ederek zenginleştirilmiş çıktılar sunacaktır.
📜 Lisans
Bu proje YakNet Bilişim tarafından geliştirilmiştir ve MIT Lisansı ile korunmaktadır. "Hataları dert etmeyin, bir taksim dinleyip şiir okuyun." 🌹