Класс провайдера услуг Laravel не найден - PullRequest
0 голосов
/ 31 мая 2018

Я использую Laravel 5.4. Я создаю поставщика услуг только для тестирования.Моя цель - создать экземпляр моего TestClass и заставить его сказать Hello World в тестовом контроллере.Я успешно зарегистрировал своего поставщика услуг, но когда я пытаюсь создать экземпляр моего TestClass, я получаю ошибку Class not found.

config / app.php

Test\Providers\MyTest\TestServiceProvider::class,

TestServiceProvider.php

namespace Test\Providers\MyTest;

use Illuminate\Support\ServiceProvider;
use Test\Services\TestClass;

class TestServiceProvider extends ServiceProvider
{
    public function boot()
    {

    }
    public function register()
    {
        $this->app->bind('Test\Services\TestClass', function ($app) {
          return new TestClass();
        });

    }
}

TestClass.php

namespace Test\Services;

class TestClass
{

    public function SayHi()
    {
        return "Hello World";
    }
}

TestController.php

...
use Test\Services\TestClass;
...

class TestController extends Controller
{
    public function serviceProviderTest()
    {
        $words = 'words';
        $testClass = new TestClass();
        $words = $testClass->SayHi();

        return view('test.serviceProviderTest', array(
            'words' => $words
        ));
    }
    ...
}

Это дает мне следующую ошибку:

FatalThrowableError Class 'Test\ Services \ TestClass 'not found

Если я закомментирую

// $testClass = new TestClass();
// $words = $testClass->SayHi();

, я не получаю ошибок и вижу слова в моем представлении, как и ожидалось.

Почему мой TestClass не может быть найден?

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 31 мая 2018

Добавьте новый базовый путь в composer.json:

"psr-4": {
     "App\\": "app/",
     "Test\\": "test/"
 },

Затем выполните:

composer dump-autoload
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...