Home > Back-end >  composer autoload not work with global funtion
composer autoload not work with global funtion

Time:10-22

i have in my composer.json:

 "autoload": {
    "files": [
      "test.php"
    ]
  }

the content of test.php is:

<?php

function foo(){
    echo 'Hello World';
}

in my index.php i have this:

<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';

foo();

but i get Call to undefined function foo()

everything that is declared as a file in the autoload is supposed or expected to be added... in this case I expected it to work as a require_once, what am I doing wrong??

Update

after several attempts; the IDE suggests me to use this:

use function /foo

This was not necessary before...

CodePudding user response:

This happens because you have surely declared a namespaces in your test.php; if you remove the namespace it will stop indexing your methods under a namespace and they will remain public/global, I don't know if this is documented somewhere... but it had already happened to me.

  • Related