PHP Nette - inject interface do komponenty nefunguje

PHP Nette - inject interface do komponenty nefunguje

Dobrý den,



tak ještě jeden problém, nefunguje mně patrně inject IEmailsFactory do komponenty ContactForm, kdy dostavám zase chybu:



PHP Nette - Warning Creating default object from empty value




namespace App\Forms;

use Nette;
use App\Model\Logs;
use App\Model\Settings;
use App\Model\IEmailsFactory;
use Nette\Application\UI\Form;

class ContactForm extends Nette\Application\UI\Form
{
use Nette\SmartObject;

private $modelLogs;

private $modelSettings;

/**
* @inject
* @var IEmailsFactory */
public $emailsFactory;

/** @var Nette\Database\Context */
protected $database;

public function __construct(Nette\Database\Context $database, Settings $modelSettings, Logs $modelLogs)
{
$this->database = $database;
$this->modelLogs = $modelLogs;
$this->modelSettings = $modelSettings;
}

/**
* @return Form
*/
public function create()
{
$form = new Form;
.........

return $form;
}

public function processForm($form, $values)
{
........
$email = $this->emailsFactory->create();
.......
}



ODPOVĚĎ


Co jsem se dočetl, tak Inject anotace nelze v Nette ve výchozím stavu použít mimo presentery, takže se inject musel provést přes kontstruktor:




class ContactForm extends Nette\Application\UI\Form
{
use Nette\SmartObject;

private $modelLogs;

private $modelSettings;

public $emailsFactory;

/** @var Nette\Database\Context */
protected $database;

public function __construct(Nette\Database\Context $database, Settings $modelSettings, Logs $modelLogs, IEmailsFactory $emailsFactory)
{
$this->database = $database;
$this->modelLogs = $modelLogs;
$this->modelSettings = $modelSettings;
$this->emailsFactory = $emailsFactory;
}

Související obsah

programovani

nette

php

factory

interface

error

oop

komponenta

control

Komentáře

Vaše reakce na PHP Nette - inject interface do komponenty nefunguje

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.