Skip to content

6.5.0

Latest

Choose a tag to compare

@DerManoMann DerManoMann released this 27 Jul 05:02
4d1794f

Spec Pipeline

This version introduces the spec pipeline - a new set of attributes that will replace the current (classic) annotations/attributes.
It is using a radically different approach in how the code is organized which makes it a lot easier to maintain.

Right now, the new code is disabled and nothing changes. Key is that in order to try the new code the new OpenApi\Builder needs to be used. Again - using the Builder will, by default, change nothing and the current classic code is used.

The new Builder::setMode() method allows to run the new spec pipeline in two modes:

  • HYBRID: Enables spec support where found and also routes all classic annotations/attributes through the new spec pipeline.
    Under the hood the classic Generator is used to load/instantiate classic annotations/attributes. Then a custom bridge translates all of those into new thin OpenApi\Spec attributes and adds them to the spec pipeline.
  • SPEC: Only new spec attributes are processed.

HYBRID is a good way to see how compatible things are and also a migration path, as a codebase could be upgrade file by file.

All spec pipeline related commits have been omitted from the change list for clarity and brevity. Going forward these will be marked as feat(Spec): and listed as all other changes.

Testing and Feedback

All current tests pass in HYBRID mode. However, there hasn't been any testing on actual projects yet. Testing the new code in hybrid mode on existing projects and feedback would be greatly appreciated.

What's Changed

Full Changelog: 6.4.0...6.5.0