Laravel class App \ Repositories \ FirebaseUserRepository не найден - PullRequest
0 голосов
/ 05 февраля 2020

Я борюсь с таким глупым сообщением, я не понимаю, почему я не могу вызвать свой класс репозитория

вот контроллер, использующий класс

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Repositories\FirebaseUserRepository;

class HomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Contracts\Support\Renderable
     */
    public function index()
    {

        $firebaseUserRepository = new FirebaseUserRepository();
        $allUsers = $firebaseUserRepository->getAll();

        dd($allUsers);

        return view('home',$datas);
    }
}

here is controller calling the class

Вот так называется класс

<?php

namespace App\Repositories;

use App\Models\FirebaseUser;
use App\Services\FirebaseInstance as FirebaseInstance;

class FirebaseUserRepository implements \App\Repositories\RepositoryInterface
{

    protected $firebaseInstance;
    protected $firestoreInstance;
    public static $usersCollection = 'users';
    public $reference;

    /**
     * FirebaseUserRepository constructor.
     */
    public function __construct()
    {
        try {
            $this->firebaseInstance = new FirebaseInstance();
            $this->firestoreInstance = $this->firebaseInstance->getDatabase();
            $this->reference = $this->firebaseInstance->getReference(self::$usersCollection);
        }catch (\Exception $e)
        {
            die('firebase connection error : '.$e->getMessage());
        }

    }


    /**
     * @inheritDoc
     */
    public function create($arrayData): int
    {
        // TODO: Implement create() method.
    }

    /**
     * @inheritDoc
     */
    public function getAll(): array
    {
        $documents =  $this->reference->documents();
        $arrayUsers = array();
        foreach ($documents as $user) {
            if ($user->exists()){
                $newFirebaseUser = new FirebaseUser(
                    $user->createdAt(),
                    $user->email(),
                    $user->employeur(),
                    $user->gdprOkDate(),
                    $user->lastSeenAt(),
                    $user->name(),
                    $user->profileId(),
                    $user->token(),
                    $user->uid()
                );
                $arrayUsers[] = $newFirebaseUser;
            }
            return $arrayUsers;
        }
    }

    /**
     * @inheritDoc
     */
    public function get(int $id)
    {
        // TODO: Implement get() method.
    }

    /**
     * @inheritDoc
     */
    public function delete(int $id): bool
    {
        // TODO: Implement delete() method.
    }

    /**
     * @inheritDoc
     */
    public function update($id, $arrayData): bool
    {
        // TODO: Implement update() method.
    }
}

enter image description here

Я добавил новую папку Репозитории в my composer. json

"autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "classmap": [
            "database/seeds",
            "database/factories",
            "app/Models",
            "app/Repositories",
            "app/Services"
        ]
    },

пытался несколько раз composer dump-autoload и php artisan config: cache, всегда одинаковый результат:

Symfony \ Component \ Debug \ Exception \ FatalThrowableError Класс 'App \ Repositories \ FirebaseUserRepository' не найден

Вы видите, что я пропустил?

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 05 февраля 2020

ОК, похоже, слово Repository зарезервировано. Я переименовал его в FirebaseUserRepo, и он работает ... ?‍♂️

...