Fichier de configuration PHPStan typique pour un projet Symfony

Publié le 11/11/2020 • Mis à jour le 20/11/2020


English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧 Close

Voici un fichier de configuration PHPStan typique pour un projet Symfony. J'ai ajouté des liens vers la documentation afin de voir la signification de chaque paramètre. Il y a trois plugins à installer. Celui relatif à Symfony est essentiel puisqu'il permet à PHPStan d'avoir accès et de pouvoir inspecter le conteneur de dépendances. Les deux autres ajoutent des règles supplémentaires. Bien sûr, vous êtes libres de les installer ou pas. Si vous commencer à utiliser PHPStan sur un ancien projet, il va surement détecter de nombreux problèmes. Dans ce cas, mon conseil est de commencer au niveau 0 puis de passer au suivant une fois que toutes les erreurs ont été corrigées. Prenez ça comme un jeu ! 😀


includes:
    # require phpstan/extension-installer to avoid inlcuding these lines
    #- vendor/ekino/phpstan-banned-code/extension.neon     # https://github.com/ekino/phpstan-banned-code
    #- vendor/phpstan/phpstan-symfony/extension.neon       # https://github.com/phpstan/phpstan-symfony
    #- vendor/phpstan/phpstan-deprecation-rules/rules.neon # https://github.com/phpstan/phpstan-deprecation-rules

parameters:
    # https://phpstan.org/config-reference#rule-level
    level: max

    # https://phpstan.org/config-reference#analysed-files
    paths:
        - config
        - src
        - tests
        - public

    # https://github.com/phpstan/phpstan-symfony#configuration
    symfony:
        container_xml_path: %rootDir%/../../../var/cache/dev/App_KernelDevDebugContainer.xml

    # https://phpstan.org/config-reference#vague-typehints
    checkMissingIterableValueType: false           # this is my next todo
    #checkGenericClassInNonGenericObjectType: true # is parameter is activated at level 6

    # It's a special "dev" project, I have to ignore the following warnings because
    # the use of this functions is intended.
    # @see https://phpstan.org/user-guide/ignoring-errors
    ignoreErrors:
        - '#Should not use node with type "Expr_Exit", please change the code.#' # warnings for "die()"
        - '#Should not use node with type "Stmt_Echo", please change the code.#' # warnings for "echo()"
        - '#Should not use function "print_r", please change the code.#'         # warnings for "print_r()"
        - '#Should not use function "var_dump", please change the code.#'        # warnings for "var_dump()"
        - '#Should not use function "phpinfo", please change the code.#'         # warnings for "phpinfo()"
        - '#Service "http_client" is not registered in the container.#'          # bug

    # I don't use the Symfony phpunit bridge in this project, but if you do, you
    # probably will have to add the following bootstrap file:
    #bootstrapFiles:
        #- %rootDir%/../../../vendor/bin/.phpunit/phpunit/vendor/autoload.php

 Plus sur Stackoverflow   Lire la doc  Plus sur le web  Snippet aléatoire