Ben bağımlılık enjeksiyon ve bunun yararına her zaman bahsediyoruz insanlar duymak, ama ben gerçekten anlamıyorum.
O "Ben argümanlar olarak her zaman veritabanı bağlantıları geçirmek" sorununa bir çözüm olmadığını merak ediyorum.
Bunun üzerine wikipedia girişini okuma çalıştı, ama ben sağlam açıklığa kavuşturmak için çalışıyor farkı anlayamıyorum böylece örnek Java ile yazılmış. (http://en.wikipedia.org/wiki/Dependency_injection).
Ben bu bağımlılık-enjeksiyon-in-php makale (http://www.potstuck.com/2009/01/08/php-dependency-injection/) okumak ve objektif bir nesneye doğrudan bağımlılıkları geçmek değil, ama oluşturulması ile birlikte bir nesnenin oluşturulmasını kordon altına gibi görünüyor it bağımlılıkları bulunuyor. Gerçi, bir kullanarak php fonksiyonları bağlamında bu uygulamak nasıl emin değilim.
Ayrıca, aşağıdaki Bağımlılık Enjeksiyon, ve ben bir fonksiyonel bağlamda bağımlılık enjeksiyon yapmaya çalışıyor rahatsız gerekir?
Sürüm 1: (ben oluşturmak, ama sevmiyorum kod tür, her gün)
function get_data_from_database($database_connection){
$data = $database_connection->query('blah');
return $data;
}
Versiyon 2: (bir veritabanı bağlantısı geçmek zorunda değil, ama belki de enjeksiyon bağımlılık değil mi?)
function get_database_connection(){
static $db_connection;
if($db_connection){
return $db_connection;
} else {
// create db_connection
...
}
}
function get_data_from_database(){
$conn = get_database_connection();
$data = $conn->query('blah');
return $data;
}
$data = get_data_from_database();
Versiyon 3: (/ data "nesne" nin oluşturulması ayrı, ve veritabanı kodu hala, bu yüzden belki de bu bağımlılık enjeksiyon olarak saymak olacaktır?)
function factory_of_data_set(){
static $db_connection;
$data_set = null;
$db_connection = get_database_connection();
$data_set = $db_connection->query('blah');
return $data_set;
}
$data = factory_of_data_set();
Herkes yöntem ve fayda-kristal netliğinde yapan iyi bir kaynak ya da sadece fikir var mı?