Skip to content

Add a way to create schemas #159

Open
@Herrick19

Description

@Herrick19

Hi,

The library allows to create paths, but apparently doesn't provide any way to add schemas.

Doing something like:
$objOpenapi->components->schemas['foo'] = new Schema([ 'type' => Type::INTEGER, ]);

gives a warning and the element is not created:
PHP Notice: Indirect modification of overloaded property cebe\openapi\spec\Components::$schemas has no effect in G:\test.php on line 119

Am I missing something ?

If not, it would be nice if we could create dynamically elements using this library.

Thank in advance

Activity

cebe

cebe commented on Apr 20, 2022

@cebe
Owner

You can currently do it like this:

$schemas = []; // or $schemas = $objOpenapi->components->schemas;

$schemas['foo'] = new Schema([ 'type' => Type::INTEGER, ]);
// add more here ...

$objOpenapi->components->schemas = $schemas;

This library was initally created to only read OpenAPI files, writing was added later so the programming API is not optimal.

added this to the 2.0 milestone on Apr 20, 2022
SOHELAHMED7

SOHELAHMED7 commented on May 19, 2025

@SOHELAHMED7
Contributor

@cebe

How this issue can be fixed without major change in the library?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @cebe@Herrick19@SOHELAHMED7

        Issue actions

          Add a way to create schemas · Issue #159 · cebe/php-openapi