diff --git a/composer.json b/composer.json index 69074f4..10a0831 100644 --- a/composer.json +++ b/composer.json @@ -22,6 +22,7 @@ "require-dev": { "friendsofphp/php-cs-fixer": "^v2.15.8", "phpunit/phpunit": "^9.3.11", + "spatie/ignition": "^0.0.6", "vimeo/psalm": "^3.17.1" }, "autoload": { diff --git a/src/BaseSolution.php b/src/BaseSolution.php index b4a4909..ce57247 100644 --- a/src/BaseSolution.php +++ b/src/BaseSolution.php @@ -2,55 +2,6 @@ namespace Facade\IgnitionContracts; -class BaseSolution implements Solution +class BaseSolution extends \Spatie\Ignition\Contracts\BaseSolution implements Solution { - protected $title; - protected $description; - protected $links = []; - - public static function create(string $title) - { - return new static($title); - } - - public function __construct(string $title) - { - $this->title = $title; - } - - public function getSolutionTitle(): string - { - return $this->title; - } - - public function setSolutionTitle(string $title): self - { - $this->title = $title; - - return $this; - } - - public function getSolutionDescription(): string - { - return $this->description; - } - - public function setSolutionDescription(string $description): self - { - $this->description = $description; - - return $this; - } - - public function getDocumentationLinks(): array - { - return $this->links; - } - - public function setDocumentationLinks(array $links): self - { - $this->links = $links; - - return $this; - } } diff --git a/src/HasSolutionsForThrowable.php b/src/HasSolutionsForThrowable.php index 32ad3e9..1e485d8 100644 --- a/src/HasSolutionsForThrowable.php +++ b/src/HasSolutionsForThrowable.php @@ -2,12 +2,6 @@ namespace Facade\IgnitionContracts; -use Throwable; - -interface HasSolutionsForThrowable +interface HasSolutionsForThrowable extends \Spatie\Ignition\Contracts\HasSolutionsForThrowable { - public function canSolve(Throwable $throwable): bool; - - /** \Facade\IgnitionContracts\Solution[] */ - public function getSolutions(Throwable $throwable): array; } diff --git a/src/ProvidesSolution.php b/src/ProvidesSolution.php index 83bd469..f36e21f 100644 --- a/src/ProvidesSolution.php +++ b/src/ProvidesSolution.php @@ -2,7 +2,6 @@ namespace Facade\IgnitionContracts; -interface ProvidesSolution +interface ProvidesSolution extends \Spatie\Ignition\Contracts\ProvidesSolution { - public function getSolution(): Solution; } diff --git a/src/RunnableSolution.php b/src/RunnableSolution.php index 5ab3e44..36484e7 100644 --- a/src/RunnableSolution.php +++ b/src/RunnableSolution.php @@ -2,13 +2,6 @@ namespace Facade\IgnitionContracts; -interface RunnableSolution extends Solution +interface RunnableSolution extends \Spatie\Ignition\Contracts\RunnableSolution, Solution { - public function getSolutionActionDescription(): string; - - public function getRunButtonText(): string; - - public function run(array $parameters = []); - - public function getRunParameters(): array; } diff --git a/src/Solution.php b/src/Solution.php index 35542fd..c0fc7b9 100644 --- a/src/Solution.php +++ b/src/Solution.php @@ -2,11 +2,6 @@ namespace Facade\IgnitionContracts; -interface Solution +interface Solution extends \Spatie\Ignition\Contracts\Solution { - public function getSolutionTitle(): string; - - public function getSolutionDescription(): string; - - public function getDocumentationLinks(): array; } diff --git a/src/SolutionProviderRepository.php b/src/SolutionProviderRepository.php index a52a82a..53f886d 100644 --- a/src/SolutionProviderRepository.php +++ b/src/SolutionProviderRepository.php @@ -2,19 +2,6 @@ namespace Facade\IgnitionContracts; -use Throwable; - -interface SolutionProviderRepository +interface SolutionProviderRepository extends \Spatie\Ignition\Contracts\SolutionProviderRepository { - public function registerSolutionProvider(string $solutionProviderClass): self; - - public function registerSolutionProviders(array $solutionProviderClasses): self; - - /** - * @param Throwable $throwable - * @return \Facade\IgnitionContracts\Solution[] - */ - public function getSolutionsForThrowable(Throwable $throwable): array; - - public function getSolutionForClass(string $solutionClass): ?Solution; } diff --git a/tests/SolutionTest.php b/tests/SolutionTest.php index 49d508d..2b34b48 100644 --- a/tests/SolutionTest.php +++ b/tests/SolutionTest.php @@ -3,15 +3,21 @@ namespace Facade\IgnitionContracts\Tests; use Facade\IgnitionContracts\BaseSolution; +use Facade\IgnitionContracts\Solution; use PHPUnit\Framework\TestCase; class SolutionTest extends TestCase { /** @test */ - public function it_can_instanciate_a_base_solution() + public function it_can_instantiate_a_base_solution() { $solution = BaseSolution::create('my title'); $this->assertInstanceOf(BaseSolution::class, $solution); + $this->assertInstanceOf(Solution::class, $solution); + + // Make sure these old contracts still work for the new spatie/ignition. + $this->assertInstanceOf(\Spatie\Ignition\Contracts\BaseSolution::class, $solution); + $this->assertInstanceOf(\Spatie\Ignition\Contracts\Solution::class, $solution); } }