nur — yine bir PHP framework’ü(!)

Merhabalar, yine değişik işler peşinde koşturduğum bir dönemden daha selamlar ederim. Karşınıza belki gereksiz, belki saçma, belki de “aa güzel olmuş be” tepkisi verebileceğiniz bir şeyle çıkıyorum. Hazır olun.

Bilindiği üzere “kendi framework’ümü yazdım” yıllardır süre gelen bir adetimizdir ve sene 2018 olmasına rağmen gördüğünüz gibi hala çağlayarak devam etmekte. Bu furyaya bende katılayım, belki birilerine, bir şeylere faydamız olur ya da bakıp “n’apmış bu çocuk ya” diye insanları güldürüp, yüzlerinde bir tebessüm olabilirim diye düşündüm. :)

Nereden Çıktı?

Her ne kadar geliştirdiğim projelerde Symfony, Laravel vs gibi frameworkler kullanmaya çalışsam da; ufak tefek projeler veya kendi uğraştığım basit, temel işler için -herkesin olduğu gibi- benim de bir alt yapım vardı. Bu yapı benim oyun hamurum gibiydi. Uzun zamandır boş vakitlerimde, belki çok az kullanacak olsam da, üzerine bir şeyler koyup geliştirmeye çalışıyordum. Bir taraftan da bu büyük frameworklerin arkasında dönen olayların ve özelliklerin aslında tam olarak nasıl yapıldığını, nasıl çalıştığını anlamaya ve kendi yeteneklerimi geliştirmeye çalışıyordum. Bu zamanlar böyle ilerledi. Derken kullandığım popüler frameworkler içerisinde bulunan, en çok sevdiğim componentleri kullanarak ve kendi yazmış olduğum bazı paketleri de ekleyerek bir framework oluşturdum. (bak bak laflara bak, framework oluşturmuş.)

Nedir ve Ne İçeriyor?

Aslında framework demek ne kadar doğru bilmiyorum ama, basit bir alt yapı falan diyebiliriz. Aklıma başka isimde gelmediği için global kalıpları bozmayarak bende bu işe framework dedim. MVC (Model-View-Controller) model üzerine inşa edilmiş bu yapı içerisinde;

  • CLI (Command Line Interface) aracı,
  • Eloquent ORM,
  • Blade Template Engine,
  • Migration desteği,
  • Middleware desteği,
  • Routing sistemi

gibi componentler bulunuyor. Bunların yanı sıra; 
Request/Response, Form/Html Builder, Form Validation, Mailer, Uploader, Logger gibi bir proje için en çok kullanılabilecek componentleri de içeriyor. Aklıma gelen veya tavsiye edilen başka componentleri de zamanla eklemeye çalışacağım. Ayrıca composer ile istediğiniz bir paketi projeye dahil edip, Nur ile kullanmak oldukça kolay. :)

Artık adına saçmalık dersiniz, küçük bir yapı dersiniz, framework dersiniz; size kalmış.

Nur CLI Tool’dan bir görüntü

İsmi Neden “Nur”?

Fikirleriyle ve yaptıklarıyla bize bir çok konuda örnek ve destek olan Serdar Dogruyol abimizin Crystal için yazmış olduğu Kemal framework’ünden sonra, projelere Türkçe isimler vermek biraz daha moda oldu gibi. Bence çok da güzel oldu. Bende bunu takip edeyim istedim. Projenin adına NUR koydum. Çünkü neden koymayayım? Nur ismi, annemden geliyor ve annem benim için dünyadaki en değerli insan. Doğal olarak onunla ilgili bir isim vermek istedim. Hem kısa, hem güzel :)

Sonuç Olarak;

“Ne gerek vardı ki acaba?” dediğinizi duyar gibiyim. Haklısınız, yine de olsun. Ben çok şey öğrendim uğraşırken, zaten amacımda buydu.

Elimden geldiğince, boş vakitlerimde bu yapı üzerinde geliştirmeler ve eklemeler yapmaya devam edeceğim. Bunların başında Doctrine ORM ve Twig Template Engine geliyor. Yapıya daha zengin bir hal kazandırmak için elimden geldiğince uğraşacağım. Bunlar şimdiye kadar olduğu gibi, bana da çok şey katacaktır diye düşünüyorum. Niyetim hem güzel bir şeyler ortaya çıkarabilmek, hem de yeni bir çok şey öğrenebilmek. Belki kullanan, verim alanlar olur; bu da beni çok mutlu eder. Fikir, öneri, destek ve her türlü yapılan işi gömme gibi geri dönüşlere açığım. Belki gelen yorumlara göre daha iyi hallere gelir, birlikte getiririz. Kim bilir…

“Ee bi’ bakalım neymiş bu?” diyenler, sizi şu tarafa doğru alalım ve kaynak kodları ile baş başa bırakalım. İnceleyebilir, deneyebilir, hatta belki iyi bir insan olursanız şirinleri bile görebilirsiniz.

Nur Framework — View on Github

Documentation

Dokümantasyon hala bitmedi ne yazık ki. Bir kez daha anladım ki, bir işin en önemli noktası dokümantasyon hazırlamak. Proje bir şekilde yazılıyor ama, dokümantasyon öyle değil. Şu an en yoğun olarak bunun için uğraşıyorum, umarım en kısa zamanda büyük çoğunluğunu tamamlayıp, yayınlayacağım.

Sağlıcakla ve kodla kalın….