Aerendir/bundle-features

View on GitHub
.baseline-psalm.xml

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="4.24.0@06dd975cb55d36af80f242561738f16c5f58264f">
  <file src="src/DependencyInjection/Configuration.php">
    <InvalidOperand occurrences="2">
      <code>$numOfUnits</code>
      <code>$numOfUnits</code>
    </InvalidOperand>
    <MissingClosureParamType occurrences="6">
      <code>$price</code>
      <code>$price</code>
      <code>$price</code>
      <code>$price</code>
      <code>$tree</code>
      <code>$tree</code>
    </MissingClosureParamType>
    <MissingConstructor occurrences="3">
      <code>$pricesKey</code>
      <code>$pricesType</code>
      <code>$unitaryPriceKey</code>
    </MissingConstructor>
    <MissingDocblockType occurrences="1">
      <code>private array $foundDrawers = [];</code>
    </MissingDocblockType>
    <MissingParamType occurrences="1">
      <code>$subscriptionType</code>
    </MissingParamType>
    <PossiblyUndefinedMethod occurrences="1">
      <code>children</code>
    </PossiblyUndefinedMethod>
  </file>
  <file src="src/Form/DataTransformer/AbstractFeatureTransformer.php">
    <PossiblyNullReference occurrences="1">
      <code>get</code>
    </PossiblyNullReference>
  </file>
  <file src="src/Form/DataTransformer/BooleanFeatureTransformer.php">
    <MoreSpecificImplementedParamType occurrences="2">
      <code>$enabled</code>
      <code>$feature</code>
    </MoreSpecificImplementedParamType>
    <ParamNameMismatch occurrences="2">
      <code>$enabled</code>
      <code>$feature</code>
    </ParamNameMismatch>
    <RedundantCondition occurrences="1">
      <code>false</code>
    </RedundantCondition>
  </file>
  <file src="src/Form/DataTransformer/CountableFeatureTransformer.php">
    <MoreSpecificImplementedParamType occurrences="2">
      <code>$feature</code>
      <code>$pack</code>
    </MoreSpecificImplementedParamType>
    <ParamNameMismatch occurrences="2">
      <code>$feature</code>
      <code>$pack</code>
    </ParamNameMismatch>
  </file>
  <file src="src/Form/DataTransformer/FeaturesCollectionTransformer.php">
    <MoreSpecificImplementedParamType occurrences="2">
      <code>$features</code>
      <code>$features</code>
    </MoreSpecificImplementedParamType>
    <ParamNameMismatch occurrences="2">
      <code>$features</code>
      <code>$features</code>
    </ParamNameMismatch>
  </file>
  <file src="src/Form/DataTransformer/RechargeableFeatureTransformer.php">
    <MoreSpecificImplementedParamType occurrences="2">
      <code>$feature</code>
      <code>$pack</code>
    </MoreSpecificImplementedParamType>
    <ParamNameMismatch occurrences="2">
      <code>$feature</code>
      <code>$pack</code>
    </ParamNameMismatch>
  </file>
  <file src="src/Form/Type/FeaturesType.php">
    <ArgumentTypeCoercion occurrences="7">
      <code>$subscribedFeature</code>
      <code>$subscribedFeature</code>
      <code>$subscribedFeature</code>
      <code>$subscribedFeature-&gt;getConfiguredFeature()</code>
      <code>$subscribedFeature-&gt;getConfiguredFeature()</code>
      <code>$subscribedFeature-&gt;getConfiguredFeature()</code>
      <code>$subscribedFeature-&gt;getConfiguredFeature()</code>
    </ArgumentTypeCoercion>
    <InvalidOperand occurrences="1">
      <code>$result += (float) $sum</code>
    </InvalidOperand>
    <MissingClosureParamType occurrences="2">
      <code>$val</code>
      <code>$val</code>
    </MissingClosureParamType>
    <PossiblyNullReference occurrences="1">
      <code>isStillActive</code>
    </PossiblyNullReference>
    <TypeDoesNotContainType occurrences="1">
      <code>$subscribedPack instanceof ConfiguredCountableFeaturePack</code>
    </TypeDoesNotContainType>
    <UndefinedInterfaceMethod occurrences="4">
      <code>getInstantPrice</code>
      <code>getInstantPrice</code>
      <code>getPrice</code>
      <code>getPrice</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="src/InvoiceDrawer/AbstractInvoiceDrawer.php">
    <PropertyNotSetInConstructor occurrences="1">
      <code>$currencyFormatter</code>
    </PropertyNotSetInConstructor>
    <TypeDoesNotContainNull occurrences="1">
      <code>null === $this-&gt;currencyFormatter</code>
    </TypeDoesNotContainNull>
    <UninitializedProperty occurrences="1">
      <code>$this-&gt;currencyFormatter</code>
    </UninitializedProperty>
  </file>
  <file src="src/InvoiceDrawer/PlainTextDrawer.php">
    <InvalidReturnStatement occurrences="1">
      <code>$return</code>
    </InvalidReturnStatement>
    <InvalidReturnType occurrences="1">
      <code>string</code>
    </InvalidReturnType>
    <PossiblyFalseOperand occurrences="2">
      <code>\iconv_strlen($equalsSeparatorShort)</code>
      <code>\iconv_strlen($totalGrossAmount)</code>
    </PossiblyFalseOperand>
    <PossiblyNullReference occurrences="2">
      <code>getHeader</code>
      <code>hasHeader</code>
    </PossiblyNullReference>
    <PropertyNotSetInConstructor occurrences="1">
      <code>$tableWidth</code>
    </PropertyNotSetInConstructor>
  </file>
  <file src="src/Manager/FeaturesManager.php">
    <PossiblyNullReference occurrences="6">
      <code>getInstantPrice</code>
      <code>modify</code>
      <code>modify</code>
      <code>modify</code>
      <code>modify</code>
      <code>modify</code>
    </PossiblyNullReference>
    <PossiblyUndefinedMethod occurrences="2">
      <code>getInstantPrice</code>
      <code>getPack</code>
    </PossiblyUndefinedMethod>
    <PropertyNotSetInConstructor occurrences="2">
      <code>$oldSubscription</code>
      <code>$subscription</code>
    </PropertyNotSetInConstructor>
    <RedundantConditionGivenDocblockType occurrences="3">
      <code>$feature instanceof SubscribedCountableFeature</code>
      <code>\is_array($feature)</code>
      <code>null !== $checkingFeature</code>
    </RedundantConditionGivenDocblockType>
    <TypeDoesNotContainNull occurrences="1">
      <code>null === $this-&gt;subscription</code>
    </TypeDoesNotContainNull>
    <UndefinedInterfaceMethod occurrences="1">
      <code>getInstantPrice</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="src/Manager/InvoicesManager.php">
    <InvalidPropertyAssignmentValue occurrences="1">
      <code>$drawer</code>
    </InvalidPropertyAssignmentValue>
    <InvalidReturnStatement occurrences="1">
      <code>$drawer</code>
    </InvalidReturnStatement>
    <InvalidReturnType occurrences="1">
      <code>InvoiceDrawerInterface</code>
    </InvalidReturnType>
    <PropertyNotSetInConstructor occurrences="2">
      <code>$drawers</code>
      <code>$subscription</code>
    </PropertyNotSetInConstructor>
    <UndefinedInterfaceMethod occurrences="2">
      <code>getTaxName</code>
      <code>getTaxRate</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="src/Model/Feature/AbstractFeature.php">
    <NoInterfaceProperties occurrences="2">
      <code>$this-&gt;name</code>
      <code>$this-&gt;type</code>
    </NoInterfaceProperties>
  </file>
  <file src="src/Model/Feature/AbstractFeaturesCollection.php">
    <MissingClosureParamType occurrences="1">
      <code>$element</code>
    </MissingClosureParamType>
  </file>
  <file src="src/Model/Feature/Configured/ConfiguredBooleanFeature.php">
    <PropertyNotSetInConstructor occurrences="8">
      <code>ConfiguredBooleanFeature</code>
      <code>ConfiguredBooleanFeature</code>
      <code>ConfiguredBooleanFeature</code>
      <code>ConfiguredBooleanFeature</code>
      <code>ConfiguredBooleanFeature</code>
      <code>ConfiguredBooleanFeature</code>
      <code>ConfiguredBooleanFeature</code>
      <code>ConfiguredBooleanFeature</code>
    </PropertyNotSetInConstructor>
  </file>
  <file src="src/Model/Feature/Configured/ConfiguredCountableFeature.php">
    <NoInterfaceProperties occurrences="1">
      <code>$this-&gt;refreshPeriod</code>
    </NoInterfaceProperties>
    <ParamNameMismatch occurrences="1">
      <code>$class</code>
    </ParamNameMismatch>
    <PropertyNotSetInConstructor occurrences="5">
      <code>$packs</code>
      <code>$refreshPeriod</code>
      <code>$taxName</code>
      <code>$taxRate</code>
      <code>ConfiguredCountableFeature</code>
    </PropertyNotSetInConstructor>
  </file>
  <file src="src/Model/Feature/Configured/ConfiguredCountableFeaturePack.php">
    <PropertyNotSetInConstructor occurrences="7">
      <code>ConfiguredCountableFeaturePack</code>
      <code>ConfiguredCountableFeaturePack</code>
      <code>ConfiguredCountableFeaturePack</code>
      <code>ConfiguredCountableFeaturePack</code>
      <code>ConfiguredCountableFeaturePack</code>
      <code>ConfiguredCountableFeaturePack</code>
      <code>ConfiguredCountableFeaturePack</code>
    </PropertyNotSetInConstructor>
  </file>
  <file src="src/Model/Feature/Configured/ConfiguredFeaturesCollection.php">
    <ConstructorSignatureMismatch occurrences="1">
      <code>$elements</code>
    </ConstructorSignatureMismatch>
    <ImplementedParamTypeMismatch occurrences="1">
      <code>$elements</code>
    </ImplementedParamTypeMismatch>
    <MethodSignatureMismatch occurrences="1">
      <code>public function __construct(array $elements = [])</code>
    </MethodSignatureMismatch>
    <MismatchingDocblockReturnType occurrences="3">
      <code>ConfiguredBooleanFeature[]|ConfiguredFeaturesCollection</code>
      <code>ConfiguredCountableFeature[]|ConfiguredFeaturesCollection</code>
      <code>ConfiguredFeaturesCollection|ConfiguredRechargeableFeature[]</code>
    </MismatchingDocblockReturnType>
  </file>
  <file src="src/Model/Feature/Configured/ConfiguredRechargeableFeature.php">
    <ParamNameMismatch occurrences="1">
      <code>$class</code>
    </ParamNameMismatch>
    <PropertyNotSetInConstructor occurrences="5">
      <code>$freeRecharge</code>
      <code>ConfiguredRechargeableFeature</code>
      <code>ConfiguredRechargeableFeature</code>
      <code>ConfiguredRechargeableFeature</code>
      <code>ConfiguredRechargeableFeature</code>
    </PropertyNotSetInConstructor>
  </file>
  <file src="src/Model/Feature/Configured/ConfiguredRechargeableFeaturePack.php">
    <PropertyNotSetInConstructor occurrences="2">
      <code>ConfiguredRechargeableFeaturePack</code>
      <code>ConfiguredRechargeableFeaturePack</code>
    </PropertyNotSetInConstructor>
  </file>
  <file src="src/Model/Feature/Property/CanBeFreeProperty.php">
    <RedundantConditionGivenDocblockType occurrences="2">
      <code>null !== $this-&gt;grossPrices</code>
      <code>null !== $this-&gt;netPrices</code>
    </RedundantConditionGivenDocblockType>
  </file>
  <file src="src/Model/Feature/Property/CanHaveFreePackProperty.php">
    <RedundantConditionGivenDocblockType occurrences="1">
      <code>null !== $this-&gt;freePack</code>
    </RedundantConditionGivenDocblockType>
  </file>
  <file src="src/Model/Feature/Property/HasConfiguredPacksProperty.php">
    <LessSpecificImplementedReturnType occurrences="1">
      <code>array</code>
    </LessSpecificImplementedReturnType>
    <UndefinedVariable occurrences="1">
      <code>$packClass</code>
    </UndefinedVariable>
  </file>
  <file src="src/Model/Feature/Property/HasRecurringPricesProperty.php">
    <InvalidOperand occurrences="5">
      <code>$price-&gt;getBaseAmount()</code>
      <code>$price-&gt;getBaseAmount()</code>
      <code>$price-&gt;getBaseAmount()</code>
      <code>1 + $rate</code>
      <code>1 + $rate</code>
    </InvalidOperand>
    <MissingReturnType occurrences="1">
      <code>setPrices</code>
    </MissingReturnType>
    <PossiblyNullArrayAssignment occurrences="1">
      <code>$instantPrices[$currency]</code>
    </PossiblyNullArrayAssignment>
  </file>
  <file src="src/Model/Feature/Property/HasUnatantumPricesProperty.php">
    <InvalidOperand occurrences="4">
      <code>$price-&gt;getBaseAmount()</code>
      <code>$price-&gt;getBaseAmount()</code>
      <code>1 + $rate</code>
      <code>1 + $rate</code>
    </InvalidOperand>
    <MoreSpecificImplementedParamType occurrences="2">
      <code>$currency</code>
      <code>$currency</code>
    </MoreSpecificImplementedParamType>
  </file>
  <file src="src/Model/Feature/Property/IsRecurringFeatureProperty.php">
    <PossiblyInvalidPropertyAssignmentValue occurrences="1">
      <code>$activeUntil</code>
    </PossiblyInvalidPropertyAssignmentValue>
  </file>
  <file src="src/Model/Feature/Subscribed/AbstractSubscribedFeature.php">
    <MissingReturnType occurrences="1">
      <code>setConfiguredFeature</code>
    </MissingReturnType>
    <TypeDoesNotContainNull occurrences="1">
      <code>null === $this-&gt;configuredFeature</code>
    </TypeDoesNotContainNull>
  </file>
  <file src="src/Model/Feature/Subscribed/SubscribedBooleanFeature.php">
    <PropertyNotSetInConstructor occurrences="1">
      <code>SubscribedBooleanFeature</code>
    </PropertyNotSetInConstructor>
  </file>
  <file src="src/Model/Feature/Subscribed/SubscribedCountableFeature.php">
    <PossiblyInvalidMethodCall occurrences="1">
      <code>toArray</code>
    </PossiblyInvalidMethodCall>
    <PropertyNotSetInConstructor occurrences="2">
      <code>$lastRefreshOn</code>
      <code>SubscribedCountableFeature</code>
    </PropertyNotSetInConstructor>
    <TypeDoesNotContainNull occurrences="3">
      <code>null === $this-&gt;getLastRefreshOn()</code>
      <code>null === $this-&gt;lastRefreshOn</code>
      <code>null === $this-&gt;previousRemainedQuantity</code>
    </TypeDoesNotContainNull>
    <TypeDoesNotContainType occurrences="1">
      <code>$subscribedPack instanceof ConfiguredCountableFeaturePack</code>
    </TypeDoesNotContainType>
    <UninitializedProperty occurrences="1">
      <code>$this-&gt;lastRefreshOn</code>
    </UninitializedProperty>
  </file>
  <file src="src/Model/Feature/Subscribed/SubscribedFeatureInterface.php">
    <MissingReturnType occurrences="1">
      <code>setConfiguredFeature</code>
    </MissingReturnType>
  </file>
  <file src="src/Model/Feature/Subscribed/SubscribedFeaturesCollection.php">
    <ConstructorSignatureMismatch occurrences="1">
      <code>$elements</code>
    </ConstructorSignatureMismatch>
    <ImplementedParamTypeMismatch occurrences="1">
      <code>$elements</code>
    </ImplementedParamTypeMismatch>
    <MethodSignatureMismatch occurrences="1">
      <code>public function __construct(array $elements = [])</code>
    </MethodSignatureMismatch>
    <MismatchingDocblockReturnType occurrences="3">
      <code>SubscribedBooleanFeature[]|SubscribedFeaturesCollection</code>
      <code>SubscribedCountableFeature[]|SubscribedFeaturesCollection</code>
      <code>SubscribedFeaturesCollection|SubscribedRechargeableFeature[]</code>
    </MismatchingDocblockReturnType>
  </file>
  <file src="src/Model/Feature/Subscribed/SubscribedRechargeableFeature.php">
    <LessSpecificReturnStatement occurrences="1">
      <code>$this-&gt;lastRechargeOn</code>
    </LessSpecificReturnStatement>
    <MoreSpecificReturnType occurrences="1">
      <code>\DateTime|\DateTimeImmutable</code>
    </MoreSpecificReturnType>
    <PropertyNotSetInConstructor occurrences="1">
      <code>$rechargingPack</code>
    </PropertyNotSetInConstructor>
    <RedundantCondition occurrences="1">
      <code>null !== $this-&gt;rechargingPack</code>
    </RedundantCondition>
  </file>
  <file src="src/Model/Invoice.php">
    <InvalidNullableReturnType occurrences="1">
      <code>InvoiceLine</code>
    </InvalidNullableReturnType>
    <InvalidReturnStatement occurrences="2">
      <code>$return</code>
      <code>$this-&gt;sections[self::SECTION_DEFAULT]-&gt;removeHeader()</code>
    </InvalidReturnStatement>
    <InvalidReturnType occurrences="2">
      <code>InvoiceSection</code>
      <code>removeSection</code>
    </InvalidReturnType>
    <LessSpecificReturnStatement occurrences="1">
      <code>$this-&gt;issuedOn</code>
    </LessSpecificReturnStatement>
    <MissingParamType occurrences="1">
      <code>$id</code>
    </MissingParamType>
    <MissingReturnType occurrences="3">
      <code>jsonUnserialize</code>
      <code>recalculateTotal</code>
      <code>setHeader</code>
    </MissingReturnType>
    <MoreSpecificReturnType occurrences="1">
      <code>\DateTime|\DateTimeImmutable</code>
    </MoreSpecificReturnType>
    <NullableReturnStatement occurrences="1">
      <code>$this-&gt;sections[self::SECTION_DEFAULT]-&gt;getLine($id)</code>
    </NullableReturnStatement>
    <PropertyNotSetInConstructor occurrences="3">
      <code>$grossTotal</code>
      <code>$issuedOn</code>
      <code>$netTotal</code>
    </PropertyNotSetInConstructor>
    <RedundantConditionGivenDocblockType occurrences="1">
      <code>\is_int($id)</code>
    </RedundantConditionGivenDocblockType>
    <TypeDoesNotContainNull occurrences="3">
      <code>null === $this-&gt;grossTotal</code>
      <code>null === $this-&gt;issuedOn</code>
      <code>null === $this-&gt;netTotal</code>
    </TypeDoesNotContainNull>
    <UndefinedMethod occurrences="2">
      <code>$section</code>
      <code>$section</code>
    </UndefinedMethod>
    <UninitializedProperty occurrences="3">
      <code>$this-&gt;grossTotal</code>
      <code>$this-&gt;issuedOn</code>
      <code>$this-&gt;netTotal</code>
    </UninitializedProperty>
  </file>
  <file src="src/Model/InvoiceInterface.php">
    <InvalidDocblock occurrences="1">
      <code>string!int</code>
    </InvalidDocblock>
    <MissingParamType occurrences="1">
      <code>$id</code>
    </MissingParamType>
    <MissingReturnType occurrences="2">
      <code>jsonUnserialize</code>
      <code>setHeader</code>
    </MissingReturnType>
  </file>
  <file src="src/Model/InvoiceLine.php">
    <MissingConstructor occurrences="6">
      <code>$description</code>
      <code>$grossAmount</code>
      <code>$netAmount</code>
      <code>$quantity</code>
      <code>$taxName</code>
      <code>$taxRate</code>
    </MissingConstructor>
    <PossiblyNullPropertyAssignmentValue occurrences="1">
      <code>$quantity</code>
    </PossiblyNullPropertyAssignmentValue>
  </file>
  <file src="src/Model/InvoiceSection.php">
    <PossiblyNullPropertyAssignmentValue occurrences="1">
      <code>null</code>
    </PossiblyNullPropertyAssignmentValue>
    <PropertyNotSetInConstructor occurrences="1">
      <code>$header</code>
    </PropertyNotSetInConstructor>
    <RedundantCondition occurrences="2">
      <code>null !== $this-&gt;getHeader()</code>
      <code>null !== $this-&gt;header</code>
    </RedundantCondition>
    <RedundantConditionGivenDocblockType occurrences="1">
      <code>\is_int($id)</code>
    </RedundantConditionGivenDocblockType>
  </file>
  <file src="src/Model/Subscription.php">
    <InvalidNullableReturnType occurrences="1">
      <code>SubscribedFeaturesCollection</code>
    </InvalidNullableReturnType>
    <LessSpecificReturnStatement occurrences="3">
      <code>$this-&gt;nextRefreshOn</code>
      <code>$this-&gt;nextRenewOn</code>
      <code>$this-&gt;subscribedOn</code>
    </LessSpecificReturnStatement>
    <MissingReturnType occurrences="3">
      <code>checkIntervalExists</code>
      <code>forceFeaturesUpdate</code>
      <code>hydrateFeatures</code>
    </MissingReturnType>
    <MoreSpecificReturnType occurrences="3">
      <code>\DateTimeInterface</code>
      <code>\DateTime|\DateTimeImmutable</code>
      <code>\DateTime|\DateTimeImmutable|null</code>
    </MoreSpecificReturnType>
    <NullableReturnStatement occurrences="1">
      <code>$this-&gt;features</code>
    </NullableReturnStatement>
    <ParamNameMismatch occurrences="2">
      <code>$nextRenewOn</code>
      <code>$renewInterval</code>
    </ParamNameMismatch>
    <PossiblyInvalidClone occurrences="2">
      <code>clone $this-&gt;features</code>
      <code>clone $this-&gt;features</code>
    </PossiblyInvalidClone>
  </file>
  <file src="src/Model/SubscriptionInterface.php">
    <MissingReturnType occurrences="2">
      <code>checkIntervalExists</code>
      <code>forceFeaturesUpdate</code>
    </MissingReturnType>
  </file>
</files>