diff --git a/phpstan.neon b/phpstan.neon index f7b730e2..3d85785d 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -8,6 +8,8 @@ parameters: - tests/stub/phpstan/TestResponse.stub - tests/stub/phpstan/Settings.stub - tests/stub/phpstan/DataEloquentCast.stub + - tests/stub/phpstan/File.stub + - tests/stub/phpstan/CastsAttributes.stub paths: - app diff --git a/tests/stub/phpstan/CastsAttributes.stub b/tests/stub/phpstan/CastsAttributes.stub new file mode 100644 index 00000000..d408ece5 --- /dev/null +++ b/tests/stub/phpstan/CastsAttributes.stub @@ -0,0 +1,35 @@ +<?php + +namespace Illuminate\Contracts\Database\Eloquent; + +use Illuminate\Database\Eloquent\Model; + +/** + * @template TGet + * @template TSet + * @copy + */ +interface CastsAttributes +{ + /** + * Transform the attribute from the underlying model values. + * + * @param \Illuminate\Database\Eloquent\Model $model + * @param string $key + * @param mixed $value + * @param array<string, mixed> $attributes + * @return TGet|null + */ + public function get(Model $model, string $key, mixed $value, array $attributes); + + /** + * Transform the attribute to its underlying model values. + * + * @param \Illuminate\Database\Eloquent\Model $model + * @param string $key + * @param TSet|null $value + * @param array<string, mixed> $attributes + * @return mixed + */ + public function set(Model $model, string $key, mixed $value, array $attributes); +} diff --git a/tests/stub/phpstan/File.stub b/tests/stub/phpstan/File.stub new file mode 100644 index 00000000..e0cb5730 --- /dev/null +++ b/tests/stub/phpstan/File.stub @@ -0,0 +1,11 @@ +<?php + +namespace Symfony\Component\HttpFoundation\File; + +/** + * @copy + */ +class File +{ + +}