2011-03-10 62 views
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)的方法中。但是,现在需要这些功能的类完全依赖于它们。没有这种依赖关系,我在这个项目中的类实际上是“复制,粘贴,包含和实例化”,这就是我想要保留它们的方式。

我很想知道其他人如何处理这种情况。

回答

1

如果我正确理解你的问题,这听起来像你应该看着php的spl_autoload功能。

这里是一个教程:http://www.phpro.org/tutorials/SPL-Autoload.html

+0

**感谢vicTROLLA; **这不正是我上一下,我已经在使用的核心'__autoload()'对自动加载(而SPL为更强大,这在这个项目中根本就没有必要)这个项目中的一些类可以完全独立运行,也许是最好的松耦合。我的'路由器'是其中之一,但是需要上述功能,但其他类也是如此。我看到它的选择,是在每个课程中重复必要的方法,或将它们加载到外部库中。我只是对保持松散耦合的替代品感到好奇。 – Dan 2011-03-11 03:44:11