Skip to content

Add a way to create schemas #159

Open

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

  1. 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.

  2. added this to the 2.0 milestone on Apr 20, 2022
  3. 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

      Issue actions