1
0
mirror of https://github.com/danog/class-finder.git synced 2024-11-27 04:24:41 +01:00
class-finder/docs/exceptions/unknownSubNamespace.md
2018-08-04 20:07:55 -05:00

1.4 KiB

Unknown Child Namespace

Example composer.json:

{
    "name": "haydenpierce/sample-app",
    "type": "application",
    "license": "MIT",
    "authors": [
        {
            "name": "Hayden Pierce",
            "email": "hayden@haydenpierce.com"
        }
    ],
    "autoload": {
        "psr-4": {
            "Acme\\": "src/"
        }
    }
}

Example PHP:

<?php

require_once __DIR__ . '/../vendor/autoload.php';

use HaydenPierce\ClassFinder\ClassFinder;

$classes = ClassFinder::getClassesInNamespace('Acme\Foo\Bar');

Results in this exception:

Unknown namespace 'TestApp1\Foo\Bar'. Checked for files in C:\Users\HPierce\PhpstormProjects\ClassFinder\test\app1\src\Foo\Bar, but that directory did not exist

ClassFinder attempts to figure out which directory it should look for classes in by piecing together a path from elements in your autoload.psr-4 configuration. In this instance, we've asked for classes in the Acme\Foo\Bar namespace, so ClassFinder will attempt to build a directory path there. ClassFinder successfully mapped Acme to src/, but upon adding the rest of the namespace to the path, failed to find a directory.

Things to check for:

  • Does the directory actually exist?
  • Does PHP have permissions to the directory?
  • Is your app PSR-4 compliant?
  • Is the namespace correct?

If this information doesn't resolve the issue, please feel free to submit an issue.