Fixed some inspection issues

This commit is contained in:
Jan Böhmer 2023-02-05 03:01:25 +01:00
parent a5cbe59a7c
commit ba5ae35809
20 changed files with 35 additions and 36 deletions

View file

@ -117,7 +117,7 @@ class BackupCommand extends Command
* Constructs the MySQL PDO DSN. * Constructs the MySQL PDO DSN.
* Taken from https://github.com/doctrine/dbal/blob/3.5.x/src/Driver/PDO/MySQL/Driver.php * Taken from https://github.com/doctrine/dbal/blob/3.5.x/src/Driver/PDO/MySQL/Driver.php
* *
* @param mixed[] $params * @param array $params
*/ */
private function configureDumper(array $params, DbDumper $dumper): void private function configureDumper(array $params, DbDumper $dumper): void
{ {

View file

@ -74,7 +74,7 @@ class LocaleDateTimeColumn extends AbstractColumn
return sprintf('<span title="%s">%s</span>', return sprintf('<span title="%s">%s</span>',
$long_formatter->format($value->getTimestamp()), //Long form $long_formatter->format($value->getTimestamp()), //Long form
$formatter->format($value->getTimestamp()), //Short form $formatter->format($value->getTimestamp()) //Short form
); );
} }

View file

@ -102,6 +102,7 @@ class ProjectBomEntriesDataTable implements DataTableTypeInterface
} }
return $tmp; return $tmp;
} }
throw new \Exception('This should never happen!');
}, },
]) ])
@ -175,7 +176,7 @@ class ProjectBomEntriesDataTable implements DataTableTypeInterface
->from(ProjectBOMEntry::class, 'bom_entry') ->from(ProjectBOMEntry::class, 'bom_entry')
->leftJoin('bom_entry.part', 'part') ->leftJoin('bom_entry.part', 'part')
->where('bom_entry.project = :project') ->where('bom_entry.project = :project')
->setParameter('project', $options['project']); ->setParameter('project', $options['project'])
; ;
} }

View file

@ -32,6 +32,8 @@ use Doctrine\DBAL\Schema\Identifier;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Mapping\ClassMetadata; use Doctrine\ORM\Mapping\ClassMetadata;
use Doctrine\ORM\Mapping\ClassMetadataInfo;
use function array_reverse; use function array_reverse;
use function array_search; use function array_search;
use function assert; use function assert;
@ -282,7 +284,7 @@ class ResetAutoIncrementORMPurger implements PurgerInterface, ORMPurgerInterface
foreach ($classes as $class) { foreach ($classes as $class) {
foreach ($class->associationMappings as $assoc) { foreach ($class->associationMappings as $assoc) {
if (! $assoc['isOwningSide'] || $assoc['type'] !== ClassMetadata::MANY_TO_MANY) { if (! $assoc['isOwningSide'] || $assoc['type'] !== ClassMetadataInfo::MANY_TO_MANY) {
continue; continue;
} }

View file

@ -27,7 +27,7 @@ use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/** /**
* A attachment attached to a currency element. * An attachment attached to a currency element.
* *
* @ORM\Entity() * @ORM\Entity()
* @UniqueEntity({"name", "attachment_type", "element"}) * @UniqueEntity({"name", "attachment_type", "element"})

View file

@ -149,7 +149,7 @@ abstract class AbstractStructuralDBElement extends AttachmentContainingDBElement
} }
//If the parent element is equal to the element we want to compare, return true //If the parent element is equal to the element we want to compare, return true
if ($this->getParent()->getID() === null || $this->getParent()->getID() === null) { if ($this->getParent()->getID() === null) {
//If the IDs are not yet defined, we have to compare the objects itself //If the IDs are not yet defined, we have to compare the objects itself
if ($this->getParent() === $another_element) { if ($this->getParent() === $another_element) {
return true; return true;

View file

@ -199,7 +199,7 @@ class LabelOptions
} }
/** /**
* Gets additional CSS (it will simply be attached. * Gets additional CSS (it will simply be attended to base CSS).
*/ */
public function getAdditionalCss(): string public function getAdditionalCss(): string
{ {

View file

@ -35,7 +35,7 @@ use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Validator\Constraints as Assert;
/** /**
* This entity describes a currency that can be used for price informations. * This entity describes a currency that can be used for price information.
* *
* @UniqueEntity("iso_code") * @UniqueEntity("iso_code")
* @ORM\Entity() * @ORM\Entity()
@ -57,7 +57,7 @@ class Currency extends AbstractStructuralDBElement
protected ?BigDecimal $exchange_rate = null; protected ?BigDecimal $exchange_rate = null;
/** /**
* @var string the 3 letter ISO code of the currency * @var string the 3-letter ISO code of the currency
* @ORM\Column(type="string") * @ORM\Column(type="string")
* @Assert\Currency() * @Assert\Currency()
*/ */
@ -107,7 +107,7 @@ class Currency extends AbstractStructuralDBElement
} }
/** /**
* Returns the 3 letter ISO code of this currency. * Returns the 3-letter ISO code of this currency.
* *
* @return string * @return string
*/ */

View file

@ -180,10 +180,10 @@ class Orderdetail extends AbstractDBElement implements TimeStampableInterface, N
} }
/** /**
* Get the link to the website of the article on the suppliers website. * Get the link to the website of the article on the supplier's website.
* *
* @param bool $no_automatic_url Set this to true, if you only want to get the local set product URL for this Orderdetail * @param bool $no_automatic_url Set this to true, if you only want to get the local set product URL for this Orderdetail
* and not a automatic generated one, based from the Supplier * and not an automatic generated one, based from the Supplier
* *
* @return string the link to the article * @return string the link to the article
*/ */
@ -212,7 +212,7 @@ class Orderdetail extends AbstractDBElement implements TimeStampableInterface, N
} }
/** /**
* Adds an pricedetail to this orderdetail. * Adds a price detail to this orderdetail.
* *
* @param Pricedetail $pricedetail The pricedetail to add * @param Pricedetail $pricedetail The pricedetail to add
* *
@ -227,7 +227,7 @@ class Orderdetail extends AbstractDBElement implements TimeStampableInterface, N
} }
/** /**
* Removes an pricedetail from this orderdetail. * Removes a price detail from this orderdetail.
* *
* @return Orderdetail * @return Orderdetail
*/ */
@ -244,7 +244,7 @@ class Orderdetail extends AbstractDBElement implements TimeStampableInterface, N
* *
* @param float $quantity this is the quantity to choose the correct pricedetails * @param float $quantity this is the quantity to choose the correct pricedetails
* *
* @return Pricedetail|null: the price as a bcmath string. Null if there are no orderdetails for the given quantity * @return Pricedetail|null the price as a bcmath string. Null if there are no orderdetails for the given quantity
*/ */
public function findPriceForQty(float $quantity = 1.0): ?Pricedetail public function findPriceForQty(float $quantity = 1.0): ?Pricedetail
{ {

View file

@ -244,7 +244,7 @@ class Pricedetail extends AbstractDBElement implements TimeStampableInterface
} }
/** /**
* Sets the currency associated with the price informations. * Sets the currency associated with the price information.
* Set to null, to use the global base currency. * Set to null, to use the global base currency.
* *
* @return Pricedetail * @return Pricedetail

View file

@ -252,7 +252,7 @@ class Project extends AbstractStructuralDBElement
} }
/** /**
* Checks if this project has a associated part representing the builds of this project in the stock. * Checks if this project has an associated part representing the builds of this project in the stock.
* @return bool * @return bool
*/ */
public function hasBuildPart(): bool public function hasBuildPart(): bool

View file

@ -35,7 +35,7 @@ use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Context\ExecutionContextInterface; use Symfony\Component\Validator\Context\ExecutionContextInterface;
/** /**
* The ProjectBOMEntry class represents a entry in a project's BOM. * The ProjectBOMEntry class represents an entry in a project's BOM.
* *
* @ORM\Table("project_bom_entries") * @ORM\Table("project_bom_entries")
* @ORM\HasLifecycleCallbacks() * @ORM\HasLifecycleCallbacks()
@ -303,7 +303,7 @@ class ProjectBOMEntry extends AbstractDBElement
->addViolation(); ->addViolation();
} }
//Prices are only only allowed on non-part BOM entries //Prices are only allowed on non-part BOM entries
if ($this->part !== null && $this->price !== null) { if ($this->part !== null && $this->price !== null) {
$context->buildViolation('project.bom_entry.price_not_allowed_on_parts') $context->buildViolation('project.bom_entry.price_not_allowed_on_parts')
->atPath('price') ->atPath('price')

View file

@ -38,7 +38,7 @@ class DateTimeConstraintType extends AbstractType
$resolver->setDefaults([ $resolver->setDefaults([
'compound' => true, 'compound' => true,
'data_class' => DateTimeConstraint::class, 'data_class' => DateTimeConstraint::class,
'text_suffix' => '', // An suffix which is attached as text-append to the input group. This can for example be used for units 'text_suffix' => '', // A suffix which is attached as text-append to the input group. This can for example be used for units
'value1_options' => [], // Options for the first value input 'value1_options' => [], // Options for the first value input
'value2_options' => [], // Options for the second value input 'value2_options' => [], // Options for the second value input

View file

@ -55,7 +55,7 @@ class RichTextEditorType extends AbstractType
{ {
$tmp = []; $tmp = [];
//Set novalidate attribute or we will get problems that form can not be submitted as textarea is not focusable //Set novalidate attribute, or we will get problems that form can not be submitted as textarea is not focusable
$tmp['novalidate'] = 'novalidate'; $tmp['novalidate'] = 'novalidate';
$tmp['data-mode'] = $options['mode']; $tmp['data-mode'] = $options['mode'];

View file

@ -109,12 +109,7 @@ class StructuralEntityType extends AbstractType
return null; return null;
} }
if ($element->getID() === null) { return (string) $element->getID() ?? $element->getFullPath('->');
//Must be the same as the separator in the choice_loader, otherwise this will not work!
return $element->getFullPath('->');
}
return $element->getID();
}, //Use the element id as option value and for comparing items }, //Use the element id as option value and for comparing items
'choice_loader' => function (Options $options) { 'choice_loader' => function (Options $options) {
return new StructuralEntityChoiceLoader($options, $this->builder, $this->em); return new StructuralEntityChoiceLoader($options, $this->builder, $this->em);

View file

@ -70,7 +70,7 @@ final class TriStateCheckboxType extends AbstractType implements DataTransformer
* *
* 1. Model transformers which normalize the model data. * 1. Model transformers which normalize the model data.
* This is mainly useful when the same form type (the same configuration) * This is mainly useful when the same form type (the same configuration)
* has to handle different kind of underlying data, e.g The DateType can * has to handle different kind of underlying data, e.g. The DateType can
* deal with strings or \DateTime objects as input. * deal with strings or \DateTime objects as input.
* *
* 2. View transformers which adapt the normalized data to the view format. * 2. View transformers which adapt the normalized data to the view format.

View file

@ -52,7 +52,7 @@ class LogEntryRepository extends DBElementRepository
* Find log entries associated with the given element (the history of the element). * Find log entries associated with the given element (the history of the element).
* *
* @param AbstractDBElement $element The element for which the history should be generated * @param AbstractDBElement $element The element for which the history should be generated
* @param string $order By default newest entries are shown first. Change this to ASC to show oldest entries first. * @param string $order By default, the newest entries are shown first. Change this to ASC to show the oldest entries first.
* @param null $limit * @param null $limit
* @param null $offset * @param null $offset
* *

View file

@ -82,10 +82,10 @@ final class UserRepository extends NamedDBElementRepository implements PasswordU
} }
} }
public function upgradePassword(UserInterface $user, string $newEncodedPassword): void public function upgradePassword(UserInterface $user, string $newHashedPassword): void
{ {
if ($user instanceof User) { if ($user instanceof User) {
$user->setPassword($newEncodedPassword); $user->setPassword($newHashedPassword);
$this->getEntityManager()->flush(); $this->getEntityManager()->flush();
} }
} }

View file

@ -124,7 +124,7 @@ final class GlobalProviders implements PlaceholderProviderInterface
} }
if ('[[INSTANCE_URL]]' === $placeholder) { if ('[[INSTANCE_URL]]' === $placeholder) {
return $this->url_generator->generate('homepage', [], UrlGenerator::ABSOLUTE_URL); return $this->url_generator->generate('homepage', [], UrlGeneratorInterface::ABSOLUTE_URL);
} }
return null; return null;

View file

@ -36,6 +36,7 @@ use DateTime;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Mapping\ClassMetadata; use Doctrine\ORM\Mapping\ClassMetadata;
use Doctrine\ORM\Mapping\ClassMetadataInfo;
use Doctrine\ORM\Mapping\MappingException; use Doctrine\ORM\Mapping\MappingException;
use DoctrineExtensions\Query\Mysql\Date; use DoctrineExtensions\Query\Mysql\Date;
use Exception; use Exception;
@ -139,16 +140,16 @@ class TimeTravel
//Revert many to one association (one element in property) //Revert many to one association (one element in property)
if ( if (
ClassMetadata::MANY_TO_ONE === $mapping['type'] ClassMetadataInfo::MANY_TO_ONE === $mapping['type']
|| ClassMetadata::ONE_TO_ONE === $mapping['type'] || ClassMetadataInfo::ONE_TO_ONE === $mapping['type']
) { ) {
$target_element = $this->getField($element, $field); $target_element = $this->getField($element, $field);
if (null !== $target_element && $element->getLastModified() > $timestamp) { if (null !== $target_element && $element->getLastModified() > $timestamp) {
$this->revertEntityToTimestamp($target_element, $timestamp, $reverted_elements); $this->revertEntityToTimestamp($target_element, $timestamp, $reverted_elements);
} }
} elseif ( //Revert *_TO_MANY associations (collection properties) } elseif ( //Revert *_TO_MANY associations (collection properties)
(ClassMetadata::MANY_TO_MANY === $mapping['type'] (ClassMetadataInfo::MANY_TO_MANY === $mapping['type']
|| ClassMetadata::ONE_TO_MANY === $mapping['type']) || ClassMetadataInfo::ONE_TO_MANY === $mapping['type'])
&& false === $mapping['isOwningSide'] && false === $mapping['isOwningSide']
) { ) {
$target_elements = $this->getField($element, $field); $target_elements = $this->getField($element, $field);