Jak na Contributte Forms-wizard

OdpadlikCZ
Člen | 11
+
0
-

Nejsem moc zběhlý v Nettem a tak asi někde dělám triviální chybu, která vznikla díky mé neznalosti Nette.

Chtěl jsem rozchodit Contributte Forms-wizard a hází mi error „Cannot declare class Wizard, because the name is already in use

Postupoval jsem následovně:
1. pomocí „composer create-project nette/web-project nette-test“ jsem si udělal prázný projekt a rozchil ho. Vše fungovalo.

2. pak jsem šel podle návodu na https://contributte.org/…-wizard.html#…

2.1 pomocí „composer require contributte/forms-wizard“ jsem přidal Wizard do projektu

2.2 do config/common.neon jsem vložil

extensions:
	- Contributte\FormWizard\DI\WizardExtension

2.3 v app/Components/ jse vytvořil nový soubor Wizard.php (prototože nevím jak by se správně měl jmenovat" s obsahem sekce „Component“ v dokumentaci

use Nette\Application\UI\Form;

class Wizard extends Contributte\FormWizard\Wizard {
........... https://contributte.org/packages/contributte/forms-wizard.html#component
}

2.4 do config/services.neon jsem vložil

services:
	- Wizard

2.5 do app/Prezenters/HomepagePresenter.php jsem dle návodu vložil PHP kód

/** @var Wizard @inject */
	public $wizard;

	public function handleChangeStep(int $step): void
	{
		$this['wizard']->setStep($step);

		$this->redirect('wizard'); // Optional, hides parameter from URL
	}

	protected function createComponentWizard(): Wizard
	{
		return $this->wizard;
	}

Zde to hodilo chybuClass ‚App\Presenters\Wizard‘ not found.
Tak jsem v services upravil „Wizard“ na „App\Components\Wizard“
tak to začně házet error „Compile Error "Cannot declare class Wizard, because the name is already in use
Source file \app\Components\Wizard.php

2.6 do app/Prezenters/templates/Homepage/defaut.latte jsem vložil kód zdokumentace

<div n:wizard="wizard">
    <ul n:if="!$wizard->isSuccess()">
        <li n:foreach="$wizard->steps as $step" n:class="$wizard->isDisabled($step) ? disabled, $wizard->isActive($step) ? active">
            <a n:tag-if="$wizard->useLink($step)" n:href="changeStep! $step">{$step} - {$wizard->getStepData($step)['name']}</a>
        </li>
    </ul>

    {step 1}
        {control $form}
    {/step}

    {step 2}
        {control $form}
    {/step}

    {step 3}
        {control $form}
    {/step}

    {step success}
        Registration was successful
    {/step}
</div>

Když spustím nette-test/ tak mi to stále hází error
Compile Error
Cannot declare class Wizard, because the name is already in use
Source file \app\Components\Wizard.php

Poraďte mi, prosím, co dělám blbě, díky.

Ozzrel
Generous Backer | 54
+
+2
-

Tady to zkus prozkoumat https://github.com/…gui-skeleton jinak ti nejspíš chybí use Contributte\FormWizard\Wizard; proto to hledá tu třídu jinde

OdpadlikCZ
Člen | 11
+
0
-

Ozzrel napsal(a):

Tady to zkus prozkoumat https://github.com/…gui-skeleton jinak ti nejspíš chybí use Contributte\FormWizard\Wizard; proto to hledá tu třídu jinde

Díky za radu.

Do app/Prezenters/HomepagePresenter.php jsem vložil

use Contributte\FormWizard\Wizard;

a config/services.neon jsem upravil zpět na hodnotu z dokumentace

services:
	- Wizard

A už to seje :)

Díky