3

我试图将一些 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>

现在我的问题是:这是什么原因,我该如何解决?

4

1 回答 1

2

在 PHP 在 5.3 中获得真正的命名空间之前,@package 是一种伪命名空间技术。因此,我认为几乎所有的静态代码处理工具都是为了在它们存在时选择命名空间而编写的,并且只有在不存在命名空间时才回退到使用 @package。有时会提到继续使用@package 作为命名空间之上的不同分组机制的想法,特别是关于 phpDocumentor,但我不知道在任何此类应用程序中真正实现此类行为的任何努力.

于 2013-04-01T20:30:35.897 回答