Мне любопытно узнать, как коллеги-разработчики управляют независимым от проекта кодом / библиотеками?
Например, с учетом этих двух функций:
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), я мог бы просто изменить их на библиотеку и include
эту библиотеку в проекте. Однако теперь классы, требующие этих функций, полностью зависимы. Без такой зависимости мои классы в этом проекте в буквальном смысле слова " копируют, вставляют, включают и создают ", что я и хотел бы сохранить.
Мне любопытно узнать, как другие справляются с такими ситуациями.