Ben CodeIgniter ile başladım ve Google birkaç saat sonra dalış biraz kafam karıştı.
En kolay örnekle sorumu açıklamaya çalışalım: Ben alanlar 'isim' ve 'renk' ile bir tablo 'otomobil' var. Benim kod şöyle nihayet bakmak olabilir ki bu nedenle ben, bir php sınıf Car istiyorum:
$car = new Car('BMW', 'red'); //new $car Object
$car->save(); //this will make an SQL insert to the table 'car'
//Lets query all cars
$cars = Car::get_all();
//cars will be an array of Car objects, (not a set of rows!)
Bu nedenle, sana RubyOnRails veya Django (Python) ne var oldukça benzer bir şey arıyorum. Ben ilişkilerin her türlü işlemek için ve gerçek bir OOP + MVC şekilde yazma kod gerekiyor.
Bu almak için benim başarısız yaklaşımlar:
Using an external ORM (DataMapper, Doktrin, AcidCrud ...)
Onlar da çok ayarları gerektirir, ya da kötü bir şekilde ilişkileri ele.
Using CodeIgniter classes (CodeIgniter'ın Model sınıfını genişletmek için)
class Car extends Model{
public function Car($name='',$color='')
{
$this->name = $name;
$this->color = $color;
parent::Model();
}
public function save()
{
$data = array(
'name' => $this->name ,
'color' => $this->color
);
$this->db->insert('cars' $data);
}
Ve böylece ... Bu yaklaşım ile sorun olduğunu, bir, ben bu gibi CodeIgniter, gelen bir sürü şey içeren bir $ araba nesnenin var_dump () bakın eğer objeler vb CI_Config, CI_Input, CI_Benchmark, benim sınıf Araba her nesne, bu tekrarlanan verilerin bir sürü içerir çünkü nedenle ben (o kötü performansa sahip olacak!), bu iyi bir çözüm olmadığını düşünüyorum, öyle değil mi?
Not using the CodeIgniter's models
Ben CodeIgniter'ın Model sınıfından onları uzanan ve daha sonra düzenli PHP5 yapıcısı (yerine fonksiyon Araç __construct () ()) kullanmadan benim modellerini yapabilir, ama bu durumda sorun şudur: Ben querys yapmak için $ db nesneye erişmek nasıl CodeIgniter'ın ActiveRecord kullanıyor? ve, ben denetleyicileri dahilinde modelleri (kendi sınıfları) yüklemek nasıl?