Description
Describe the bug
When I use this library to try to generate PHP classes from FedEx's OpenAPI schema for their new RESTful API, I get this error:
PHP Fatal error: Uncaught PHPModelGenerator\Exception\SchemaException: No nested schema for composed property RequestePackageLineItemDimensions in file /[...]/utils/../schemas/rate.json
(Note: that should be RequestedPackageLineItemDimensions, but the first 'd' is missing in the reference and the definition, so it shouldn't matter.)
This is mentioned in issue 57, but the solution there was to alter the schema. Since the goal is to be as hands-off as possible, I'd much prefer to simply download the schemas and run this function on them. I don't want to have to modify every schema we need (ship, rate, address validation, and more) each time we have to update to a new API release. I've installed a java-based tool that converts schemas into PHP, and it didn't encounter this problem when using this schema, so I know it's possible. I also validated the schema with two online validators, and both indicated that the JSON is valid for OpenAPI.
Expected behavior
Given that this is a valid OpenAPI 3 schema from a major company, I expect it to be processed into PHP classes properly.
Schema
https://developer.fedex.com/api/en-us/catalog/rate/v1/docs.html > click "download JSON schema". I'd link to it directly here, but the page uses some JS to actually serve the JSON file.
Here's the function I'm using to try to generate the classes:
function generate() {
$generator = new ModelGenerator(
(new GeneratorConfiguration())
->setNamespacePrefix('models\fedex')
->setSerialization(true)
->setCollectErrors(false)
->setImmutable(false)
);
$schemaPath = dirname(__FILE__) . '/../schemas/rate.json';
$resultDirectory = dirname(__FILE__) . '/../models/fedex';
$generator
->generateModelDirectory($resultDirectory)
->generateModels(new OpenAPIv3Provider($schemaPath), $resultDirectory);
}
Version:
0.23.3
Additional context
I don't think I have anything to add. I'm experienced with PHP, but very new to OpenAPI and class generation. If more information is required, please ask.