MVC modelleme veritabanı kişiler -

1 Cevap php

Ben bir PHP web uygulaması üzerinde çalışıyorum ve ben MVC modelini kullanmaya çalışıyorum. Kavramsal bir insan tanınabilir 'şey' olan bir satır, ya da ilgili satır kümesi - Ben 'database varlıklar' olarak mevcut bir çok şey var. Bu yüzden sık sık bir model sınıfı o şey için bir arayüz sağlamak için çalışıyoruz.

Yani tabii, değirmen işlevsellik çalıştırmak, varolan bir varlık var ondan bazı verileri almak ve bazen güncellemek için olduğunu. Ben sorunlarla nerede yeni bir varlık yaratmak için gerektiğinde ancak,. Varolan bir varlık için varsayılan veri hiçbiri henüz var!

Ben veritabanından veri seçmek ve tüm özelliklerini doldurmak böylece Örneğin, benim __construct() yöntemleri sıklıkla (WHERE id = $id için, yani $id) argümanlar olacak Bu verilerden nesne. Ben yeni bir varlık oluşturmak istiyorsanız Ancak, bu argümanlar için değerleri henüz yoktur!

Nasıl tüm bu durumu ele? Do you

  • Aynı nesne yaratma ve sonraki manipülasyon hem de işlevsellik sağlamak için deneyin
  • Sadece varlık yaratmak için bir başka sınıf var
  • önlemek __construct ve create() yeni varlıklar ve instantiate() mevcut olanlar için gibi somthing var
  • Başka bir şey?

1 Cevap

Eğer "yeni" nesneleri oluşturmak için yetenek gerekiyorsa, o zaman ben senin Kurucular varsayılan veritabanı yüklenirken gerektiğini sanmıyorum. PHP fonksiyon aşırı yükleme (yani Kurucular aşırı olamaz) desteklemediği, sadece bu amaç için bir işlev içine kurucusundan "veritabanından doldurmak" kodu kaldırmak, ya da {[(0)] verebilir ya }-tipi argümanı özellikleri veritabanından doldurulması gerektiğini belirten bir varsayılan değer:

function __construct($id = 0)
{
    if ($id == 0)
        // create with blank properties
    else
        // load from database
}

Sonra yeni bir nesne istiyorsanız, sadece hiçbir argüman ile çağrı ve veritabanından yüklemek istiyorsanız, id argümanı içerir.