Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

--strict-psr Doesn't warn about about classes where namespace is not set or does not start with configured namespace #11957

Open
PrinsFrank opened this issue Apr 30, 2024 · 0 comments · May be fixed by composer/class-map-generator#8

Comments

@PrinsFrank
Copy link
Contributor

My composer.json:

{
    "name": "example/example",
    "description": "",
    "license": "MIT",
    "autoload": {
        "psr-4": {
            "Foo\\": "src/"
        }
    }
}

Output of composer diagnose:

Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK git version 2.39.3
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0 87719BA6 8F3BB723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B 0C708369 153E328C AD90147D AFE50952
OK
Checking Composer version: OK
Checking Composer and its dependencies for vulnerabilities: OK
Composer version: 2.7.4
PHP version: 8.3.3
PHP binary path: /opt/homebrew/Cellar/php/8.3.3_1/bin/php
OpenSSL version: OpenSSL 3.2.1 30 Jan 2024
cURL version: 8.6.0 libz 1.2.12 ssl (SecureTransport) OpenSSL/3.2.1
zip: extension present, unzip present, 7-Zip not available

When I run this command:

composer du --strict-psr --optimize

With the two following classes:

src/Bar.php

<?php
class Bar {}

src/Boop.php

<?php
namespace Boop;
class Boop {}

I get the following output:

Generating optimized autoload files
Generated optimized autoload files containing 1 classes

And I expected this to happen:

Generating optimized autoload files
+ Class Bar located in ./src/Bar.php does not comply with psr-4 autoloading standard. Skipping.
+ Class Boop\Boop located in ./src/Boop.php does not comply with psr-4 autoloading standard. Skipping.
Generated optimized autoload files containing 1 classes

Only classes that are outside the configured for a folder get ignored. So if src/ is configured with namespace Foo\\, if the class misses a namespace or is in a totally different namespace like Bar\\, it doesn't trigger any errors when running with --strict-psr.

@PrinsFrank PrinsFrank changed the title --strict-psr Doesn't warn about about classes where namespace does not exist or doesn't start with configured namespace --strict-psr Doesn't warn about about classes where namespace is not set or does not start with configured namespace Apr 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant