Skip to content

Conversation

@mnocon
Copy link
Contributor

@mnocon mnocon commented Mar 3, 2025

Target: master

Will require a separate PR for 4.6 (PHPStan bump to 2.0). It makes sense to use the same version as 5.0/master - and the same as the dev team (ibexa/core@fdeeb4f for example).

Things done:

  1. b44e884 - updated dependencies
  2. 2a7bf9d - regenerated the baseline
  3. Commented out REST example: 3f90d4b

It can't be stored into the baseline, PHP reports it as:

> phpstan analyse '--generate-baseline'
Note: Using configuration file /Users/marek/Desktop/repos/ibexa/documentation-developer4/phpstan.neon.
 216/216 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%



 [WARNING] Baseline generated with 146 errors.
           Some errors could not be put into baseline. Re-run PHPStan with "-vv" and fix them.

So I'm temporarily comment it out - it will be fixed this month when preparing for v5 release.

Checklist

  • Text renders correctly
  • Text has been checked with vale
  • Description metadata is up to date
  • Redirects cover removed/moved pages
  • Code samples are working
  • PHP code samples have been fixed with PHP CS fixer
  • Added link to this PR in relevant JIRA ticket or code PR

@github-actions
Copy link

github-actions bot commented Mar 3, 2025

Preview of modified Markdown: no Markdown change to preview.

@github-actions
Copy link

github-actions bot commented Mar 3, 2025

code_samples/ change report

Before (on target branch)After (in current PR)

code_samples/api/rest_api/src/Rest/Output/ValueObjectVisitorDispatcher.php

docs/api/rest_api/extending_rest_api/adding_custom_media_type.md@58:``` php
docs/api/rest_api/extending_rest_api/adding_custom_media_type.md@59:[[= include_file('code_samples/api/rest_api/src/Rest/Output/ValueObjectVisitorDispatcher.php') =]]
docs/api/rest_api/extending_rest_api/adding_custom_media_type.md@60:```

001⫶<?php declare(strict_types=1);
002⫶
003⫶namespace App\Rest\Output;
004⫶
005⫶use Ibexa\Contracts\Rest\Output\Generator;
006⫶use Ibexa\Contracts\Rest\Output\ValueObjectVisitorDispatcher as BaseValueObjectVisitorDispatcher;
007⫶use Ibexa\Contracts\Rest\Output\Visitor;
008⫶

code_samples/api/rest_api/src/Rest/Output/ValueObjectVisitorDispatcher.php

docs/api/rest_api/extending_rest_api/adding_custom_media_type.md@58:``` php
docs/api/rest_api/extending_rest_api/adding_custom_media_type.md@59:[[= include_file('code_samples/api/rest_api/src/Rest/Output/ValueObjectVisitorDispatcher.php') =]]
docs/api/rest_api/extending_rest_api/adding_custom_media_type.md@60:```

001⫶<?php declare(strict_types=1);
002⫶
003⫶namespace App\Rest\Output;
004⫶
005⫶use Ibexa\Contracts\Rest\Output\Generator;
006⫶use Ibexa\Contracts\Rest\Output\ValueObjectVisitorDispatcher as BaseValueObjectVisitorDispatcher;
007⫶use Ibexa\Contracts\Rest\Output\Visitor;
008⫶
009⫶class ValueObjectVisitorDispatcher extends BaseValueObjectVisitorDispatcher
009⫶class ValueObjectVisitorDispatcher // extends BaseValueObjectVisitorDispatcher TODO: Rewrite this example in  https://issues.ibexa.co/browse/IBX-8190 
010⫶{
011⫶ private array $visitors;
012⫶
013⫶ private BaseValueObjectVisitorDispatcher $valueObjectVisitorDispatcher;
014⫶
015⫶ private Visitor $outputVisitor;
016⫶
017⫶ private Generator $outputGenerator;
018⫶
019⫶ public function __construct(iterable $visitors, BaseValueObjectVisitorDispatcher $valueObjectVisitorDispatcher)
020⫶ {
021⫶ $this->visitors = [];
022⫶ foreach ($visitors as $type => $visitor) {
023⫶ $this->visitors[$type] = $visitor;
024⫶ }
025⫶ $this->valueObjectVisitorDispatcher = $valueObjectVisitorDispatcher;
026⫶ }
027⫶
028⫶ public function setOutputVisitor(Visitor $outputVisitor): void
029⫶ {
030⫶ $this->outputVisitor = $outputVisitor;
031⫶ $this->valueObjectVisitorDispatcher->setOutputVisitor($outputVisitor);
032⫶ }
033⫶
034⫶ public function setOutputGenerator(Generator $outputGenerator): void
035⫶ {
036⫶ $this->outputGenerator = $outputGenerator;
037⫶ $this->valueObjectVisitorDispatcher->setOutputGenerator($outputGenerator);
038⫶ }
039⫶
040⫶ public function visit($data)
041⫶ {
042⫶ $className = get_class($data);
043⫶ if (isset($this->visitors[$className])) {
044⫶ return $this->visitors[$className]->visit($this->outputVisitor, $this->outputGenerator, $data);
045⫶ }
046⫶
047⫶ return $this->valueObjectVisitorDispatcher->visit($data);
048⫶ }
049⫶}

010⫶{
011⫶ private array $visitors;
012⫶
013⫶ private BaseValueObjectVisitorDispatcher $valueObjectVisitorDispatcher;
014⫶
015⫶ private Visitor $outputVisitor;
016⫶
017⫶ private Generator $outputGenerator;
018⫶
019⫶ public function __construct(iterable $visitors, BaseValueObjectVisitorDispatcher $valueObjectVisitorDispatcher)
020⫶ {
021⫶ $this->visitors = [];
022⫶ foreach ($visitors as $type => $visitor) {
023⫶ $this->visitors[$type] = $visitor;
024⫶ }
025⫶ $this->valueObjectVisitorDispatcher = $valueObjectVisitorDispatcher;
026⫶ }
027⫶
028⫶ public function setOutputVisitor(Visitor $outputVisitor): void
029⫶ {
030⫶ $this->outputVisitor = $outputVisitor;
031⫶ $this->valueObjectVisitorDispatcher->setOutputVisitor($outputVisitor);
032⫶ }
033⫶
034⫶ public function setOutputGenerator(Generator $outputGenerator): void
035⫶ {
036⫶ $this->outputGenerator = $outputGenerator;
037⫶ $this->valueObjectVisitorDispatcher->setOutputGenerator($outputGenerator);
038⫶ }
039⫶
040⫶ public function visit($data)
041⫶ {
042⫶ $className = get_class($data);
043⫶ if (isset($this->visitors[$className])) {
044⫶ return $this->visitors[$className]->visit($this->outputVisitor, $this->outputGenerator, $data);
045⫶ }
046⫶
047⫶ return $this->valueObjectVisitorDispatcher->visit($data);
048⫶ }
049⫶}

Download colorized diff

@mnocon mnocon marked this pull request as ready for review March 3, 2025 11:17
@mnocon mnocon changed the title Adjust phpstan Adjusted phpstan Mar 3, 2025
@mnocon mnocon merged commit 6aaa639 into master Mar 5, 2025
1 check passed
@mnocon mnocon deleted the adjust-phpstan branch March 5, 2025 07:54
@mnocon mnocon mentioned this pull request Mar 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants