Caching (önbellekleme) uygulamanızın çalışma hızı açısından çok büyük bir önem sarf ediyor. Laravel'de de caching modülünün kullanımı gayet basit. Ancak, birçok eğitici video ve makale bu kısmı atladığı için, kaçırmış olabilme ihtimaliniz çok fazla.Nerede ve nasıl caching kullanmalısınız sorusunu cevaplayacak olursam, farz edin ki, elinizde bir uygulama var ve bu uygulamanızdaki veritabanı sorguları 1 milyon satırlık tablolar arasında birden fazla join sorgusundan oluşuyor, üstüne üstlük, tüm bu sorguların sonucu da bir gün içerisinde hiç değişmiyor.
Closure, PHP'ye 5.3.0 ile gelmiş olan önemli bir özellik. Tam olarak ne olduğunu tanımlamam biraz zor, ancak tanımlamaya çalışacak olursam, isimsiz, fonksiyon görünümlü objeler olduklarını söyleyebilirim. Bu tanım size garip gelmiş olabilir, ama örnekleri inceleyince daha net anlayabileceğinizi düşünüyorum.
Generator PHP 5.5.0 ile gelmiş olan önemli bir yenilik olup, en basit ve net tanımı, memory'den(hafızadan) kazanım sağlayabileceğiniz iteratörler olduğudur. Açıkçası generator'ın önemini ben de başta pek idrak edememiştim, ancak daha sonradan çok büyük dosyalar üzerinde işlem yaparken, karşılaştığım memory problemleri, generator kullanmanın ne kadar önemli olduğunu bana acı bir şekilde öğretmişti.Burada da verilen en klişe, ama net olan örneği vereceğim. foreach (range(0, 1000000) as
Trait, PHP 5.4.0 ile gelmiş, nesneye yönelik programlama konseptlerinden birisidir. Başka dillerde de trait kullanımı olmakla beraber, Perl(roles), Scala(trait), Ruby(modules), birçok kişi hala ne olduğunu tam olarak bilmemekte ve yeteri kadar kullanmamaktadır.Trait'in basit bir tanımını yapacak olursam, interface gibi, bir class'ın(sınıfın) neler yapabileceğini belirten, aynı zamanda da, class gibi, yöntemleri, implemented (uygulanmış) şekilde, direkt sağlayabilen kısmi sınıf uygulaması diyebilirim. Ne gibi durumlarda trait kullanmanız gerektiğini bir örnekle anlatayım.
Interface birçok şekilde tanımlanabilir, ama şu ana kadar gördüğüm en sade ve net tanımlamayı yapacak olursam, bir objenin(nesnenin) bir başka objenin ne olduğuna bağlı olmaması, ama o objenin yapabildiklerine bağlı olmasını düzenleyen, objelerin karşılıklı anlaşması olarak düşünebilirsiniz. Ancak tabii ki bu tanım da yeterli kalmayabilir, o yüzden biraz daha bu kavramı gerçek hayattan bir örnekle açıklayacağım.İşe geç kaldınız ve evden en kısa sürede çıkmanız lazım, ancak eşiniz, siz tam çıkarken, akşama ne yemek yapayım sorusunu soruyor, siz de herhangi bir şey yap, yeter ki yiyebilelim diye geçiştirip çıkıyorsunuz. Yani eşinize ne yapması gerektiğini belirtmeyip, özellik(interface) belirterek eşinizin üreteceği çıktının(objenin), yenilebilir özelliğe sahip herhangi bir şey olmasını bekliyorsunuz.