sergey-shandar / restapi-core-php-poc
REST API Core for PHP (Proof of concept)
dev-master
2023-05-05 04:53 UTC
Requires
- php: >=5.6
- guzzlehttp/guzzle: ^6.2
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2024-11-04 15:02:32 UTC
README
REST API Core for PHP (Proof of concept)
Supported Run Times
- PHP 5.6
- PHP 7.0
- PHP 7.1
- HHVM 3.6
Required Windows Extensions
php_mbstring.dll
php_openssl.dll
Supported Request Types
Reflection
Supported Types
JSON
- Serialization: PHP Type => string
- Deserialization: string => PHP JSON Type => PHP Type
Conventions
Each user class should implement
- A default constructor.
- A
createClassInfo
static function which returns\RestApiCore\Reflection\Types\ClassInfo
.
For example
<?php use \RestApiCore\Reflection\Types\ClassInfo; use \RestApiCore\Reflection\Types\NumberInfo; use \RestApiCore\Reflection\Types\StringInfo; class SampleClass { /** * @var int $a */ public $a; /** * @var string[][][] $b */ public $b; /** * @var int[] $c */ public $c; /** * An optional parameter. * * @var string|null $d */ public $d; /** * @var SampleSubClass $sub */ public $sub; /** * @var SampleSubClass[] $subArray */ public $subArray; /** * SampleClass constructor. * * @param int|null $a * @param string[][][]|null $b * @param int[]|null $c * @param string|null $d * @param SampleSubClass|null $sub * @param SampleSubClass[]|null $subArray */ public function __construct( $a = null, array $b = null, array $c = null, $d = null, $sub = null, array $subArray = null) { $this->a = $a; $this->b = $b; $this->c = $c; $this->d = $d; $this->sub = $sub; $this->subArray = $subArray; } /** * @return ClassInfo */ public static function createClassInfo() { return ClassInfo::create(self::class) ->withProperty('a', 'a', NumberInfo::create()) ->withProperty('b', 'b', StringInfo::create()->createArray()->createArray()->createArray()) ->withProperty('c', 'CCC', NumberInfo::create()->createArray()) ->withProperty('d', 'd', StringInfo::create()) ->withProperty('sub', 'sub', SampleSubClass::createClassType()) ->withProperty('subArray', 'subArray', SampleSubClass::createClassType()->createArray()); } }