1
我很想知道開發人員如何管理項目不可知的代碼/庫?管理不依賴項目的代碼庫
例如,假設這兩個函數:
function array_exclude_keys(Array $array, Array $keys){
foreach($keys as $key){
unset($array[$key]);
}
return $array;
}
function array_order_to_assoc(Array $array){
do{
$return[current($array)] = next($array);
}while(next($array));
return !empty($return) ? $return : null;
}
這些有一個非常普遍的應用。在我目前正在研究的項目中,至少在兩個地方需要array_exclude
功能,至少需要一個array_order_to_assoc
。我甚至可以想到其他將從這些語義上受益的項目。
現在,我們可以簡單地將它們修改爲庫,並將它們寫入項目中的庫中,而不是將它們寫入必要類(非DRY)的方法中。但是,現在需要這些功能的類完全依賴於它們。沒有這種依賴關係,我在這個項目中的類實際上是「複製,粘貼,包含和實例化」,這就是我想要保留它們的方式。
我很想知道其他人如何處理這種情況。
**感謝vicTROLLA; **這不正是我上一下,我已經在使用的核心'__autoload()'對自動加載(而SPL爲更強大,這在這個項目中根本就沒有必要)這個項目中的一些類可以完全獨立運行,也許是最好的鬆耦合。我的'路由器'是其中之一,但是需要上述功能,但其他類也是如此。我看到它的選擇,是在每個課程中重複必要的方法,或將它們加載到外部庫中。我只是對保持鬆散耦合的替代品感到好奇。 – Dan 2011-03-11 03:44:11