diff --git a/.php_cs.dist b/.php_cs.dist index 9fa9529f..818ae0bd 100644 --- a/.php_cs.dist +++ b/.php_cs.dist @@ -103,7 +103,7 @@ return PhpCsFixer\Config::create() 'phpdoc_inline_tag' => true, 'phpdoc_no_access' => true, 'phpdoc_no_alias_tag' => true, - 'phpdoc_no_empty_return' => true, + 'phpdoc_no_empty_return' => false, 'phpdoc_no_package' => true, 'phpdoc_no_useless_inheritdoc' => true, 'phpdoc_return_self_reference' => true, diff --git a/src/Controller/InvoiceController.php b/src/Controller/InvoiceController.php index 4c4f9840..67ec1114 100644 --- a/src/Controller/InvoiceController.php +++ b/src/Controller/InvoiceController.php @@ -370,7 +370,7 @@ final class InvoiceController extends AbstractController * @Route(path="/template/{id}/delete", name="admin_invoice_template_delete", methods={"GET", "POST"}) * @Security("is_granted('manage_invoice_template')") */ - public function deleteTemplate(InvoiceTemplate $template, Request $request): Response + public function deleteTemplate(InvoiceTemplate $template): Response { try { $this->templateRepository->removeTemplate($template); diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php index 0a28fa78..cc1bfa48 100644 --- a/src/DependencyInjection/Configuration.php +++ b/src/DependencyInjection/Configuration.php @@ -237,7 +237,7 @@ class Configuration implements ConfigurationInterface ->defaultValue([]) ->end() ->booleanNode('simple_form') - ->defaultTrue() + ->defaultFalse() ->end() ->scalarNode('number_format') ->defaultValue('{Y}/{cy,3}') diff --git a/src/Event/MetaDisplayEventInterface.php b/src/Event/MetaDisplayEventInterface.php index d3beec79..fb63f3d0 100644 --- a/src/Event/MetaDisplayEventInterface.php +++ b/src/Event/MetaDisplayEventInterface.php @@ -37,6 +37,7 @@ interface MetaDisplayEventInterface * Adds a field that should be displayed. * * @param MetaTableTypeInterface $meta + * @return void */ - public function addField(MetaTableTypeInterface $meta); + public function addField(MetaTableTypeInterface $meta) /* : void */; } diff --git a/src/Invoice/Calculator/AbstractMergedCalculator.php b/src/Invoice/Calculator/AbstractMergedCalculator.php index bdec849f..4a6cfef9 100644 --- a/src/Invoice/Calculator/AbstractMergedCalculator.php +++ b/src/Invoice/Calculator/AbstractMergedCalculator.php @@ -29,7 +29,12 @@ abstract class AbstractMergedCalculator extends AbstractCalculator $this->mergeInvoiceItems($invoiceItem, $entry); } - protected function mergeInvoiceItems(InvoiceItem $invoiceItem, InvoiceItemInterface $entry) + /** + * @param InvoiceItem $invoiceItem + * @param InvoiceItemInterface $entry + * @return void + */ + protected function mergeInvoiceItems(InvoiceItem $invoiceItem, InvoiceItemInterface $entry) /* : void */ { $duration = $invoiceItem->getDuration(); if (null !== $entry->getDuration()) { diff --git a/src/Invoice/Calculator/AbstractSumInvoiceCalculator.php b/src/Invoice/Calculator/AbstractSumInvoiceCalculator.php index d58da6e4..bf7bb17c 100644 --- a/src/Invoice/Calculator/AbstractSumInvoiceCalculator.php +++ b/src/Invoice/Calculator/AbstractSumInvoiceCalculator.php @@ -53,7 +53,12 @@ abstract class AbstractSumInvoiceCalculator extends AbstractMergedCalculator imp return array_values($invoiceItems); } - protected function mergeSumInvoiceItem(InvoiceItem $invoiceItem, InvoiceItemInterface $entry) + /** + * @param InvoiceItem $invoiceItem + * @param InvoiceItemInterface $entry + * @return void + */ + protected function mergeSumInvoiceItem(InvoiceItem $invoiceItem, InvoiceItemInterface $entry) /* : void */ { if (method_exists($this, 'mergeSumTimesheet')) { @trigger_error('mergeSumTimesheet() is deprecated and will be removed with 2.0 - use mergeSumInvoiceItem() instead', E_USER_DEPRECATED); diff --git a/src/Invoice/InvoiceItem.php b/src/Invoice/InvoiceItem.php index 937cc304..488c6c47 100644 --- a/src/Invoice/InvoiceItem.php +++ b/src/Invoice/InvoiceItem.php @@ -13,9 +13,6 @@ use App\Entity\Activity; use App\Entity\Project; use App\Entity\User; -/** - * @internal - */ final class InvoiceItem { /** diff --git a/src/Invoice/InvoiceItemRepositoryInterface.php b/src/Invoice/InvoiceItemRepositoryInterface.php index aa8d741e..3704ce66 100644 --- a/src/Invoice/InvoiceItemRepositoryInterface.php +++ b/src/Invoice/InvoiceItemRepositoryInterface.php @@ -15,8 +15,9 @@ interface InvoiceItemRepositoryInterface { /** * @param InvoiceItemInterface[] $invoiceItems + * @return void */ - public function setExported(array $invoiceItems); + public function setExported(array $invoiceItems) /* : void */; /** * @param InvoiceQuery $query diff --git a/src/Plugin/PluginManager.php b/src/Plugin/PluginManager.php index 5df38062..b58bc019 100644 --- a/src/Plugin/PluginManager.php +++ b/src/Plugin/PluginManager.php @@ -94,7 +94,8 @@ class PluginManager $json = json_decode(file_get_contents($composer), true); $reqVersion = $json['extra']['kimai']['require'] ?? 'unknown'; - $version = $json['extra']['kimai']['version'] ?? 'unknown'; + // the version field is required if we use composer to install a plugin via var/packages/ + $version = $json['extra']['kimai']['version'] ?? ($json['version'] ?? 'unknown'); $description = $json['description'] ?? ''; $homepage = $json['homepage'] ?? Constants::HOMEPAGE . '/store/'; diff --git a/src/Repository/ActivityRateRepository.php b/src/Repository/ActivityRateRepository.php index faca299a..7213fee6 100644 --- a/src/Repository/ActivityRateRepository.php +++ b/src/Repository/ActivityRateRepository.php @@ -14,6 +14,9 @@ use App\Entity\ActivityRate; use Doctrine\ORM\EntityRepository; use Doctrine\ORM\ORMException; +/** + * @extends \Doctrine\ORM\EntityRepository + */ class ActivityRateRepository extends EntityRepository { public function saveRate(ActivityRate $rate) diff --git a/src/Repository/ActivityRepository.php b/src/Repository/ActivityRepository.php index 6a60d085..18e619bd 100644 --- a/src/Repository/ActivityRepository.php +++ b/src/Repository/ActivityRepository.php @@ -25,6 +25,9 @@ use Doctrine\ORM\Query; use Doctrine\ORM\QueryBuilder; use Pagerfanta\Pagerfanta; +/** + * @extends \Doctrine\ORM\EntityRepository + */ class ActivityRepository extends EntityRepository { /** diff --git a/src/Repository/ConfigurationRepository.php b/src/Repository/ConfigurationRepository.php index 38d7e804..3d2e4012 100644 --- a/src/Repository/ConfigurationRepository.php +++ b/src/Repository/ConfigurationRepository.php @@ -15,6 +15,9 @@ use App\Form\Model\SystemConfiguration; use Doctrine\ORM\EntityRepository; use Doctrine\ORM\ORMException; +/** + * @extends \Doctrine\ORM\EntityRepository + */ class ConfigurationRepository extends EntityRepository implements ConfigLoaderInterface { private static $cacheByPrefix = null; diff --git a/src/Repository/CustomerRateRepository.php b/src/Repository/CustomerRateRepository.php index 081c56c6..b67df5db 100644 --- a/src/Repository/CustomerRateRepository.php +++ b/src/Repository/CustomerRateRepository.php @@ -14,6 +14,9 @@ use App\Entity\CustomerRate; use Doctrine\ORM\EntityRepository; use Doctrine\ORM\ORMException; +/** + * @extends \Doctrine\ORM\EntityRepository + */ class CustomerRateRepository extends EntityRepository { public function saveRate(CustomerRate $rate) diff --git a/src/Repository/CustomerRepository.php b/src/Repository/CustomerRepository.php index ce746505..f3e84b90 100644 --- a/src/Repository/CustomerRepository.php +++ b/src/Repository/CustomerRepository.php @@ -27,6 +27,9 @@ use Doctrine\ORM\Query; use Doctrine\ORM\QueryBuilder; use Pagerfanta\Pagerfanta; +/** + * @extends \Doctrine\ORM\EntityRepository + */ class CustomerRepository extends EntityRepository { /** diff --git a/src/Repository/InvoiceRepository.php b/src/Repository/InvoiceRepository.php index 4b097c09..f3b68172 100644 --- a/src/Repository/InvoiceRepository.php +++ b/src/Repository/InvoiceRepository.php @@ -20,6 +20,9 @@ use Doctrine\ORM\EntityRepository; use Doctrine\ORM\QueryBuilder; use Pagerfanta\Pagerfanta; +/** + * @extends \Doctrine\ORM\EntityRepository + */ class InvoiceRepository extends EntityRepository { public function saveInvoice(Invoice $invoice) diff --git a/src/Repository/InvoiceTemplateRepository.php b/src/Repository/InvoiceTemplateRepository.php index 2e5f443b..f5a80dd3 100644 --- a/src/Repository/InvoiceTemplateRepository.php +++ b/src/Repository/InvoiceTemplateRepository.php @@ -16,6 +16,9 @@ use Doctrine\ORM\QueryBuilder; use Pagerfanta\Adapter\DoctrineORMAdapter; use Pagerfanta\Pagerfanta; +/** + * @extends \Doctrine\ORM\EntityRepository + */ class InvoiceTemplateRepository extends EntityRepository { public function hasTemplate(): bool diff --git a/src/Repository/ProjectRateRepository.php b/src/Repository/ProjectRateRepository.php index e0083386..6fce44a1 100644 --- a/src/Repository/ProjectRateRepository.php +++ b/src/Repository/ProjectRateRepository.php @@ -14,6 +14,9 @@ use App\Entity\ProjectRate; use Doctrine\ORM\EntityRepository; use Doctrine\ORM\ORMException; +/** + * @extends \Doctrine\ORM\EntityRepository + */ class ProjectRateRepository extends EntityRepository { public function saveRate(ProjectRate $rate) diff --git a/src/Repository/ProjectRepository.php b/src/Repository/ProjectRepository.php index 828d6ac2..51c6ccaf 100644 --- a/src/Repository/ProjectRepository.php +++ b/src/Repository/ProjectRepository.php @@ -26,6 +26,9 @@ use Doctrine\ORM\Query; use Doctrine\ORM\QueryBuilder; use Pagerfanta\Pagerfanta; +/** + * @extends \Doctrine\ORM\EntityRepository + */ class ProjectRepository extends EntityRepository { /** diff --git a/src/Repository/RolePermissionRepository.php b/src/Repository/RolePermissionRepository.php index abd027d5..6ad98df7 100644 --- a/src/Repository/RolePermissionRepository.php +++ b/src/Repository/RolePermissionRepository.php @@ -14,6 +14,9 @@ use App\Entity\RolePermission; use Doctrine\ORM\AbstractQuery; use Doctrine\ORM\EntityRepository; +/** + * @extends \Doctrine\ORM\EntityRepository + */ class RolePermissionRepository extends EntityRepository { public function saveRolePermission(RolePermission $permission) diff --git a/src/Repository/RoleRepository.php b/src/Repository/RoleRepository.php index 5561cb29..59bb7b0e 100644 --- a/src/Repository/RoleRepository.php +++ b/src/Repository/RoleRepository.php @@ -14,6 +14,7 @@ use Doctrine\ORM\EntityRepository; use Doctrine\ORM\ORMException; /** + * @extends \Doctrine\ORM\EntityRepository * @method Role[] findAll() */ class RoleRepository extends EntityRepository diff --git a/src/Repository/TagRepository.php b/src/Repository/TagRepository.php index d5ef3319..a6955bc7 100644 --- a/src/Repository/TagRepository.php +++ b/src/Repository/TagRepository.php @@ -18,6 +18,9 @@ use Doctrine\ORM\QueryBuilder; use Pagerfanta\Adapter\DoctrineORMAdapter; use Pagerfanta\Pagerfanta; +/** + * @extends \Doctrine\ORM\EntityRepository + */ class TagRepository extends EntityRepository { /** diff --git a/src/Repository/TeamRepository.php b/src/Repository/TeamRepository.php index db12e7b1..15e6590f 100644 --- a/src/Repository/TeamRepository.php +++ b/src/Repository/TeamRepository.php @@ -21,6 +21,9 @@ use Doctrine\ORM\ORMException; use Doctrine\ORM\QueryBuilder; use Pagerfanta\Pagerfanta; +/** + * @extends \Doctrine\ORM\EntityRepository + */ class TeamRepository extends EntityRepository { public function find($id, $lockMode = null, $lockVersion = null) diff --git a/src/Repository/TimesheetRepository.php b/src/Repository/TimesheetRepository.php index 2518053f..0a23b850 100644 --- a/src/Repository/TimesheetRepository.php +++ b/src/Repository/TimesheetRepository.php @@ -28,6 +28,9 @@ use Doctrine\ORM\EntityRepository; use Doctrine\ORM\QueryBuilder; use Pagerfanta\Pagerfanta; +/** + * @extends \Doctrine\ORM\EntityRepository + */ class TimesheetRepository extends EntityRepository { public const STATS_QUERY_DURATION = 'duration'; diff --git a/src/Repository/UserRepository.php b/src/Repository/UserRepository.php index 14f7fda0..08cebe07 100644 --- a/src/Repository/UserRepository.php +++ b/src/Repository/UserRepository.php @@ -24,6 +24,9 @@ use Pagerfanta\Adapter\DoctrineORMAdapter; use Pagerfanta\Pagerfanta; use Symfony\Bridge\Doctrine\Security\User\UserLoaderInterface; +/** + * @extends \Doctrine\ORM\EntityRepository + */ class UserRepository extends EntityRepository implements UserLoaderInterface { public function getById($id): ?User diff --git a/src/Widget/WidgetRendererInterface.php b/src/Widget/WidgetRendererInterface.php index 70d9841f..8d532f47 100644 --- a/src/Widget/WidgetRendererInterface.php +++ b/src/Widget/WidgetRendererInterface.php @@ -28,7 +28,7 @@ interface WidgetRendererInterface * The given $options array overwrites the widgets internal options for this call. * * @param WidgetInterface $widget - * @param array $options + * @param array $options * @return string */ public function render(WidgetInterface $widget, array $options = []): string; diff --git a/tests/DependencyInjection/ConfigurationTest.php b/tests/DependencyInjection/ConfigurationTest.php index 05e64da8..f7699ac8 100644 --- a/tests/DependencyInjection/ConfigurationTest.php +++ b/tests/DependencyInjection/ConfigurationTest.php @@ -295,7 +295,7 @@ class ConfigurationTest extends TestCase 0 => 'var/invoices/', 1 => 'templates/invoice/renderer/', ], - 'simple_form' => true, + 'simple_form' => false, 'number_format' => '{Y}/{cy,3}', ], 'export' => [