Автозагрузка с помощью composer не работает при использовании psr-4 - PullRequest
0 голосов
/ 11 июня 2019

У меня проблема с запуском функции при использовании автозагрузки psr-4.

Когда я прямо заявляю, какие файлы должны быть в автозагрузке, все работает нормально.Когда я переключаюсь на PSR-4, я получаю журнал, что функция не определена.

src / cli.php:

namespace Php\Project1\Cli;

function run()
{
  ...
}

bin / brain-games:

#!/usr/bin/env php

<?php

$autoloadPath1 = __DIR__ . '/../../../autoload.php';
$autoloadPath2 = __DIR__ . '/../vendor/autoload.php';

if (file_exists($autoloadPath1)) {
    require_once $autoloadPath1;
} else {
    require_once $autoloadPath2;
}

use function Php\Project1\Cli\run;
run();

composer.json:

"autoload": {
      "psr-4": {
        "Php\\Project1\\": "src/"
      }
  },

Ошибка, которую я получаю:

PHP Fatal error:  Uncaught Error: Call to undefined function Php\Project1\Cli\run() in /home/arkadiy/php-project1/bin/brain-games:15
Stack trace:
#0 {main}
  thrown in /home/arkadiy/php-project1/bin/brain-games on line 15

...