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

@package は、PHP が 5.3 で真の名前空間を取得する前の疑似名前空間技術でした。そのため、ほぼすべての静的コード処理ツールは、存在する場合は名前空間を選択し、名前空間が存在しない場合にのみ @package を使用するように記述されていると思います。@package を名前空間の上に別のグループ化メカニズムとして使用し続けるという考えは、特に phpDocumentor に関して時折言及されていますが、これらの種類のアプリのいずれかでそのような動作を真に実装するための努力を私は知りません.

于 2013-04-01T20:30:35.897 に答える