s1nc4pp
Merhaba çoklu tema sisteminde temaya göre içerik çekmek gerekebiliyor.Lakin genel mvc lerde sorgular controllerdan çekilip direk view e gönderildiği için böyel bir olasılık yok.Codeigniter de view den active record ile sorgu oluşturup çekebiliyorduk.Laravel de bunu yapsak herhangi bir sorun çıkartırmı bize.Performans kaybı vs.
iozguradem
Bildiğim kadarıyla blade şablonları zaten cache klasörü altında saf php dosyalarına dönüştürülüyor. Performans olarak çok fazla sorun çıkacağını sanmıyorum. Ama mantık olarak doğru olmaz. View'lar bu iş için değil, kullanıcıya sonuçların gösterilmesi için varlar.
Peki çoklu temada bu sorun nasıl çözülebilir? Ben olsam View sınıfını extend ederdim. Extend ettiğim sınıfta tamayı belirlerdim ve tüm View çağırma işlemlerini extend ettiğim View sınıfı üzerinden yapardım. XView::make gibi. Böylelikle view'da veritabanı sorgulaması yapmış olmazdım.
Tabi best practices nedir bu konuda öğrenmek isterim.
Aristona
View katmanında hiçbir zaman sorgu çalıştırmamanız lazım. Eğer her temaya özel veri çekilmesi gerekiyorsa, View composer vb. kullanabilirsiniz.
Bana sorarsan, her temaya özel veri çekmek mantıksız. Ben olsam, çekeceğim verileri her temanın mutlaka kullanabileceği şekilde çekerdim. (örn JSON formatında çekip, gerekli yerlere yapıştırmak gibi.) Böylece istediğin kadar temayı hem destekler, hem de ileride masaüstü/mobil uygulamalara da altyapı sağlamış olurdum. Klasik rest mantığı.
CI bir MVC frameworkü. View katmanında sorgu yapmaktan başka çözümler eminim vardır. View katmanında sorgu/mantık olmamalı, amaç sadece görsellik/dekorasyon olmalı.