1. Go to this page and download the library: Download fissible/accord library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
fissible / accord example snippets
use Fissible\Accord\Drivers\Laravel\Http\Middleware\ValidateApiContract;
->withMiddleware(function (Middleware $middleware) {
$middleware->appendToGroup('api', ValidateApiContract::class);
})
// config/accord.php
'failure_mode' => 'callable',
'failure_callable' => function (\Fissible\Accord\ValidationResult $result): void {
// report to your error tracker, queue a job, send an alert, etc.
\Sentry\captureMessage(implode(', ', $result->errors));
},
use Fissible\Accord\Drivers\Laravel\Testing\AssertsApiContracts;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class UserApiTest extends TestCase
{
use RefreshDatabase, AssertsApiContracts;
public function test_index_matches_contract(): void
{
$response = $this->getJson('/v1/users');
$response->assertOk();
$this->assertResponseMatchesContract($response); // body matches the spec
$this->assertResponseWasValidated($response); // ...and it actually WAS validated (not silently skipped)
}
}
use Fissible\Accord\SpecSourceInterface;
use cebe\openapi\spec\OpenApi;
class RemoteSpecSource implements SpecSourceInterface
{
public function load(string $version): ?OpenApi { /* ... */ }
public function exists(string $version): bool { /* ... */ }
}
use Fissible\Accord\FileSpecSource;
use Fissible\Accord\UrlSpecSource;
// Local files — pattern omits the extension; .yaml/.yml/.json are tried in order.
$file = new FileSpecSource('/var/www/app', '{base}/resources/openapi/{version}');
// Remote URL — with an optional PSR-16 cache for persistence.
$url = new UrlSpecSource(
pattern: 'https://specs.example.com/openapi/{version}.yaml',
cache: $psrCache, // optional PSR-16
ttl: 3600,
);
use Fissible\Accord\DriverInterface;
use Fissible\Accord\FailureMode;
class MyFrameworkDriver implements DriverInterface
{
public function resolveSpecPath(string $version): string
{
return sprintf('/path/to/specs/%s.yaml', $version);
}
public function getFailureMode(): FailureMode
{
return FailureMode::Exception;
}
public function getFailureCallable(): ?callable
{
return null;
}
}