Nefunkční metoda ve vlastní třídě

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

Ahoj, snažím se vytvořit si vlastní třídu pro odesílání mailů.

app/Emailing/Amail.php

namespace App\Emailing;

use Nette\Mail\Message;
use Nette\Mail\SendmailMailer;

class Amail
{
    public function getMail($from, $to, $subject, $html){
        $mail = new Message;
        $mail->setFrom($from)
             ->addTo($to)
             ->setSubject($subject)
             ->setHtmlBody($html);
        return $mail;
    }

    public function sendMail($from, $to, $subject, $html){
        $mailer = new SendmailMailer;
        $mail = getMail($from, $to, $subject, $html);
        $mailer->send($mail);
    }
}

app/config/config.neon

- App\Emailing\Amail

BasePresenter.php

/** @var \App\Emailing\Amail @inject*/
public $amail;

V jiném presenteru, kde chci pak volat funkci, mám:

$this->amail->sendMail('od@email.cz', 'komu@email.cz', 'Test', 'Ahoj');

A vyhodí mi to hlášku:

Call to undefined function App\Emailing\getMail()

Ta cesta k funkci je divná, jako by tam chyběla celá třída. Neví prosím někdo, čím by to mohlo být? Děkuji.

Oli
Člen | 1215
+
+3
-

$this->getMail

reflex
Člen | 28
+
+2
-

Yep jak pise Oli

$mail = getMail($from, $to, $subject, $html);

na

$mail = $this->getMail($from, $to, $subject, $html);
ForestCZE
Člen | 209
+
0
-

Jako vážně? xD Tak to byla ta nejtrapnější chyba, co mě kdy potkala. Dokonce jsem měnil tu funkci getMail z public na private, jelikož by to tak mělo být, když je volána pouze ve třídě a ono mi ji to pak psalo jako nepoužitou. To mě mohlo trknout. Každopádně oběma moc děkuji :))

Editoval ForestCZE (6. 4. 2017 13:50)

RSS tématu Téma zavřeno