Laravel 5.3 geçtiğimiz haftalarda yayınlandı. Gelmesi planlanan özellikleri ise şu yazımızda duyurmuştuk. Laravel 5.3, geliştiricilerin işlerini kolaylaştıracak yeniliklerle geliyor.

Yeni Tasarım

 

laravel-homepage

Öncelikle Laravel 5.3’ün yayınlanmasıyla birlikte laravel.com ana sayfa tasarımının da yenilendiğini belirtelim. Yeni eklenen özelliklerin yanı sıra Laracast, Laravel News, Statamic gibi kaynaklara linkler de eklenmiş.

Laravel Scout

Eloquent için sürücü tabanlı full-text arama. Kulağa hoş geliyor, değil mi? Hem de sayfalandırma ve otomatik indeksleme özellikleriyle birlikte. İlk etapta Algolia (anlık alakalı sonuçlar veren ücretli bir arama API’si) sürücüsü ile geliyor, fakat kendi sürücülerinizi yazmakta özgürsünüz. Detaylı bilgi ve kullanım açıklamaları burada.

Laravel Passport

Dakikalar içinde hazır olan bir OAuth2 sunucusu. API yetkilendirmelerini saç baş yolmadan halletmenizi sağlıyor. Opsiyonel bir paket olarak geliyor. Token üretme için Vue.js bileşenleri ve kapsamlarınızı belirleyebilme özellikleri sunuyor.

Mailable

Laravel 5.3’te, uygulamanız tarafından gönderilen her tür mail, bir “mailable” sınıfını temsil ediyor. Bu sınıflar app/Mail

klasöründe saklanıyor. İlk kurulumda bu klasörü görmezseniz şaşırmayın. make:mail komutunu kullanarak oluşturduğunuz ilk mailable sınıfı ile bu klasör oluşturulacaktır. Mailable sınıflarının gelmesiyle, önceki sürümlerde kullandığımız closure yapısı da kalkmış oldu.

Laravel Echo

Birçok modern web uygulaması gerçek zamanlı kullanıcı arayüzleri kullanıyor. Siz de sayfa güncellenmeden anlık değişen dinamik içeriklerin olduğu bir web uygulaması yapmak isterseniz bir Javascript kütüphanesi olan Laravel Echo’yu kullanabilirsiniz. Böylece Laravel ile yazdığınız event broadcast’leri frontend tarafında kolayca kullanabileceksiniz. Laravel Echo için mevcut event broadcasting sisteminin web soketlerle daha kolay çalışmasını sağlayan bir geliştirmesi de diyebiliriz. Echo, NPM paket yöneticisi üzerinden kurulabiliyor.

Bildirimler

Eğer bir mobil uygulamanın backend’ini yazmışsanız ya da kullanıcı etkileşimli bir siteniz varsa kullanıcılarınız mutlaka bir şekilde bildirim gönderme ihtiyacı hissederseniz. Bunu en basit haliyle e-posta göndererek yaparsınız. Fakat hem bu bildirimleri veritabanında tutmak hem de herhangi bir şekilde bildirim göndermek isterseniz normalde ek kodlama yapmanız gerekir. Neyse ki Laravel 5.3 bunu kolaylaştırıyor. Slack (iş için kullanılan detaylı bir grup mesajlaşma uygulaması), sms (Nexmo sağlayıcısı üzerinden), e-posta gibi kanallar dışında isterseniz mobil uygulamanız için Notification trait’i üzerinden push notification gönderimi de sağlayabilirsiniz. Şimdilik Android veya iOS için push bildirim kanalları doğrudan desteklenmiyor. Fakat Telegram, Pusher, Facebook, Twitter ve birçok kanaldan gönderim yapabilmek için bir topluluk sitesi kurulmuş. Bu siteden birçok sürücüyü indirip kullanabilir, ya da sürücü iskeletini indirip farklı bir kanal için sürücü geliştirebilirsiniz. Üstelik paylaşmayı seviyorsanız yazdığınız sürücüyü bu topluluk sitesi üzerinden paylaşabilirsiniz. Bildirimleri ayrıca kuyruğa da alabiliyorsunuz. Böylece aynı anda binlerce bildirim göndermeniz gerektiğinde kaynaklarınız birden tükenmemiş oluyor ve bildirimler sırayla, daha sağlıklı bir şekilde gönderiliyor.

Migrations (Göçler)

Göçler, aslında Laravel’de uzun süredir var olan, veritabanınız için bir versiyonlama sistemi. Artık tek bir migration’a geri dönebilirsiniz. Eskiden sadece birden fazla migration içeren “migration’lar grubuna” geri dönebiliyorduk.

Basit Sayfalandırma

Laravel iki tip sayfalandırma sunuyor. Biri numaralandırmaların olduğu biraz daha detaylı bir yapı, diğeri ise sadece ileri ve geri linklerinin olduğu bir yapı. Bugüne kadar “basit” sayfalandırmanın görünümünü kolayca değiştiremiyorduk. Bu sürümle birlikte kolayca değiştirilmesine olanak sağlandı.

Blade Loop Değişkeni

Laravel Blade tema motoru, yeni $loop değişkeni ile döngülere daha çok müdahale edebilmenizi sağlıyor.

Döngülerde şu özellikler kullanılabiliyor:

  • index – Döngü sayısı
  • remaining – Kalan döngü sayısı
  • count – Toplam sayaç
  • first – İlk döngü olup olmadığı
  • last – Son döngü olup olmadığı
  • depth – Hangi seviye derinlikteki döngüde olduğunuz (iç içe döngüler için)
  • parent – İç içe bir döngüde üst seviyedeki döngü öğesini çağırmanız için

Dizin Değişiklikeri

Events, Jobs, Listeners ve Policies klasörlerini PHP’nin mavi fili yedi. Yeni kurduğunuz projelerde artık bu klasörleri görmeyeceksiniz. Önceden bu klasörler, içleri boş olarak geliyordu. Ne kadar gereksizdi, sizce de öyle değil mi? Merak etmeyin, ilgili make: komutunu kullanırsanız ilk oluşturulan sınıf ile birlikte bu klasörler de oluşturulacak.

QUERY BUILDER

Query Builder artık dizi değil Collection dönecek. Geçmişe dönük uyumluluğu bozacak bir değişiklik olsa da Eloquent ve Query Builder sorguları artık aynı tipte sonuç verecek.

Cache Helper

Diğer özelliklerin yanında minicik kalsa da hatırlatmak istedik. Yeni eklenen cache() global yardımcısı üç ana fonksiyonu yerine getirebiliyor: get, put ya da yardımcı servisin bir örneğini dönmek.

Örneğin cache() komutu CacheManager’ın bir örneğini dönüyor. Bu da demek oluyor ki Cache::forever() yerine cache()->forever() (ya da diğer metotlar da olabilir) şeklinde kullanım yapabilirsiniz. Canınız hangisini isterse!

LARAVEL 5.3’E Yükseltme

Laravel 5.2’den 5.3’e geçiş işlemlerinizi yaklaşık 2-3 saatte yapabileceğiniz öngörülüyor. Sürüm yükseltme talimatlarını şu sayfada bulabilirsiniz.