romanzipp / Laravel-Queue-Monitor

Monitoring Laravel Jobs with your Database
https://packagist.org/packages/romanzipp/laravel-queue-monitor
MIT License
733 stars 95 forks source link

Routing Error in 2.1.1 #66

Closed rsuarez82 closed 2 years ago

rsuarez82 commented 3 years ago

That was quick, again thanks a lot.

Unfortunately I am back to the former error now for some reason. At least I think I am:

{
    "message": "Route [queue-monitor::purge] not defined. (View: /var/www/vendor/romanzipp/laravel-queue-monitor/views/jobs.blade.php)",
    "exception": "Facade\\Ignition\\Exceptions\\ViewException",
    "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php",
    "line": 429,
    "trace": [
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php",
            "line": 708,
            "function": "route",
            "class": "Illuminate\\Routing\\UrlGenerator",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/romanzipp/laravel-queue-monitor/src/Providers/../../views/jobs.blade.php",
            "line": 317,
            "function": "route"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php",
            "line": 107,
            "function": "require"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php",
            "line": 108,
            "function": "Illuminate\\Filesystem\\{closure}",
            "class": "Illuminate\\Filesystem\\Filesystem",
            "type": "::"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php",
            "line": 58,
            "function": "getRequire",
            "class": "Illuminate\\Filesystem\\Filesystem",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php",
            "line": 61,
            "function": "evaluatePath",
            "class": "Illuminate\\View\\Engines\\PhpEngine",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/facade/ignition/src/Views/Engines/CompilerEngine.php",
            "line": 37,
            "function": "get",
            "class": "Illuminate\\View\\Engines\\CompilerEngine",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/View/View.php",
            "line": 139,
            "function": "get",
            "class": "Facade\\Ignition\\Views\\Engines\\CompilerEngine",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/View/View.php",
            "line": 122,
            "function": "getContents",
            "class": "Illuminate\\View\\View",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/View/View.php",
            "line": 91,
            "function": "renderContents",
            "class": "Illuminate\\View\\View",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Http/Response.php",
            "line": 62,
            "function": "render",
            "class": "Illuminate\\View\\View",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Http/Response.php",
            "line": 34,
            "function": "setContent",
            "class": "Illuminate\\Http\\Response",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 783,
            "function": "__construct",
            "class": "Illuminate\\Http\\Response",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 753,
            "function": "toResponse",
            "class": "Illuminate\\Routing\\Router",
            "type": "::"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 693,
            "function": "prepareResponse",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
            "line": 41,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 695,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 670,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 636,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 625,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 166,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/fruitcake/laravel-cors/src/HandleCors.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fruitcake\\Cors\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/app/Http/Middleware/ForceJson.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\ForceJson",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 141,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 110,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/public/index.php",
            "line": 55,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        }
    ]
}

These are the routes I added to my routing file, to reflect yours:

Route::get('jobsui', '\romanzipp\QueueMonitor\Controllers\ShowQueueMonitorController')->name('queue-monitor::index');
Route::delete('jobsui/monitors/{monitor}', '\romanzipp\QueueMonitor\Controllers\DeleteMonitorController')->name('queue-monitor::destroy');
Route::delete('jobsui/purge', '\romanzipp\QueueMonitor\Controllers\PurgeMonitorsController')->name('queue-monitor::purge');

Originally posted by @rsuarez82 in https://github.com/romanzipp/Laravel-Queue-Monitor/issues/63#issuecomment-817612977

rsuarez82 commented 3 years ago

Hmmm, if I am putting this into our RouteServiceProvider directly without being affected by prefixed routes, it does work. This is not a good solution for us, though. Could you maybe change it, so it supports Route-Prefixes? As that seems to be the issue here and I frankly suppose others got this kind of setup too.

romanzipp commented 3 years ago

I can not reproduce the issue in a local test project using the RouteServiceProvider $namespace or namespace() from the Router.

Although I have heard of this issue before. Do you know any other Laravel packages that offer routes? I used the existing route registering procedure from the official UI scaffolding.

rsuarez82 commented 3 years ago

I don't know, I'll put you a list of all the packages used below:

asm89/stack-cors                     v2.0.2             Cross-origin resource sharing library and stack middleware
brick/math                           0.9.2              Arbitrary-precision arithmetic library
composer/ca-bundle                   1.2.9              Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.
composer/composer                    2.0.9              Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right...
composer/package-versions-deprecated 1.11.99.1          Composer plugin that provides efficient querying for installed package versions (no runtime IO)
composer/semver                      3.2.4              Semver library that offers utilities, version constraint parsing and validation.
composer/spdx-licenses               1.5.5              SPDX licenses list and validation library.
composer/xdebug-handler              1.4.5              Restarts a process without Xdebug.
darkaonline/l5-swagger               8.0.4              OpenApi or Swagger integration to Laravel
defuse/php-encryption                v2.2.1             Secure PHP Encryption Library
dnoegel/php-xdg-base-dir             v0.1.1             implementation of xdg base directory specification for php
doctrine/annotations                 1.11.1             Docblock Annotations Parser
doctrine/cache                       1.10.2             PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as ...
doctrine/dbal                        3.0.0              Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and ma...
doctrine/event-manager               1.1.1              The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrin...
doctrine/inflector                   2.0.3              PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lower...
doctrine/instantiator                1.4.0              A small, lightweight utility to instantiate objects in PHP without invoking their constructors
doctrine/lexer                       1.2.1              PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.
dragonmantank/cron-expression        v3.1.0             CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due
egulias/email-validator              2.1.25             A library for validating emails against several RFCs
facade/flare-client-php              1.3.7              Send PHP errors to Flare
facade/ignition                      2.5.9              A beautiful error page for Laravel applications.
facade/ignition-contracts            1.0.2              Solution contracts for Ignition
fideloper/proxy                      4.4.1              Set trusted proxies for Laravel
fig/http-message-util                1.1.5              Utility classes and constants for use with PSR-7 (psr/http-message)
filp/whoops                          2.9.2              php error handling for cool kids
firebase/php-jwt                     v5.2.0             A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.
friendsofphp/php-cs-fixer            v2.18.2            A tool to automatically fix PHP code style
fruitcake/laravel-cors               v2.0.3             Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application
fzaninotto/faker                     dev-master 5ffe7db Faker is a PHP library that generates fake data for you.
graham-campbell/result-type          v1.0.1             An Implementation Of The Result Type
guzzlehttp/guzzle                    7.2.0              Guzzle is a PHP HTTP client library
guzzlehttp/promises                  1.4.0              Guzzle promises library
guzzlehttp/psr7                      1.7.0              PSR-7 message implementation that also provides common utility methods
hamcrest/hamcrest-php                v2.0.1             This is the PHP port of Hamcrest Matchers
justinrainbow/json-schema            5.2.10             A library to validate a json schema.
laravel/framework                    v8.25.0            The Laravel Framework.
laravel/passport                     v10.1.0            Laravel Passport provides OAuth2 server support to Laravel.
laravel/telescope                    v4.4.1             An elegant debug assistant for the Laravel framework.
laravel/tinker                       v2.6.0             Powerful REPL for the Laravel framework.
lcobucci/clock                       2.0.0              Yet another clock abstraction
lcobucci/jwt                         4.0.0              A simple library to work with JSON Web Token and JSON Web Signature
league/commonmark                    1.5.7              Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdow...
league/event                         2.2.0              Event package
league/flysystem                     1.1.3              Filesystem abstraction: Many filesystems, one API.
league/mime-type-detection           1.7.0              Mime-type detection for Flysystem
league/oauth2-server                 8.2.4              A lightweight and powerful OAuth 2.0 authorization and resource server library with support for all the co...
mockery/mockery                      1.4.2              Mockery is a simple yet flexible PHP mock object framework
monolog/monolog                      2.2.0              Sends your logs to files, sockets, inboxes, databases and various web services
myclabs/deep-copy                    1.10.2             Create deep copies (clones) of your objects
nesbot/carbon                        2.43.0             An API extension for DateTime that supports 281 different languages.
nikic/php-parser                     v4.10.4            A PHP parser written in PHP
nunomaduro/collision                 v5.3.0             Cli error handling for console/command-line PHP applications.
nunomaduro/larastan                  v0.6.13            Larastan - Discover bugs in your code without running it. A phpstan/phpstan wrapper for Laravel
nyholm/psr7                          1.3.2              A fast PHP7 implementation of PSR-7
opis/closure                         3.6.1              A library that can be used to serialize closures (anonymous functions) and arbitrary objects.
paragonie/random_compat              v9.99.100          PHP 5.x polyfill for random_bytes() and random_int() from PHP 7
phar-io/manifest                     2.0.1              Component for reading phar.io manifest information from a PHP Archive (PHAR)
phar-io/version                      3.0.4              Library for handling version information and constraints
php-cs-fixer/diff                    v1.3.1             sebastian/diff v2 backport support for PHP5.6
php-http/message-factory             v1.0.2             Factory interfaces for PSR-7 HTTP Message
phpdocumentor/reflection-common      2.2.0              Common reflection classes used by phpdocumentor to reflect the code structure
phpdocumentor/reflection-docblock    5.2.2              With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve inf...
phpdocumentor/type-resolver          1.4.0              A PSR-5 based resolver of Class names, Types and Structural Element Names
phpoption/phpoption                  1.7.5              Option Type for PHP
phpseclib/phpseclib                  2.0.30             PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.
phpspec/prophecy                     1.12.2             Highly opinionated mocking framework for PHP 5.3+
phpstan/phpstan                      0.12.69            PHPStan - PHP Static Analysis Tool
phpunit/php-code-coverage            9.2.5              Library that provides collection, processing, and rendering functionality for PHP code coverage information.
phpunit/php-file-iterator            3.0.5              FilterIterator implementation that filters files based on a list of suffixes.
phpunit/php-invoker                  3.1.1              Invoke callables with a timeout
phpunit/php-text-template            2.0.4              Simple template engine.
phpunit/php-timer                    5.0.3              Utility class for timing
phpunit/phpunit                      9.5.1              The PHP Unit Testing framework.
psr/container                        1.0.0              Common Container Interface (PHP FIG PSR-11)
psr/event-dispatcher                 1.0.0              Standard interfaces for event handling.
psr/http-client                      1.0.1              Common interface for HTTP clients
psr/http-factory                     1.0.1              Common interfaces for PSR-7 HTTP message factories
psr/http-message                     1.0.1              Common interface for HTTP messages
psr/log                              1.1.3              Common interface for logging libraries
psr/simple-cache                     1.0.1              Common interfaces for simple caching
psy/psysh                            v0.10.6            An interactive shell for modern PHP.
ralouphie/getallheaders              3.0.3              A polyfill for getallheaders.
ramsey/collection                    1.1.3              A PHP 7.2+ library for representing and manipulating collections.
ramsey/uuid                          4.1.1              A PHP library for generating and working with universally unique identifiers (UUIDs).
react/promise                        v2.8.0             A lightweight implementation of CommonJS Promises/A for PHP
romanzipp/laravel-queue-monitor      2.1.1              Queue Monitoring for Laravel Database Job Queue
sebastian/cli-parser                 1.0.1              Library for parsing CLI options
sebastian/code-unit                  1.0.8              Collection of value objects that represent the PHP code units
sebastian/code-unit-reverse-lookup   2.0.3              Looks up which function or method a line of code belongs to
sebastian/comparator                 4.0.6              Provides the functionality to compare PHP values for equality
sebastian/complexity                 2.0.2              Library for calculating the complexity of PHP code units
sebastian/diff                       4.0.4              Diff implementation
sebastian/environment                5.1.3              Provides functionality to handle HHVM/PHP environments
sebastian/exporter                   4.0.3              Provides the functionality to export PHP variables for visualization
sebastian/global-state               5.0.2              Snapshotting of global state
sebastian/lines-of-code              1.0.3              Library for counting the lines of code in PHP source code
sebastian/object-enumerator          4.0.4              Traverses array structures and object graphs to enumerate all referenced objects
sebastian/object-reflector           2.0.4              Allows reflection of object attributes, including inherited and non-public ones
sebastian/recursion-context          4.0.4              Provides functionality to recursively process PHP variables
sebastian/resource-operations        3.0.3              Provides a list of PHP built-in functions that operate on resources
sebastian/type                       2.3.1              Collection of value objects that represent the types of the PHP type system
sebastian/version                    3.0.2              Library that helps with managing the version number of Git-hosted PHP projects
seld/jsonlint                        1.8.3              JSON Linter
seld/phar-utils                      1.1.1              PHAR file format utilities, for when PHP phars you up
squizlabs/php_codesniffer            3.5.8              PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding ...
swagger-api/swagger-ui               v3.40.0             Swagger UI is a collection of HTML, Javascript, and CSS assets that dynamically generate beautiful docume...
swiftmailer/swiftmailer              v6.2.5             Swiftmailer, free feature-rich PHP mailer
symfony/console                      v5.2.2             Eases the creation of beautiful and testable command line interfaces
symfony/css-selector                 v5.2.2             Converts CSS selectors to XPath expressions
symfony/deprecation-contracts        v2.2.0             A generic function and convention to trigger deprecation notices
symfony/error-handler                v5.2.2             Provides tools to manage errors and ease debugging PHP code
symfony/event-dispatcher             v5.2.2             Provides tools that allow your application components to communicate with each other by dispatching events...
symfony/event-dispatcher-contracts   v2.2.0             Generic abstractions related to dispatching event
symfony/filesystem                   v5.2.2             Provides basic utilities for the filesystem
symfony/finder                       v5.2.2             Finds files and directories via an intuitive fluent interface
symfony/http-client-contracts        v2.3.1             Generic abstractions related to HTTP clients
symfony/http-foundation              v5.2.2             Defines an object-oriented layer for the HTTP specification
symfony/http-kernel                  v5.2.2             Provides a structured process for converting a Request into a Response
symfony/mime                         v5.2.2             Allows manipulating MIME messages
symfony/options-resolver             v5.2.2             Provides an improved replacement for the array_replace PHP function
symfony/polyfill-ctype               v1.22.0            Symfony polyfill for ctype functions
symfony/polyfill-iconv               v1.22.0            Symfony polyfill for the Iconv extension
symfony/polyfill-intl-grapheme       v1.22.0            Symfony polyfill for intl's grapheme_* functions
symfony/polyfill-intl-idn            v1.22.0            Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions
symfony/polyfill-intl-normalizer     v1.22.0            Symfony polyfill for intl's Normalizer class and related functions
symfony/polyfill-mbstring            v1.22.0            Symfony polyfill for the Mbstring extension
symfony/polyfill-php70               v1.20.0            Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions
symfony/polyfill-php72               v1.22.0            Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions
symfony/polyfill-php73               v1.22.0            Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions
symfony/polyfill-php80               v1.22.0            Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions
symfony/process                      v5.2.2             Executes commands in sub-processes
symfony/psr-http-message-bridge      v2.0.2             PSR HTTP message bridge
symfony/routing                      v5.2.2             Maps an HTTP request to a set of configuration variables
symfony/service-contracts            v2.2.0             Generic abstractions related to writing services
symfony/stopwatch                    v5.2.2             Provides a way to profile code
symfony/string                       v5.2.2             Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters i...
symfony/translation                  v5.2.2             Provides tools to internationalize your application
symfony/translation-contracts        v2.3.0             Generic abstractions related to translation
symfony/var-dumper                   v5.2.2             Provides mechanisms for walking through any arbitrary PHP variable
symfony/yaml                         v5.2.2             Loads and dumps YAML files
theseer/tokenizer                    1.2.0              A small library for converting tokenized PHP source code into XML and potentially other formats
tijsverkoyen/css-to-inline-styles    2.2.3              CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inlin...
ukfast/laravel-health-check          v1.8.0             A package for checking the health of your Laravel/Lumen applications.
vlucas/phpdotenv                     v5.3.0             Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.
voku/portable-ascii                  1.5.6              Portable ASCII library - performance optimized (ascii) string functions for php.
webmozart/assert                     1.9.1              Assertions to validate method input/output with nice error messages.
zircote/swagger-php                  3.1.0              swagger-php - Generate interactive documentation for your RESTful API using phpdoc annotations