1
0
Fork 0
mirror of https://github.com/archtechx/laravel-seo.git synced 2025-12-12 09:54:03 +00:00

Fix some PHPStan errors

This commit is contained in:
Viktor Szépe 2021-11-13 19:16:32 +00:00
parent 1b2bfb2945
commit 1970b01773
4 changed files with 22 additions and 12 deletions

View file

@ -28,8 +28,8 @@
"imliam/laravel-blade-helper": "^1.0" "imliam/laravel-blade-helper": "^1.0"
}, },
"require-dev": { "require-dev": {
"orchestra/testbench": "^6.9", "orchestra/testbench": "^6.23",
"nunomaduro/larastan": "^0.6.10", "nunomaduro/larastan": "^1.0",
"pestphp/pest": "^1.2", "pestphp/pest": "^1.2",
"pestphp/pest-plugin-laravel": "^1.0" "pestphp/pest-plugin-laravel": "^1.0"
}, },

View file

@ -10,11 +10,9 @@ parameters:
universalObjectCratesClasses: universalObjectCratesClasses:
- Illuminate\Routing\Route - Illuminate\Routing\Route
- ArchTech\SEO\SEOManager - ArchTech\SEO\SEOManager
checkMissingIterableValueType: false
ignoreErrors: ignoreErrors:
- '#SEOManager\|array\|string\|null#' # Waiting for https://github.com/phpstan/phpstan/issues/5706
- '#string\|false given#' - '#^Cannot call method (flipp|get|set)\(\) on ArchTech\\SEO\\SEOManager\|array\|string\|null\.$#'
- '#flipp\(\) should return#' - '#^Method ArchTech\\SEO\\SEOManager::flipp\(\) should return static\(ArchTech\\SEO\\SEOManager\)\|string but returns array\|string\|null\.$#'
- '#\_\_set\(\) has no return typehint specified#'
checkMissingIterableValueType: false

View file

@ -82,11 +82,14 @@ class SEOManager
: value($this->values[$key]); : value($this->values[$key]);
} }
/** Set one or more values. */ /**
* Set one or more values.
*
* @param string|array<string, string> $key
*/
public function set(string|array $key, string|Closure|null $value = null): string|array|null public function set(string|array $key, string|Closure|null $value = null): string|array|null
{ {
if (is_array($key)) { if (is_array($key)) {
/** @var array<string, string> $key */
foreach ($key as $k => $v) { foreach ($key as $k => $v) {
$this->set($k, $v); $this->set($k, $v);
} }
@ -166,7 +169,7 @@ class SEOManager
]; ];
} }
$query = base64_encode(json_encode($data)); $query = base64_encode((string)json_encode($data));
/** @var string $template */ /** @var string $template */
$template = $this->meta("flipp.templates.$alias"); $template = $this->meta("flipp.templates.$alias");
@ -273,7 +276,11 @@ class SEOManager
return $this->get(Str::snake($key, '.')); return $this->get(Str::snake($key, '.'));
} }
/** Handle magic set. */ /**
* Handle magic set.
*
* @phpstan-return string|array|null
*/
public function __set(string $key, string $value) public function __set(string $key, string $value)
{ {
return $this->set(Str::snake($key, '.'), $value); return $this->set(Str::snake($key, '.'), $value);

View file

@ -5,6 +5,11 @@ declare(strict_types=1);
use ArchTech\SEO\SEOManager; use ArchTech\SEO\SEOManager;
if (! function_exists('seo')) { if (! function_exists('seo')) {
/**
* @template T of string|array
* @param T|null $key
* @return SEOManager|string|array|null
*/
function seo(string|array $key = null): SEOManager|string|array|null function seo(string|array $key = null): SEOManager|string|array|null
{ {
if ($key === null) { if ($key === null) {