エラーレベル¶
Psalmは1から8までの異なる厳格さのレベルで実行できます。 レベル1が最も厳格で、レベル8が最も寛容です。 レベルが明示的に定義されていない場合、Psalmはデフォルトでレベル2になります。
一部の問題は常にエラーとして扱われます。これらは誤検出の可能性が非常に低い問題です。
レベル1では、Psalmが見つけることができるすべての問題(オプトイン機能のために出力されるものを除く)がエラーとして扱われます。これらの問題には、Psalmが特定の式の型を推論できないあらゆる状況が含まれます。
レベル2では、PsalmはMixed*
の問題を無視しますが、他のほとんどの問題をエラーとして扱います。
レベル3では、Psalmはより寛容になり始めます。例えば、Psalmはパラメータの型、戻り値の型、プロパティの型の欠落を許可します。
レベル4では、Psalmは_可能性のある_問題に対する問題を無視します。これらは誤検出である可能性が高くなります - アプリケーションコードがPsalmが推論できない動作を保証している可能性があります。
レベル5以上では、より多くの検証不可能なコードを許可し、より高いレベルではさらに寛容になります。
常にエラーとして扱われる問題¶
- AbstractMethodCall
- ComplexFunction
- ComplexMethod
- ConfigIssue
- DuplicateArrayKey
- DuplicateClass
- DuplicateFunction
- DuplicateMethod
- DuplicateParam
- DuplicateProperty
- EmptyArrayAccess
- ExtensionRequirementViolation
- ImplementationRequirementViolation
- ImpureByReferenceAssignment
- ImpureFunctionCall
- ImpureMethodCall
- ImpurePropertyAssignment
- ImpurePropertyFetch
- ImpureStaticProperty
- ImpureStaticVariable
- ImpureVariable
- InaccessibleClassConstant
- InaccessibleMethod
- InaccessibleProperty
- InterfaceInstantiation
- InvalidAttribute
- InvalidEnumMethod
- InvalidExtendClass
- InvalidGlobal
- InvalidInterfaceImplementation
- InvalidParamDefault
- InvalidParent
- InvalidPassByReference
- InvalidScope
- InvalidStaticInvocation
- InvalidThrow
- LoopInvalidation
- MethodSignatureMustOmitReturnType
- MethodSignatureMustProvideReturnType
- MissingDependency
- MissingFile
- MissingImmutableAnnotation
- MissingTemplateParam
- MissingThrowsDocblock
- NonStaticSelfCall
- NoValue
- NullArrayAccess
- NullFunctionCall
- NullIterator
- NullPropertyAssignment
- NullPropertyFetch
- NullReference
- OverriddenPropertyAccess
- ParadoxicalCondition
- ParentNotFound
- TooFewArguments
- UndefinedAttributeClass
- UndefinedClass
- UndefinedConstant
- UndefinedDocblockClass
- UndefinedFunction
- UndefinedGlobalVariable
- UndefinedInterface
- UndefinedTrait
- UndefinedVariable
- UnimplementedAbstractMethod
- UnimplementedInterfaceMethod
- UnrecognizedExpression
- UnrecognizedStatement
- UnusedFunctionCall
- UnusedMethodCall
レベル7以下で表示されるエラー¶
- AbstractInstantiation
- AssignmentToVoid
- CircularReference
- ConflictingReferenceConstraint
- ContinueOutsideLoop
- InvalidOverride
- InvalidTypeImport
- MethodSignatureMismatch
- NonVariableReferenceReturn
- OverriddenMethodAccess
- ParamNameMismatch
- ReservedWord
- UnhandledMatchCondition
- UninitializedProperty
レベル6以下で表示されるエラー¶
- InvalidArgument
- InvalidArrayAccess
- InvalidArrayAssignment
- InvalidArrayOffset
- InvalidCast
- InvalidCatch
- InvalidClass
- InvalidClone
- InvalidFunctionCall
- InvalidIterator
- InvalidMethodCall
- InvalidNamedArgument
- InvalidPropertyAssignment
- InvalidPropertyAssignmentValue
- InvalidPropertyFetch
- InvalidReturnStatement
- InvalidReturnType
- InvalidTemplateParam
- NullArgument
- NullArrayOffset
- TooManyTemplateParams
- TraitMethodSignatureMismatch
- UndefinedMethod
- UndefinedPropertyAssignment
- UndefinedPropertyFetch
- UndefinedThisPropertyFetch
レベル5以下で表示されるエラー¶
- ConstructorSignatureMismatch
- FalsableReturnStatement
- InvalidNullableReturnType
- LessSpecificImplementedReturnType
- MoreSpecificImplementedParamType
- NullableReturnStatement
- UndefinedInterfaceMethod
- UndefinedThisPropertyAssignment
レベル4以下で表示されるエラー¶
- FalseOperand
- ForbiddenCode
- ImplementedParamTypeMismatch
- ImplementedReturnTypeMismatch
- ImplicitToStringCast
- InternalClass
- InternalMethod
- InternalProperty
- InvalidDocblock
- InvalidLiteralArgument
- InvalidOperand
- InvalidScalarArgument
- InvalidToString
- MismatchingDocblockParamType
- MismatchingDocblockReturnType
- MissingDocblockType
- NoInterfaceProperties
- PossibleRawObjectIteration
- RedundantCondition
- RedundantFunctionCall
- RedundantPropertyInitializationCheck
- StringIncrement
- TooManyArguments
- TypeDoesNotContainNull
- TypeDoesNotContainType
- UndefinedMagicMethod
- UndefinedMagicPropertyAssignment
- UndefinedMagicPropertyFetch
レベル3以下で表示されるエラー¶
- ArgumentTypeCoercion
- LessSpecificReturnStatement
- MoreSpecificReturnType
- PossiblyFalseArgument
- PossiblyFalseIterator
- PossiblyFalseOperand
- PossiblyFalsePropertyAssignmentValue
- PossiblyFalseReference
- PossiblyInvalidArgument
- PossiblyInvalidArrayAccess
- PossiblyInvalidArrayAssignment
- PossiblyInvalidArrayOffset
- PossiblyInvalidCast
- PossiblyInvalidClone
- PossiblyInvalidFunctionCall
- PossiblyInvalidIterator
- PossiblyInvalidMethodCall
- PossiblyInvalidOperand
- PossiblyInvalidPropertyAssignment
- PossiblyInvalidPropertyAssignmentValue
- PossiblyInvalidPropertyFetch
- PossiblyNullArgument
- PossiblyNullArrayAccess
- PossiblyNullArrayAssignment
- PossiblyNullArrayOffset
- PossiblyNullFunctionCall
- PossiblyNullIterator
- PossiblyNullPropertyAssignment
- PossiblyNullPropertyAssignmentValue
- PossiblyNullPropertyFetch
- PossiblyNullReference
- PossiblyUndefinedArrayOffset
- PossiblyUndefinedGlobalVariable
- PossiblyUndefinedMethod
- PossiblyUndefinedVariable
- PropertyTypeCoercion
- RiskyCast
レベル2以下で表示されるエラー¶
- DeprecatedClass
- DeprecatedConstant
- DeprecatedFunction
- DeprecatedInterface
- DeprecatedMethod
- DeprecatedProperty
- DeprecatedTrait
- DirectConstructorCall
- DocblockTypeContradiction
- InvalidDocblockParamName
- InvalidFalsableReturnType
- InvalidStringClass
- MissingClosureParamType
- MissingClosureReturnType
- MissingConstructor
- MissingParamType
- MissingPropertyType
- MissingReturnType
- NullOperand
- PrivateFinalMethod
- PropertyNotSetInConstructor
- RawObjectIteration
- RedundantConditionGivenDocblockType
- RedundantFunctionCallGivenDocblockType
- ReferenceConstraintViolation
- RiskyTruthyFalsyComparison
- UndefinedTrace
- UnresolvableInclude
- UnsafeInstantiation
レベル1でのみ表示されるエラー¶
- LessSpecificReturnType
- MixedArgument
- MixedArgumentTypeCoercion
- MixedArrayAccess
- MixedArrayAssignment
- MixedArrayOffset
- MixedArrayTypeCoercion
- MixedAssignment
- MixedClone
- MixedFunctionCall
- MixedMethodCall
- MixedOperand
- MixedPropertyAssignment
- MixedPropertyFetch
- MixedPropertyTypeCoercion
- MixedReturnStatement
- MixedReturnTypeCoercion
- MixedStringOffsetAssignment
- MutableDependency
- PossiblyNullOperand
- RedundantIdentityWithTrue
- Trace
機能固有のエラー¶
- MissingOverrideAttribute
- PossiblyUndefinedIntArrayOffset
- PossiblyUndefinedStringArrayOffset
- PossiblyUnusedMethod
- PossiblyUnusedParam
- PossiblyUnusedProperty
- TaintedCallable
- TaintedCookie
- TaintedCustom
- TaintedEval
- TaintedExtract
- TaintedFile
- TaintedHeader
- TaintedHtml
- TaintedInclude
- TaintedInput
- TaintedLdap
- TaintedShell
- TaintedSleep
- TaintedSql
- TaintedSSRF
- TaintedSystemSecret
- TaintedUnserialize
- TaintedUserSecret
- TaintedXpath
- UncaughtThrowInGlobalScope
- UnevaluatedCode
- UnnecessaryVarAnnotation
- UnusedClass
- UnusedClosureParam
- UnusedConstructor
- UnusedDocblockParam
- UnusedForeachValue
- UnusedMethod
- UnusedParam
- UnusedProperty
- UnusedPsalmSuppress
- UnusedVariable