nedaří se vytvořit komponentu

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

Prosím o radu, zápasím s komponentou, stále mi to hlásí:Component with name ‚Testik‘ does not exist.
opravuji: žádná služba nevytvořena (V config.neon vytvořená služba:)

komponenta:
testik.latte

<p>nazdar!</p>

Testik.php

<?php
namespace Kada;
use Nette;
class TestikControl extends Nette\Application\UI\Control {
	public function render() {
		$this->template->setFile(__DIR__ . '/testik.latte');
		$this->template->render();
	}
}

Presenter obsahuje:
<?php
	protected function createComponentTestik() {
		return new Testik\TestikControl();
	}
?>

a šablona:

{control Testik}

Editoval jik (4. 9. 2012 14:13)

vvoody
Člen | 910
+
0
-

jik napsal(a):

Class Kada\Testik has not been found.

Ten error už snáď ani jasnejší nemôže byť.

Grelek
Člen | 233
+
0
-

Asi to nemůže RobotLoader najít.

jik
Člen | 146
+
0
-

Jo, tak tu botu s config.neonem už vidím, ale co to je klasický způsob definice komponenty v presenteru? Celkem bych očekával, že je to:

<?php
protected function createComponentTestik() {
	return new Testik\TestikControl();
}
?>
Ot@s
Backer | 476
+
0
-

jik napsal(a):

Jo, tak tu botu s config.neonem už vidím, ale co to je klasický způsob definice komponenty v presenteru? Celkem bych očekával, že je to:

<?php
protected function createComponentTestik() {
	return new Testik\TestikControl();
}
?>

Ano. Jiný způsob je přes továrny komponent přes konfiguraci v neonu. Proto mě zmátla ta tvoje services v config.neon.

Zdeno1981
Člen | 114
+
0
-

jik napsal(a):

Prosím o radu, zápasím s komponentou, stále mi to hlásí:Component with name ‚Testik‘ does not exist.
opravuji: žádná služba nevytvořena (V config.neon vytvořená služba:)

komponenta:
testik.latte

<p>nazdar!</p>

Testik.php

<?php
namespace Kada;
use Nette;
class TestikControl extends Nette\Application\UI\Control {
	public function render() {
		$this->template->setFile(__DIR__ . '/testik.latte');
		$this->template->render();
	}
}

Presenter obsahuje:
<?php
	protected function createComponentTestik() {
		return new Testik\TestikControl();
	}
?>

a šablona:

{control Testik}

Ahoj, podle me chyba v makru {control testik} u makra control se vzdy začíná s malým písmenem.

leninzprahy
Člen | 150
+
0
-

taky mi přijde, že je tam špatně namespace Testik místo Kada

Testik.php

namespace Kada;
use Nette;
class TestikControl extends Nette\Application\UI\Control {
	public function render() {
		$this->template->setFile(__DIR__ . '/testik.latte');
		$this->template->render();
	}
}

Presenter obsahuje:

	protected function createComponentTestik() {
		return new Testik\TestikControl();
	}
jik
Člen | 146
+
0
-

Zdeno1981 napsal(a):

Ahoj, podle me chyba v makru {control testik} u makra control se vzdy začíná s malým písmenem.

Tak to vypadá, že se to někam hnulo, ale zase se asi ztrácím v malých/velkých písmenech. Laděnka ukazuje do createComponentTestik() a hlásí Class ‚Testik\TestikControl‘ not found. Ten control tedy odkazuje do svého presenteru na funkci createComponentTestik, toto asi jede. Potom, co znamená: Testik\TestikControl – před lomítkem je jméno souboru a za lomítkem jméno třídy? Ať měním písmenka, jak chci, pořád neexistující třída.

jik
Člen | 146
+
0
-

leninzprahy napsal(a):

taky mi přijde, že je tam špatně namespace Testik místo Kada

Děkuji všem, teď to jede, před lomítkem je jmenný prostor! (sypu popel na hlavu…)