Znovupoužitelný formulář. Proč není nalezen interface?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
foxxed
Člen | 6
+
0
-

Ahoj,

pokouším se vytvořit továrnu pro formulář přihlašování uživatele. Bohužel dostávám chybu:
Interface app\controls\ILoginFactory used in service ‚LoginFactory‘ not found.

Kód mám nasledující:

Adresář: app\controls

<?php

namespace app\controls;

interface ILoginFormFactory {

    /** @return app\controls\LoginFactory */
    public function create();
}

Adresář: app\controls

<?php

namespace App\controls;

class LoginFactory extends Nette\Object{

    private $users;

    public function __construct(App\model\Users $users) {
        $this->users = $users;
    }

    public function create(){
        return new \App\controls\LoginForm($this->users);
    }
}

Adresář: app\ConferenceModule\Presenters

<?php

namespace App\ConferenceModule\Presenters;

class HomepagePresenter extends BasePresenter{
    /**
     * @inject
     * @var \App\controls\ILoginFactory
     */
    public $LoginFactory;

    //put your code here
    public function renderAbout(){


    }

    protected function createComponentLogin(){
        $control = $this->LoginFactory->create($this->context->users);
      $control['form']->onSuccess[] = function () {
            $this->redirect('default');
       };
       return $control;
    }
}

A v config.neon registrovanou service jako:

services:
        LoginFactory:
            implement: app\controls\ILoginFactory

Nemáte prosím tušení, kde by mohla být chyba? Vřele děkuji za Váš čas.

David Matějka
Moderator | 6445
+
+1
-

ILoginFormFactory !== ILoginFactory

foxxed
Člen | 6
+
0
-

Paráda, díky

greeny
Člen | 405
+
0
-

Oprav si konzistenci namespace, někde máš app\controls, někde App\controls, namespace by měly mít vělký písmena na začátku.