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 getMailpublic 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)