1. Go to this page and download the library: Download synatos/porta 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/ */
synatos / porta example snippets
use Synatos\Porta\Model\OpenAPI;
$openAPI = new OpenAPI();
# yaml
$openAPI->fromYamlFile(__DIR__ . "/my-open-api.yml");
$openAPI->toYamlFile(__DIR__ . "/export.yml");
# json
$openAPI->fromJSONFile("my-open-api.json");
$openAPI->toJSONFile(__DIR__ . "/export.json");
use Synatos\Porta\Contract\Validator;
use Synatos\Porta\Http\ContentType;
use Synatos\Porta\Http\HttpHeader;
use Synatos\Porta\Model\OpenAPI;
use Synatos\Porta\Model\Schema;
use Synatos\Porta\Porta;
use Synatos\Porta\Validator\FormatValidatorFactory;
mail", new EmailValidator());
use Synatos\Porta\Generator\OpenAPIClassGenerator;
use Synatos\Porta\Model\OpenAPI;
lyQualifiedClassName = "Example\\CompiledSchema";
$psrPrefix = "";
$baseDir = __DIR__;
$openAPIClassGenerator = new OpenAPIClassGenerator();
$openAPIClassGenerator->generate($openAPI, $fullyQualifiedClassName, $psrPrefix, $baseDir);
class CompiledSchema
{
/**
* @var OpenAPI
*/
private static $openAPI;
/**
*
* @return OpenAPI
*/
public static function getOpenAPI() : OpenAPI
{
if (self::$openAPI === null) {
self::$openAPI = new OpenAPI();
self::$openAPI->fromArray([ /* schema will be compiled into an array */]);
}
return self::$openAPI;
}
}
class UserRequest implements \JsonSerializable
{
/**
* @var string
*/
protected $id;
/**
* @param string|null $id
*
* @return void
*/
public function setId(?string $id)
{
$this->id = $id;
}
/**
*
* @return string|null
*/
public function getId() : ?string
{
return $this->id;
}
/**
* @param array $array
*
* @return void
*/
public function fromArray(array $array) {/* ... */}
/**
*
* @return array
*/
public function jsonSerialize() : array {/* ... */}
use Synatos\Porta\Http\ContentType;
use Synatos\Porta\Model\MediaType;
use Synatos\Porta\Model\OpenAPI;
use Synatos\Porta\Model\Operation;
use Synatos\Porta\Model\PathItem;
use Synatos\Porta\Model\RequestBody;
use Synatos\Porta\Model\Schema;
stMediaType = new MediaType();
$requestMediaType->setSchema($objectSchema);
$requestBody = new RequestBody();
$requestBody->setRequired(true);
$requestBody->setContent([
ContentType::APPLICATION_JSON => $requestMediaType
]);
$operation = new Operation();
$operation->setRequestBody($requestBody);
$pathItem = new PathItem();
$pathItem->setOperationByMethod(PathItem::METHOD_POST, $operation);
$openAPI = new OpenAPI();
$openAPI->setPaths([
"/api/do/something" => $pathItem
]);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.