Skip to content

Commit

Permalink
Merge pull request #52 from nkl-kst/phpstan_level_7
Browse files Browse the repository at this point in the history
PHPStan level 7
  • Loading branch information
nkl-kst committed May 13, 2023
2 parents 58c5819 + 56a3a9d commit 7754eee
Show file tree
Hide file tree
Showing 26 changed files with 89 additions and 19 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[![Build](https://github.com/nkl-kst/the-sports-db/workflows/Build/badge.svg)](https://github.com/nkl-kst/the-sports-db/actions)
[![Packagist Version](https://img.shields.io/packagist/v/nkl-kst/the-sports-db)](https://packagist.org/packages/nkl-kst/the-sports-db)
[![Coverage Status](https://coveralls.io/repos/github/nkl-kst/the-sports-db/badge.svg?branch=master)](https://coveralls.io/github/nkl-kst/the-sports-db?branch=master)
[![PHPStan Level](https://img.shields.io/badge/PHPStan-level%206-brightgreen.svg?style=flat)](https://github.com/nkl-kst/the-sports-db/actions)
[![PHPStan Level](https://img.shields.io/badge/PHPStan-level%207-brightgreen.svg?style=flat)](https://github.com/nkl-kst/the-sports-db/actions)
[![GitHub](https://img.shields.io/github/license/nkl-kst/the-sports-db)](https://github.com/nkl-kst/the-sports-db/blob/master/LICENSE.md)

An easy-to-use PHP library to get data from https://www.thesportsdb.com.
Expand Down
2 changes: 1 addition & 1 deletion phpstan.neon
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
parameters:
level: 6
level: 7
paths:
- src
- test
6 changes: 5 additions & 1 deletion src/Client/Endpoint/AbstractEndpoint.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,11 @@ protected function request(): string
}

/**
* @param object[] $entities
* @template TObject of object
*
* @param TObject[] $entities
*
* @return ?TObject
*/
protected function getSingleEntity(array $entities): ?object
{
Expand Down
5 changes: 4 additions & 1 deletion src/Serializer/AbstractSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use Exception;
use JsonMapper;

/**
* @template TObject of object
*/
abstract class AbstractSerializer
{
protected JsonMapper $mapper;
Expand Down Expand Up @@ -57,7 +60,7 @@ private function validate(?object $json): ?string
}

/**
* @return object[]
* @return TObject[]
*
* @throws Exception
*/
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/CountrySerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

use NklKst\TheSportsDb\Entity\Country;

/**
* @extends AbstractSerializer<Country>
*/
class CountrySerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/EquipmentSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

use NklKst\TheSportsDb\Entity\Equipment;

/**
* @extends AbstractSerializer<Equipment>
*/
class EquipmentSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/Event/EventSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use NklKst\TheSportsDb\Entity\Event\Event;
use NklKst\TheSportsDb\Serializer\AbstractSerializer;

/**
* @extends AbstractSerializer<Event>
*/
class EventSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/Event/HighlightSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use NklKst\TheSportsDb\Entity\Event\Highlight;
use NklKst\TheSportsDb\Serializer\AbstractSerializer;

/**
* @extends AbstractSerializer<Highlight>
*/
class HighlightSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/Event/LineupSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use NklKst\TheSportsDb\Entity\Event\Lineup;
use NklKst\TheSportsDb\Serializer\AbstractSerializer;

/**
* @extends AbstractSerializer<Lineup>
*/
class LineupSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/Event/LivescoreSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use NklKst\TheSportsDb\Entity\Event\Livescore;
use NklKst\TheSportsDb\Serializer\AbstractSerializer;

/**
* @extends AbstractSerializer<Livescore>
*/
class LivescoreSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/Event/ResultSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use NklKst\TheSportsDb\Entity\Event\Result;
use NklKst\TheSportsDb\Serializer\AbstractSerializer;

/**
* @extends AbstractSerializer<Result>
*/
class ResultSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/Event/StatisticSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use NklKst\TheSportsDb\Entity\Event\Statistic;
use NklKst\TheSportsDb\Serializer\AbstractSerializer;

/**
* @extends AbstractSerializer<Statistic>
*/
class StatisticSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/Event/TelevisionSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use NklKst\TheSportsDb\Entity\Event\Television;
use NklKst\TheSportsDb\Serializer\AbstractSerializer;

/**
* @extends AbstractSerializer<Television>
*/
class TelevisionSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/Event/TimelineSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use NklKst\TheSportsDb\Entity\Event\Timeline;
use NklKst\TheSportsDb\Serializer\AbstractSerializer;

/**
* @extends AbstractSerializer<Timeline>
*/
class TimelineSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/LeagueSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

use NklKst\TheSportsDb\Entity\League;

/**
* @extends AbstractSerializer<League>
*/
class LeagueSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/LoveSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

use NklKst\TheSportsDb\Entity\Love;

/**
* @extends AbstractSerializer<Love>
*/
class LoveSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/Player/ContractSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use NklKst\TheSportsDb\Entity\Player\Contract;
use NklKst\TheSportsDb\Serializer\AbstractSerializer;

/**
* @extends AbstractSerializer<Contract>
*/
class ContractSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/Player/FormerTeamSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use NklKst\TheSportsDb\Entity\Player\FormerTeam;
use NklKst\TheSportsDb\Serializer\AbstractSerializer;

/**
* @extends AbstractSerializer<FormerTeam>
*/
class FormerTeamSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/Player/HonourSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use NklKst\TheSportsDb\Entity\Player\Honour;
use NklKst\TheSportsDb\Serializer\AbstractSerializer;

/**
* @extends AbstractSerializer<Honour>
*/
class HonourSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/Player/PlayerSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use NklKst\TheSportsDb\Entity\Player\Player;
use NklKst\TheSportsDb\Serializer\AbstractSerializer;

/**
* @extends AbstractSerializer<Player>
*/
class PlayerSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/SeasonSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

use NklKst\TheSportsDb\Entity\Season;

/**
* @extends AbstractSerializer<Season>
*/
class SeasonSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
2 changes: 1 addition & 1 deletion src/Serializer/Serializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ public function serializeHighlights(string $content): array
*/
public function serializeHonors(string $content): array
{
return $this->honorSerializer->serialize($content);
return $this->honorSerializer->serialize($content); // @phpstan-ignore-line
}

/**
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/SportSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

use NklKst\TheSportsDb\Entity\Sport;

/**
* @extends AbstractSerializer<Sport>
*/
class SportSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/Table/EntrySerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use NklKst\TheSportsDb\Entity\Table\Entry;
use NklKst\TheSportsDb\Serializer\AbstractSerializer;

/**
* @extends AbstractSerializer<Entry>
*/
class EntrySerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
3 changes: 3 additions & 0 deletions src/Serializer/TeamSerializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

use NklKst\TheSportsDb\Entity\Team;

/**
* @extends AbstractSerializer<Team>
*/
class TeamSerializer extends AbstractSerializer
{
protected function getEntityClass(): string
Expand Down
31 changes: 17 additions & 14 deletions test/unit/Util/TestUtils.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,10 @@ public static function getHiddenProperty(object $object, string $property)
$ref = new ReflectionObject($object);

try {
$prop = $ref->hasProperty($property) ?
$ref->getProperty($property) :
$ref->getParentClass()->getProperty($property);
$prop = $ref->hasProperty($property) ? $ref->getProperty($property) : null;
if (!$prop && $ref->getParentClass()) {
$prop = $ref->getParentClass()->getProperty($property);
}
} catch (ReflectionException $e) {
return null;
}
Expand All @@ -51,8 +52,8 @@ public static function getHiddenProperty(object $object, string $property)
}

/**
* @param string $class Class to get static property from
* @param string $property Property to get
* @param class-string $class Class to get static property from
* @param string $property Property to get
*
* @return mixed|null
*/
Expand All @@ -66,9 +67,9 @@ public static function getHiddenStaticProperty(string $class, string $property)
}

/**
* @param string $class Class to set static property
* @param string $property Property to change
* @param mixed $value Value to set
* @param class-string $class Class to set static property
* @param string $property Property to change
* @param mixed $value Value to set
*/
public static function setHiddenStaticProperty(string $class, string $property, $value): void
{
Expand All @@ -90,9 +91,10 @@ public static function getHiddenMethod(object $object, string $method): ?Closure
$ref = new ReflectionObject($object);

try {
$meth = $ref->hasMethod($method) ?
$ref->getMethod($method) :
$ref->getParentClass()->getMethod($method);
$meth = $ref->hasMethod($method) ? $ref->getMethod($method) : null;
if (!$meth && $ref->getParentClass()) {
$meth = $ref->getParentClass()->getMethod($method);
}
} catch (ReflectionException $e) {
return null;
}
Expand All @@ -102,8 +104,8 @@ public static function getHiddenMethod(object $object, string $method): ?Closure
}

/**
* @param string $class Class to get static method from
* @param string $method Method to get
* @param class-string $class Class to get static method from
* @param string $method Method to get
*/
public static function getHiddenStaticMethod(string $class, string $method): ?Closure
{
Expand Down Expand Up @@ -134,6 +136,7 @@ public static function assertThatAllPropertiesAreInitialized($objects): void
// Check all objects
foreach ($objects as $object) {
$class = get_class($object);
assert(is_string($class));

// Get properties by class name, because get_object_vars() doesn't return uninitialized properties
$properties = array_keys(get_class_vars($class));
Expand Down Expand Up @@ -161,6 +164,6 @@ public static function assertThatAllPropertiesAreInitialized($objects): void
*/
public static function setPatreonKey(Client $client): void
{
$client->configure()->setKey(getenv('PATREON_KEY'));
$client->configure()->setKey(strval(getenv('PATREON_KEY')));
}
}

0 comments on commit 7754eee

Please sign in to comment.