我尝试将某些PHP框架的指标与PHP Depend进行比较,并遇到令人烦恼且可能出乎意料的行为:
@package
注释被忽略,而命名空间被视为包。这是一个问题,因为通常使用的子命名空间不是单独的包(即SomePackage\Exception
)
<?php
/**
*
* This file is part of the Aura Project for PHP.
*
* @package Aura.Di
*
* @license http://opensource.org/licenses/bsd-license.php BSD
*
*/
namespace Aura\Di\Exception;
use Aura\Di\Exception;
/**
*
* The named DI container already exists.
*
* @package Aura.Di
*
*/
class ContainerExists extends Exception
{
}
<package name="Aura\Di\Exception" cr="0.15" noc="5" nof="0" noi="0" nom="0" rcr="0.28114285714286">
...
</package>
现在我的问题是:原因是什么以及我该如何解决?
答案 0 :(得分:2)
@package是一种伪命名技术,在PHP获得5.3中的真名称空间之前。因此,我认为几乎每个静态代码处理工具都是为了在存在时选择命名空间而编写的,并且如果不存在命名空间,则只返回使用@package。有时会提到继续使用@package作为命名空间之上的不同分组机制的想法,特别是关于phpDocumentor,但我不知道在任何这类应用程序中真正实现此类行为的任何努力