Tamam, böylece herkes karar verdi (ve iyi bir nedenle) boğaz SQL şeytanın olduğunu. Bu veritabanından bizim kodunu ayırmak için bizim kodu bir "orta-adam" yerleştirerek birçok yöntem ile bize bırakır. Şimdi ben umut birisi toplanan tüm bilgi boğaz bana ayarlamak ve ben yerleşik bana ne söyleyebilir tükürmek için gidiyorum.
Bir ORM (Object-ilişkisel eşleme) uygulamasında nesnelere veritabanı satır eşleyen bir dizi araç (gevşek veya sıkı entegre bağlıdır) 'dir.
Bir AR (Active-Record) bir veritabanı tablo veya görünümü, bir sınıf içine sarılmış ve böylece bir nesne örneği tabloda tek bir satıra bağlı olduğu ORM bir türüdür.
Veri haritalama (DM), iki farklı veri modelleri arasında veri elemanı eşlemeleri oluşturma işlemidir ORM bir türüdür.
Bu gibi çalışmak için her üç iddia:
$user = new User();
$user->name = 'Fred';
$user->save();
Genellikle böyle bir kullanıcı sınıfı şey:
class User extends Model {
// Specify the database table
protected $table = "users";
// Define your fields
protected $fields = array(
'id' => array('type' => 'int', 'primary' => true),
'name' => array('type' => 'string', 'required' => true),
'email' => array('type' => 'text', 'required' => true)
);
}
Bu kurulum ile kolayca SQL yazmaya gerek kalmadan satırları getirebilir.
// users
$users = $user->fetch(array('id' => 3));
Bazı AR sınıflar aslında buna benziyor:
$db->where('id' => 3);
$db->join('posts', 'posts.user_id = users.id');
$results = $db->get('users');
O kıllı alır nerede Tamam, şimdi bu. Herkes ve kardeşi nerede düşüyor ne tür kodun farklı bir görünümü var gibi görünüyor. Çoğu bir AR veya DM ORM bir tür olduğunu kabul ederken - ama bazen DM yıllardan itibaren AR adlı söylemek hatları smear gibi görünüyor.
Ben bu nesneye çağrı yapmak ve sonuç tasarrufu / getiriliyor SQL oluşturulmasını işleyen tek bir nesneyi ($ db) kullanan bir sınıf yazdım.
//Fetch the users
$results = $db->select('id, name')->where('id > 4')->get('users');
//Set them active
while($user = $results->fetch()) {
$user->active = TRUE;
$user->save();
}
Yani soru "? Nedir" olduğunu, ve neden insanlar bu şartlar yok ediyorsunuz?