user4164128
user4164128

Reputation:

Composer autoload custom classes

I try to autoload my custom pdo class with composer. Ran the following command to update autoload:

compser update
composer install

Both seem to work, no error prompted. But,

vendor/composer/autoload_namespaces.php

Does not list the custom namespace added to composer.js.

File structure

-Root
 ->classes
   ->pdo
     ->class.php
 ->vendor
   ->various extensions loaded with composer
index.php

PHP Class

namespace Classes\Pdo;

Class DB {
    //Do some stuff...
}

Composer.js

"autoload": {
    "psr-4": {
        "Classes\\Pdo\\": "classes/pdo"
    }
}

Index.php

$pdo = new \Classes\Pdo\DB(); //Fatal error: Class 'Classes\Pdo\DB' not found

Upvotes: 6

Views: 3715

Answers (1)

TechDingo
TechDingo

Reputation: 184

Old question, but I just ran across this myself.

For future Googlers, in my case the issue turned out to be the name of the class file did not exactly match the class name.

See this post: Why does 'composer dumpautoload -o' fix 'Class not found' PHP error?

Upvotes: 1

Related Questions