swagger-php VS Nyholm PSR-7

Compare swagger-php vs Nyholm PSR-7 and see what are their differences.

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
swagger-php Nyholm PSR-7
10 7
4,959 1,119
- -
8.1 4.2
7 days ago 13 days ago
PHP PHP
Apache License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

swagger-php

Posts with mentions or reviews of swagger-php. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-10-31.
  • Workplaces for digital nomads: the API
    9 projects | dev.to | 31 Oct 2022
    Native PHP attributes allowed OpenAPI markup to be much more compact than in DocBlocks. The resulting openapi.yaml is created with swagger-php and used to test the API.
  • Pragmatic development
    6 projects | dev.to | 13 Oct 2022
    First, swagger-php generates openapi.yaml based on code attributes, and then the spectator checks API responses to match openapi specification. The popular L5-Swagger is redundant in this case, as it is based on the same swagger-php with the addition of Swagger UI.
  • Swagger/Open api integration in laravel
    3 projects | /r/laravel | 25 May 2022
    I do this except use https://github.com/zircote/swagger-php for writing the open api spec. I can enter the Spatie Data Object classes into the parameters, responses, and properties. Like op said though, it's a lot of comments and stuff to keep updated. Entirely using reflection (or reflection plus ability to manually specify certain extra things) like you're talking about sounds great.
  • OpenAPI Specification: The Complete Guide
    19 projects | dev.to | 18 May 2022
    wagger-php is a php swagger annotation and parsing library which generates interactive OpenAPI documentation for your RESTful API using doctrine annotations. - GitHub - zircote/swagger-php
  • Validate your PHP API tests against OpenAPI definitions – a Laravel example
    10 projects | dev.to | 22 Mar 2022
    The second one is L5 Swagger, a popular package bringing Swagger PHP and Swagger UI to Laravel. We actually don't need Swagger PHP here, as it uses Doctrine annotations to generate OpenAPI definitions and we're going to manually write our own instead. We do need Swagger UI, however, and the package conveniently adapts it to work with Laravel (the -W option is simply here to also update related dependencies, to avoid conflicts).
  • Need to create OpenAPI documentation with Zend Framework 2
    1 project | /r/OpenAPI | 25 Nov 2021
    I need to create REST API documentation for a legacy Zend Framework 2 project. I tried to use zircote/swagger-php . It works with the new zf2 skeleton project but it fails when I use it in the legacy zf2 project. It adds Symfony/polyfill-php80 and it generates to issue. Anybody could help me on this issue. If you can suggest another package for API documentation also be a great help. Thanks.
  • Dynamic class property with phpdoc included
    3 projects | /r/PHPhelp | 31 Jul 2021
    It is possible that there is a library doing this already. I am not PHP coder so would like to avoid complex frameworks and stick with barebone solution doing only this Swagger/JSON stuff. For swagger, I decided to go with zircote/swagger-php. I would like my schema and model classes to have nice Swagger doc and at the same time I can use them to prepare objects to interact with the DB by loading/dumping from JSON.
  • Creating API documentation from php files?
    4 projects | /r/PHP | 3 Feb 2021
    I'm using this library to generate an open api 3 (swagger) yaml file. You add @OA markup to your doc blocks and then can have this generate a file or produce it on the fly. It's a bit sparse on documentation but is working really well with my MVC set up for a REST API I'm developing. https://github.com/zircote/swagger-php
  • Json schema out of an entity or DTO
    1 project | /r/symfony | 12 Jan 2021
    I like the swagger way of generating schema's by annotating classes.. Swagger/OpenApi 3.0 uses a slightly modified subset of json schema, would that be of use to you?

Nyholm PSR-7

Posts with mentions or reviews of Nyholm PSR-7. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-29.
  • Testing an OpenAPI specification in PHP
    4 projects | dev.to | 29 Nov 2023
    As the documentation states, this package only performs the conversion, so we would need a PSR-7 and a PSR-17 implementation to convert the objects to and from PSR-7. We can use the library the documentation recommends, nyholm/psr7, but there are others.
  • Creating an application #9 - http Factories
    2 projects | /r/yii3 | 20 Jan 2023
    The following example shows how to create configuration for the HTTP factories, using the nyholm/psr7 package:
  • The PHPer's Guide to OAuth
    7 projects | dev.to | 21 Nov 2022
    Since the library is designed to be easily integrated with different frameworks, it relies on the usage of PSR-7 compliant HTTP messages. To fulfill this requirement, I'll be using the nyholm/psr7 package.
  • Decorator pattern implementing interface
    3 projects | /r/PHPhelp | 5 Jul 2022
    If you go strict PSR-7, as you see in nyholm/psr7, Tobias uses traits to add the functionality of the extended RequestInterface and MessageInterface:
  • Validate your PHP API tests against OpenAPI definitions – a Laravel example
    10 projects | dev.to | 22 Mar 2022
    The Symfony folks thought of this, however, and provided a bridge that converts HttpFoundation objects to PSR-7 ones. The bridge simply needs a PSR-7 and PSR-17 factory, for which they suggest to use Tobias Nyholm's PSR-7 implementation.
  • re: On using PSR abstractions
    2 projects | /r/PHP | 31 Aug 2021
    “In theory, theory and practice are the same. In practice, they are not.” (Dr. Albert Einstein). I believe same goes for packages, too. A good example is the [comparison](https://github.com/Nyholm/psr7) of some PSR-7 implementations.
  • Introducing FEAST Framework
    6 projects | /r/PHP | 16 Jun 2021
    The point is why would I pull in code in the first place that is not needed? If it is optional, then why is it not a separate package? Same with all of the bloated HTTP requests and response objects that frameworks and other libs usually use. I really like https://github.com/Nyholm/psr7 for that reason, it has a table in it's readme.md that is pretty much enough to know why I like it. If something specific is needed it can be decorated or extended on project level.

What are some alternatives?

When comparing swagger-php and Nyholm PSR-7 you can also consider the following projects:

L5-Swagger - OpenApi or Swagger integration to Laravel

Laminas Diactoros - PSR HTTP Message implementations

laminas-code - Extensions to the PHP Reflection API, static code scanning, and code generation

psr17 - Provides a PSR17 synthetic implementation.

apiDoc - RESTful web API Documentation Generator.

fluentpdo - A PHP SQL query builder using PDO

openapi-psr7-validator - It validates PSR-7 messages (HTTP request/response) against OpenAPI specifications

Packagist - Package Repository Website - try https://packagist.com if you need your own -

flask-restx - Fork of Flask-RESTPlus: Fully featured framework for fast, easy and documented API development with Flask

Laravel - Laravel is a web application framework with expressive, elegant syntax. We’ve already laid the foundation for your next big idea — freeing you to create without sweating the small things.

rswag - Seamlessly adds a Swagger to Rails-based API's

psr-http - PSR-7, 15, 17 implementation.