knuckleswtf / scribe

Generate API documentation for humans from your Laravel codebase.✍
https://scribe.knuckles.wtf/laravel/
MIT License
1.58k stars 280 forks source link

Call to undefined method PhpParser\ParserFactory::create() #783

Closed majuca closed 5 months ago

majuca commented 5 months ago

Scribe version

4.29.0

PHP version

8.0.30

Framework

Laravel

Framework version

v9.52.16

Scribe config

title => "API"
auth.enabled => true
auth.default => true
auth.placeholder => "<token>"
logo => "../../themes/melon/assets/img/logo_api_doc.png"
strategies.urlParameters => added Knuckles\Scribe\Extracting\Strategies\UrlParameters\GetFromLumenAPI
strategies.headers => added Knuckles\Scribe\Extracting\Strategies\Headers\GetFromRouteRules: removed [
    'override',
    [
        'Content-Type' => 'application/json',
        'Accept' => 'application/json',
    ],
]
strategies.responses => added Knuckles\Scribe\Extracting\Strategies\Responses\ResponseCalls: removed [
    'Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls',
    [
        'only' => [
            'GET *',
        ],
    ],
]

What happened?

Hi,

SInce today and after a composer update, I obtain the followin error when a generate the api documentation:

image

My composer.json:

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "php": "^8.0.2",
        "guzzlehttp/guzzle": "^7.2",
        "laravel/framework": "^9.19",
        "laravel/sanctum": "^3.0",
        "laravel/tinker": "^2.7",
        "php-open-source-saver/jwt-auth": "2.1.0"
    },
    "require-dev": {
        "fakerphp/faker": "^1.9.1",
        "laravel/pint": "^1.0",
        "laravel/sail": "^1.0.1",
        "mockery/mockery": "^1.4.4",
        "nunomaduro/collision": "^6.1",
        "phpunit/phpunit": "^9.5.10",
        "spatie/laravel-ignition": "^1.0",
        "knuckleswtf/scribe": "4.29.0"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true,
        "allow-plugins": {
            "pestphp/pest-plugin": true
        }
    },
    "minimum-stability": "stable",
    "prefer-stable": true
}

Any idee?

Docs

shalvah commented 5 months ago

It looks like maybe something broke in nikic/php-parser, but that would be very strange. Could you try composer show nikic/php-parser>

majuca commented 5 months ago

Hi,

Please find the result ofcomposer show nikic/php-parser:

name     : nikic/php-parser
descrip. : A PHP parser written in PHP
keywords : parser, php
versions : * v4.18.0
type     : library
license  : BSD 3-Clause "New" or "Revised" License (BSD-3-Clause) (OSI approved) https://spdx.org/licenses/BSD-3-Clause.html#licenseText
homepage :
source   : [git] https://github.com/nikic/PHP-Parser.git 1bcbb2179f97633e98bbbc87044ee2611c7d7999
dist     : [zip] https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999 1bcbb2179f97633e98bbbc87044ee2611c7d7999
path     : /var/www/html/vysualapi/vendor/nikic/php-parser
names    : nikic/php-parser

support
issues : https://github.com/nikic/PHP-Parser/issues
source : https://github.com/nikic/PHP-Parser/tree/v4.18.0

autoload
psr-4
PhpParser\ => lib/PhpParser

requires
ext-tokenizer *
php >=7.0

requires (dev)
ircmaxell/php-yacc ^0.0.7
phpunit/phpunit ^6.5 || ^7.0 || ^8.0 || ^9.0
majuca commented 5 months ago

The problem was in my configuration. Sorry for this.

AmjadGhzlangit commented 4 months ago

@majuca hi I have the same problem may I ask you what is problem was in your configuration?

the-bham commented 4 months ago

@AmjadGhzlangit

I was just encountering this issue on knuckleswtf/scribe 4.30.1 so I downgraded to 4.29.0 which also brought nikic/php-parser down to 4.18.0 and the issue was resolved.

shalvah commented 4 months ago

Thanks everyone. It should be fixed now. v4.32.0 has been released with support for php-parser v5; if that doesn't work for you, try v4.31.0 which supports v4.