PHP: Phan の指摘内容(Issueタイプ一覧)

ソースコード以外にも .phan/config.php の設定 と PHPDoc 形式のコメントの (Annotating, PHPDoc Types)も合わせて確認する

カテゴリー概要
  • AccessError (アクセスエラー)
  • CompatError (互換性エラー) - 参照: PHP7 移行マニュアル
  • Context (コンテキスト)
  • DeprecatedError (@deprecated コメント)
  • NOOPError (ノーオペレーション(何もしない)エラー) - 削除を検討
  • ParamError (引数エラー)
  • RedefineError (再定義エラー) - 定義の重複。同じ名前で複数回定義してる?
  • StaticCallError (スタティックコールエラー)
  • TypeError (型キャストエラー) - PHPDoc 形式のアノテーション (@param@return など)も含めて確認する
  • UndefError (未定義の参照) - まずは .phan/config.php の設定を疑ってみる
  • VarError (変数エラー)
Issueタイプ一覧
カテゴリー 重要度 Issueタイプ 概要
AccessError CRITICAL PhanAccessMethodPrivate 外部から private メソッドへのアクセス
AccessError CRITICAL PhanAccessMethodProtected 外部から protected メソッドへのアクセス
AccessError CRITICAL PhanAccessNonStaticToStatic 親クラスの静的じゃないメソッド名で静的メソッドを定義
AccessError CRITICAL PhanAccessPropertyPrivate 外部から private プロパティーへのアクセス
AccessError CRITICAL PhanAccessPropertyProtected 外部から protected プロパティーへのアクセス
AccessError CRITICAL PhanAccessStaticToNonStatic 親クラスの静的メソッド名で静的じゃないメソッドを定義
AccessError NORMAL PhanAccessSignatureMismatch オーバーライドしたメソッドのアクセス権が親クラスと異なる
AccessError NORMAL PhanAccessSignatureMismatchInternal  
CompatError NORMAL PhanCompatibleExpressionPHP7 PHP7の互換性(演算子)
CompatError NORMAL PhanCompatiblePHP7 PHP7の互換性
Context CRITICAL PhanContextNotObject new parent;
DeprecatedError NORMAL PhanDeprecatedClass 非推奨のクラス
DeprecatedError NORMAL PhanDeprecatedFunction 非推奨の関数
DeprecatedError NORMAL PhanDeprecatedProperty 非推奨のプロパティー
NOOPError NORMAL PhanUnreferencedClass 参照されないクラス
NOOPError NORMAL PhanUnreferencedConstant 参照されない定数
NOOPError NORMAL PhanUnreferencedMethod 参照されないメソッド
NOOPError NORMAL PhanUnreferencedProperty 参照されないプロパティー
NOOPError LOW PhanNoopArray 何もしない配列
NOOPError LOW PhanNoopClosure 何もしないクロージャー
NOOPError LOW PhanNoopConstant 何もしない定数
NOOPError LOW PhanNoopProperty 何もしないプロパティー
NOOPError LOW PhanNoopVariable 何もしない変数
ParamError NORMAL PhanParamRedefined 同じ名前のパラメータをひとつの関数に複数定義できない
ParamError NORMAL PhanParamSignatureMismatch オーバーライドしたメソッドの引数(数,型)が親クラスと異なる
ParamError NORMAL PhanParamSignatureMismatchInternal  
ParamError NORMAL PhanParamSpecial1  
ParamError NORMAL PhanParamSpecial2  
ParamError NORMAL PhanParamSpecial3  
ParamError NORMAL PhanParamSpecial4  
ParamError NORMAL PhanParamTooFew 関数呼出時の引数不足
ParamError NORMAL PhanParamTooFewInternal ビルトイン関数呼出時の引数不足
ParamError NORMAL PhanParamTypeMismatch  
ParamError LOW PhanParamReqAfterOpt function f2($p1 = null, $p2) {}
ParamError LOW PhanParamTooMany 関数呼出時の引数過多
ParamError LOW PhanParamTooManyInternal ビルトイン関数呼出時の引数過多
RedefineError NORMAL PhanIncompatibleCompositionMethod  
RedefineError NORMAL PhanIncompatibleCompositionProp  
RedefineError NORMAL PhanRedefineClass クラス定義の重複
RedefineError NORMAL PhanRedefineClassInternal 内部クラス定義の重複
RedefineError NORMAL PhanRedefineFunction 関数定義の重複
RedefineError NORMAL PhanRedefineFunctionInternal 内部関数定義の重複
StaticCallError NORMAL PhanStaticCallToNonStatic class C {function f() {}} C::f();
TypeError CRITICAL PhanNonClassMethodCall クラスじゃない変数からメソッドの呼出($a->f())
TypeError NORMAL PhanTypeArrayOperator function g() { return []; } $v = g() - 42;
TypeError NORMAL PhanTypeArraySuspicious 配列以外の配列要素アクセス($a = false; $a[1])
TypeError NORMAL PhanTypeInstantiateAbstract 抽象クラスのインスタンス化
TypeError NORMAL PhanTypeInstantiateInterface インターフェースのインスタンス化
TypeError NORMAL PhanTypeInvalidLeftOperand class C{ public static $a = [1]; } $a = 2 + C::$a;
TypeError NORMAL PhanTypeInvalidRightOperand  
TypeError NORMAL PhanTypeMismatchArgument 関数呼出時の引数の型が異なる
TypeError NORMAL PhanTypeMismatchArgumentInternal ビルトイン関数呼出時の引数の型が異なる
TypeError NORMAL PhanTypeMismatchDefault 関数の引数の型宣言とデフォルト引数の型が異なる
TypeError NORMAL PhanTypeMismatchForeach foreach できない値で foreach
TypeError NORMAL PhanTypeMismatchProperty class A {/** @var bool */public $p = 'str'; }
TypeError NORMAL PhanTypeMismatchReturn (PHPDoc含む)定義と異なる値を return
TypeError NORMAL PhanTypeMissingReturn (PHPDoc含む)定義があるのに、何も返していない
TypeError NORMAL PhanTypeNonVarPassByRef 参照の引数にリテラル(function f(&$v){} f('str');)
TypeError NORMAL PhanTypeParentConstructorCalled コンストラクタで parent::__construct() 呼んでない
TypeError LOW PhanTypeComparisonFromArray 配列と配列以外の比較
TypeError LOW PhanTypeComparisonToArray 配列以外と配列の比較
TypeError LOW PhanTypeConversionFromArray 配列から別の型への変換
TypeError LOW PhanTypeVoidAssignment void を代入
UndefError CRITICAL PhanParentlessClass 継承してないのに、 parent::
UndefError CRITICAL PhanSyntaxError シンタックスエラー
UndefError CRITICAL PhanUndeclaredClass 未定義のクラスへの参照
UndefError CRITICAL PhanUndeclaredClassCatch 未定義のクラスで catch
UndefError CRITICAL PhanUndeclaredClassConstant 未定義のクラスから定数への参照
UndefError CRITICAL PhanUndeclaredClassInstanceof 未定義のクラスで instanceof
UndefError CRITICAL PhanUndeclaredClassMethod 未定義のクラスからのメソッドの呼び出し
UndefError CRITICAL PhanUndeclaredExtendedClass 未定義の親クラス
UndefError CRITICAL PhanUndeclaredFunction 未定義の関数
UndefError CRITICAL PhanUndeclaredInterface 未定義のインターフェース
UndefError CRITICAL PhanUndeclaredTrait 未定義のトレイト
UndefError NORMAL PhanUndeclaredClassReference 未定義のクラスへの参照
UndefError NORMAL PhanUndeclaredConstant 未定義の定数への参照
UndefError NORMAL PhanUndeclaredMethod 未定義のメソッドの呼び出し
UndefError NORMAL PhanUndeclaredProperty 未定義のプロパティーの参照
UndefError NORMAL PhanUndeclaredStaticMethod 未定義のメソッドの静的呼び出し
UndefError NORMAL PhanUndeclaredStaticProperty 未定義の静的プロパティーの参照
UndefError NORMAL PhanUndeclaredTypeParameter 未定義の(関数の引数の)型宣言
UndefError NORMAL PhanUndeclaredTypeProperty (PHPDoc含む)未定義のプロパティーの型
UndefError NORMAL PhanUndeclaredVariable 未定義の変数の参照
UndefError LOW PhanEmptyFile 空ファイル
UndefError LOW PhanTraitParentReference トレイトから親への参照(parent::)
UndefError LOW PhanUnanalyzable  
VarError NORMAL PhanVariableUseClause  
Generic NORMAL PhanGenericConstructorTypes  
Generic NORMAL PhanGenericGlobalVariable  
Generic NORMAL PhanTemplateTypeConstant  
Generic NORMAL PhanTemplateTypeStaticMethod  
Generic NORMAL PhanTemplateTypeStaticProperty