jak vytvořit a zapojit komponentu?

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

Ahoj.
Zkusil jsem vytvořit komponentu následujícím způsobem:

Do adresáře „/app/components/mojekomponenta/“ jsem si umístil třídu pro komponentu.
A ta obahuje jen:

class MojekomponentaControl extends Control {

    public function __construct()
    {

    }
}

V presenteru mam potom:

protected function createComponentMojekomponentaControl() {
  $moje = new MojekomponentaControl();
    return $$moje;
}

a v latte: {control mojekomponentaControl}

Ale dostávám chybu: „Class ‚App\Presenters\MojekomponentaControl‘ not found“

Poradil by mi někdo, jak si vytvořím komponentu?
Děkuji.

Editoval cmc (12. 1. 2015 16:32)

Šaman
Člen | 2666
+
0
-
  1. Nastuduj si namespace – to budeš potřebovat napříč vším programováním v PHP > 5.3. Ta chyba je v nich.
  2. Pak té prázdné komponentě klidně zruš konstruktor, ale přidej render metodu. Třeba jen echo 'Test';

Co se týče těch NS, tak jako první hotfix dej new \MojekomponentaControl(); (zp. lomítko před třídu komponenty).

Editoval Šaman (12. 1. 2015 16:52)

Etch
Člen | 403
+
0
-

Špatnej namespace.

Buď použij use v presenteru

use MojekomponentaControl;

nebo použij

$moje = new \MojekomponentaControl();