Skip to content

gacela-project/phpstan-extension

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d4aa933 · Aug 11, 2024

History

32 Commits
Aug 11, 2024
Aug 11, 2024
Aug 11, 2024
Nov 27, 2022
Nov 27, 2022
Aug 11, 2024
Nov 27, 2022
Aug 11, 2024
Aug 11, 2024
Nov 27, 2022
Nov 27, 2022
Dec 10, 2022
Aug 11, 2024

Repository files navigation

Gacela PHPStan extension

This is a PHPStan extension for Gacela Framework. This enforces module boundaries.

See main Gacela project for more information.

Installation

composer require --dev gacela-project/phpstan-extension

Configuration

To configure this PHPStan extension you need 2 things.

Base module namespace

It is assumed that all your modules are under the same namespace. Assume the namespaces for your modules are:

  • App\Modules\ModuleA
  • App\Modules\ModuleB

The base namespace for your modules is App\Modules.

Excluded namespaces (Optional)

If you have namespace that hold code that can be used by any module (e.g. App\Shared), then you need to add them to excludedNamespaces. Default: [].

Update PHPStan configuration

Update your project's phpstan.neon file:

includes:
  - vendor/gacela-project/phpstan-extension/extension.neon

parameters:
    gacela:
        modulesNamespace: <base module namespace>
        excludedNamespaces:
            - excluded
            - namespaces

Examples

Example without excludedNamespaces

includes:
  - vendor/gacela-project/phpstan-extension/extension.neon

parameters:
    gacela:
        modulesNamespace: App\Modules

Full example

includes:
  - vendor/gacela-project/phpstan-extension/extension.neon

parameters:
    gacela:
        modulesNamespace: App\Modules
        excludedNamespaces: 
            - App\Shared

Usage

Run PHPStan as usual. It will additional point out any violations of module boundaries.