-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Class is not generated #8
Comments
Похоже проблема глубже. Не могу побороть сложные схемы с if и allOf типа
В подобных ситуациях похоже придется делать что-то типа class DeviceIos extends Device {} |
Главный случай использования этого генератора - отражение |
Можем порассуждать исходя из того, как allOf должен быть описан тут https://github.com/swaggest/php-json-schema. Т.е. если схема Типа такого, class AllOf extends Ref
{
...
public static function setUpProperties($properties, Schema $ownerSchema)
{
parent::setUpProperties($properties, $ownerSchema)
$ownerSchema->required[] = 'field1';
}
...
} Во втором примере с ветвлениями, думаю, можно просто генерировать классы типа class DeviceIos extends Device {
...
} с уточняющими логику Сейчас в своей архитектуре уже склоняюсь к плоским POPO объектам. Слишком большие затраты получаются на дублирование логики json схемы в php |
Наследование в пхп ограничивает одним родителем, но жсон схема оперирует композицией, Возможно было бы удобно структурировать данные древовидно согласно жсон схеме: /**
* @property country
* @property region
* @property client_platform
* @property type
* .....
**/
class DeviceIos {
/** @var Device **/
public $allOf0;
/** @var DeviceIosAllOf1 **/
public $allOf1;
....
} Но при этом нужно (?) организовать плоский доступ, возможно с использованием https://github.com/swaggest/php-json-schema#nested-structures. Как такой вариант? Композиционные возможности жсон схемы не очень гладко укладываются в модели данных пхп. В частном случае, когда |
Да, согласен, нужен вариант с композицией Выглядит норм class DeviceIos {
/** @var Device **/
public $allOf0;
/** @var DeviceIosAllOf1 **/
public $allOf1;
....
} |
Hi again!
One more unexpected behavior. Can you help, пожалуйста?)
allOf.json
ref.json
I expect 3 generated classes: RefJson.php, RefJsonField1.php and AllOf.php. But there is only two: RefJson.php and RefJsonField1.php
Maybe something missed in the schemas?
The text was updated successfully, but these errors were encountered: