Smarty / views / şablonlar veritabanı çağrıları

3 Cevap php

Bugün iş başında birisi bana ikna etmeye çalıştı:

{$obj->getTableInfo()}

bir nesne yöntemi kullanıyor çünkü smarty / mvc / çiftleşmiş için gayet iyi. Ben veritabanına bir çağrı yapar çünkü orada olmanın yeri yoktur ve (biz aslında MVC kullanmayın) denetleyicisi olması gerektiğini savundu. Ben sağ MVC kullanılan mantıksal ayrımları benim anlayış ve genellikle çiftleşmiş mıyım? Ya da ben eksik bir şey var mı?

3 Cevap

Haklısın. O yanlış.

Veritabanı MVC sağ yapmak istiyorsanız ne şekilde, denetleyicisi yaşamak olursa olsun, çağırır.

Açıkçası insanlar tüm bu should olması ve bunun gibi şeyler ne üzerinde işemek, ama bu doğru bir yol değil.

Peki, orada hiçbir "resmi" kurallar ya da bir şey, ama ben böyle bir şey denetleyicisi ait düşünüyorum. Ben ekran değişkenler, bir if daha karmaşık bir şey ya da bir foreach-tipi döngü izin hariç bence kodda bir şey yapmak değil. Kesinlikle veritabanı erişimi işlevlerini çağıran değil. İşte tüm kontrolör tarafından yüklenmiş olması gerekir, görünüm sadece o ya da değil görüntülemek için gereken karar vermelidir.

Gerçekten kendi bağlamı ve kapsamına bağlıdır.

Denetleyicisi veya model katman obj $ mı? İşte bu bence geçerli olup olmadığını cevaplamak gerekir.

Diğer cevaplar okuma yanıt olarak.

Kendi içinde işlevleri ismi basit bir alıcı bir yöntem olmasının onu ilgilidir. Bir denetleyici katmanı üzerinden db bir çağrı yapabilir. Ben tamam olduğunu söyleyebilirim Hangi. Bellekte önbelleğe çeşit kullanılan, özellikle eğer. (Yani alıcı bir kez kullanıldığında yalnızca önbelleğe istediğiniz gibi setter olduğunu.)