Skip to content

Commit 6a43526

Browse files
committed
refactor: add PHPStan generic type annotations to Extractors and Detectors
Added PHPDoc template annotations to improve type safety and PHPStan compatibility across all adapter classes. This change removes the need for inline @var annotations by properly declaring generic type relationships between Extractors and Detectors.
1 parent ce4bf6c commit 6a43526

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+281
-91
lines changed

src/Adapters/Archive/Detectors/AuthorName.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33

44
namespace Embed\Adapters\Archive\Detectors;
55

6-
use Embed\Adapters\Archive\Extractor;
76
use Embed\Detectors\AuthorName as Detector;
87

8+
/**
9+
* @extends Detector<\Embed\Adapters\Archive\Extractor>
10+
*/
911
class AuthorName extends Detector
1012
{
1113
public function detect(): ?string
1214
{
13-
/** @var Extractor $extractor */
1415
$extractor = $this->extractor;
1516
$api = $extractor->getApi();
1617

src/Adapters/Archive/Detectors/Code.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
use function Embed\html;
99
use function Embed\matchPath;
1010

11+
/**
12+
* @extends Detector<\Embed\Adapters\Archive\Extractor>
13+
*/
1114
class Code extends Detector
1215
{
1316
public function detect(): ?EmbedCode

src/Adapters/Archive/Detectors/Description.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33

44
namespace Embed\Adapters\Archive\Detectors;
55

6-
use Embed\Adapters\Archive\Extractor;
76
use Embed\Detectors\Description as Detector;
87

8+
/**
9+
* @extends Detector<\Embed\Adapters\Archive\Extractor>
10+
*/
911
class Description extends Detector
1012
{
1113
public function detect(): ?string
1214
{
13-
/** @var Extractor $extractor */
1415
$extractor = $this->extractor;
1516
$api = $extractor->getApi();
1617

src/Adapters/Archive/Detectors/ProviderName.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55

66
use Embed\Detectors\ProviderName as Detector;
77

8+
/**
9+
* @extends Detector<\Embed\Adapters\Archive\Extractor>
10+
*/
811
class ProviderName extends Detector
912
{
1013
public function detect(): string

src/Adapters/Archive/Detectors/PublishedTime.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
namespace Embed\Adapters\Archive\Detectors;
55

66
use DateTime;
7-
use Embed\Adapters\Archive\Extractor;
87
use Embed\Detectors\PublishedTime as Detector;
98

9+
/**
10+
* @extends Detector<\Embed\Adapters\Archive\Extractor>
11+
*/
1012
class PublishedTime extends Detector
1113
{
1214
public function detect(): ?DateTime
1315
{
14-
/** @var Extractor $extractor */
1516
$extractor = $this->extractor;
1617
$api = $extractor->getApi();
1718

src/Adapters/Archive/Detectors/Title.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33

44
namespace Embed\Adapters\Archive\Detectors;
55

6-
use Embed\Adapters\Archive\Extractor;
76
use Embed\Detectors\Title as Detector;
87

8+
/**
9+
* @extends Detector<\Embed\Adapters\Archive\Extractor>
10+
*/
911
class Title extends Detector
1012
{
1113
public function detect(): ?string
1214
{
13-
/** @var Extractor $extractor */
1415
$extractor = $this->extractor;
1516
$api = $extractor->getApi();
1617

src/Adapters/Archive/Extractor.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
use Psr\Http\Message\ResponseInterface;
1010
use Psr\Http\Message\UriInterface;
1111

12+
/**
13+
* @template-extends Base<\Embed\Detectors\Detector<self>>
14+
*/
1215
class Extractor extends Base
1316
{
1417
private Api $api;
@@ -28,9 +31,6 @@ public function getApi(): Api
2831
return $this->api;
2932
}
3033

31-
/**
32-
* @return array<string, \Embed\Detectors\Detector>
33-
*/
3434
public function createCustomDetectors(): array
3535
{
3636
return [

src/Adapters/Bandcamp/Detectors/ProviderName.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55

66
use Embed\Detectors\ProviderName as Detector;
77

8+
/**
9+
* @extends Detector<\Embed\Adapters\Bandcamp\Extractor>
10+
*/
811
class ProviderName extends Detector
912
{
1013
public function detect(): string

src/Adapters/Bandcamp/Extractor.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55

66
use Embed\Extractor as Base;
77

8+
/**
9+
* @template-extends Base<\Embed\Detectors\Detector<self>>
10+
*/
811
class Extractor extends Base
912
{
10-
/**
11-
* @return array<string, \Embed\Detectors\Detector>
12-
*/
1313
public function createCustomDetectors(): array
1414
{
1515
return [

src/Adapters/CadenaSer/Detectors/Code.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
use function Embed\html;
1010
use function Embed\matchPath;
1111

12+
/**
13+
* @extends Detector<\Embed\Adapters\CadenaSer\Extractor>
14+
*/
1215
class Code extends Detector
1316
{
1417
public function detect(): ?EmbedCode

0 commit comments

Comments
 (0)