İlk izlenimlerim - Laravel Türkiye Forumları
Laravel ile bugün tanıştım epey bir yol kat ettim sayılır. CodeIgniter'dan geçiş yaptığım için bir çok şey yabancı geldi. Özellikle, Composer, Namespace, Use.. Elbette bunlar PHP 5.3 ile gelen özellikler ancak şimdiye kadar kullanmamıştım. CodeIgniter ile 3 yıllık profesyonel bir tecrübem var haliyle genişletmediğim hiçbir sınıf kalmamıştır. En iyi şekilde adapte olabilmek ve öğrenebilmek için, CI ile Laravel karşılaştırmalı sorularım olacaktır. Bu konularda ufak bilgilendirmelerinizi bekliyor olacağım. Laravel izlenimlerim şu şekilde;
CI'da en büyük sıkıntı oluşturduğumuz kütüphanelerde çekirdek sınıflarına bile erişmek için ilgili sınıfları tekrardan load etmek oluyordu.
Laravel'da işleyişi çok iyi kavradım. Özellikle paketler indirilirken önce vendor/bin/classpreloader.php.bat aracılığı ile vendor/composer/autoload_namespaces.php içerisine namespacelerin yazılması aynı zamanda diğer classların da autoload_classmap.php içinde haritalandırması ve daha sonra uygulamalarda scope operatör ile bunlara erişebilmek. Her ne kadar bunların Laravel ile alakası olmasa da PHP tarafından üretilen bu teknolojilerin bir Framework üzerinde kullanılması gerçekten çok zekice bir hareket olmuş. Sanırım bunları kullanan henüz bir Framework mevcut değil.
Ancak çok dikkat ettim, composer, namespace bunları bilmeyen bir insanın Laravel'a çok kolay bir şekilde adapte olabilmesi pek mümkün gözükmüyor. Yerli ve yabancı kaynakların hiç birinde çalışma mantığı anlatılmamış. Bu işi profesyonel yapıyorsak işleyişi çok iyi bilmemiz gerektiğini düşünüyorum. Elbette burada ki amaç bu bilgilerinde verilerek mantığı anlamak için en az süreyi harcamamız olmalıdır. Nasıl ki sistem için minumum gereksinimler veriliyorsa, bence öğrenmek içinde bilumum bilgi gereksinimi belirtilmeli.
Türkiye'de Framework denince yazılım çatısı olarak algılanıyordu bir süreye kadar, ama bence Laravel bir yazılım çatısı değil. Sizde çekirdeği incelediyseniz eğer görmüşsünüzdür daha çok PHP 5.3 ile gelen teknolojileri bir araya getirmiş bir teknolojisi çatısıdır bana göre. Bu fevkalade bir gelişmedir.
Yukarıda saydığım php özelliklerini çok iyi bilen birisi Laravel'ı en az 3 gün sürede öğrenebilir artık bundan sonra ki iş dokümanlara ve örnek uygulamaları incelemeye kalıyor. Bu konuda Sinan hocam elinden gelenin en iyisini yapmış. Kendisine de ayrıca teşekkür etmek istiyorum.
Ayrıca Laravel'in yerleşik sınıfları neden Illuminate ile isimlendirilmiş bunu pek anlamadım. Oldukça kafa karıştırıcı olabiliyor ilk bakışta. Laravel/Cache şeklinde olsaydı çok daha iyi olurdu. Sanırım sürümü bozmadan değiştirme şansımız da bulunmuyor.
CodeIgniter üzerinde geliştirdiğim bir Template sistemim mevcut bunu Laravel üzerinde kullanmak istersem composer ile paketlemem mi gerekiyor yoksa app/libraries gibi bir yerde mi tutacağız. Aynı şekilde CI'da bulunan Helper sistemi konusunda da bir bilgi bulamadım.
Son olarak laravel framework dışında görüyorum ki 20 e yakın paket yüklenmiş. Bunlar arasında d11xtq gibi garip isimlere sahip bir çok third-party uygulama var. Bunlar kullanılmak üzere mi indirildi yoksa çekirdek bunlara mı bağlı?
Şimdilik ilk izlenimlerim bunlardı ve paylaşmak istedim.
edit: uykusuzluk, saçma bir yere konu açmışım, ilgili yere taşımanızı rica edeceğim.
Laravel birçoğu symphony'den olmak üzere birtakım bağımlılıklar ile çalışır, söz ettiğin d11xtq paketine ait readme.md dosyasına baktığımız zaman bunun "# Boris: A tiny little, but robust REPL for PHP" olduğunu ve tinker ile adlandırılan console ilavesi olduğunu görüyoruz.
Illuminate, kelime anlamından yola çıkarak "php framework dünyasını aydınlatmak" anlamında seçilmişti, 4.0 beta aşamasındayken bu açıklamayı Taylor laravel forumlarında yapmıştı, aklımda kaldığınca yazdım, forumda orijinal metinlere ulaşılabilir. Laravel 4'e ait paketler kelime karmaşası oluşmaması için bu biçimde isimlendirildi.
Teşekkürler Sinan hocam bilgilendirmeler için. İlk izlenimlerim olduğu için bende pek ne, nedir-ne değildir konusunda biraz kafa karışıklığı yaşadım.
Derinlere indikçe mantıklarda oturuyor.
Rica ederim sevgili @mertkabadayi, birlikte öğreniyoruz.