Laden einer benutzerdefinierten Yii-Komponente
Ich versuche, verwenden Sie eine benutzerdefinierte Klasse, die ich erstellt habe zum senden der mail, so kann ich halten Sie die controller-Dateien Dünn. Ich habe meine eigene Klasse und legen es in den Ordner "components". Ich habe dann Hinzugefügt:
'sendMail' => array(
'class'=>'application.components.SendMail.',
),
unterhalb wichtigsten Komponenten in meinem Haupt-config-Datei.
Dies sollte mir erlauben, den Zugriff auf die Klasse direkt zu korrigieren? Ich Versuch mich mal:
Yii::app()->SendMail->MailerConfirmation();
und:
Yii:app()->MailerConfirmation();
ist und ich am Ende mit Fehler.
Kann mir jemand sagen wie ich eine benutzerdefinierte Komponente? Vielleicht mache ich das alle falsch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste sollte es sein:
Feststellen, das fehlen von dot in the end "SendMail" anstelle von "SendMail".". Auch diese Konfiguration erwartet, dass Sie die php-Datei SendMail.php im protected/components Verzeichnis, dass ist eine Klasse mit dem Namen "SendMail", und dass diese Komponente erweitert CApplicationComponent. Die id der Komponente wird mit dem unteren ersten Buchstaben, z.B.
Yii::app()->sendMail
und das liefert Instanz der "SendMail" - Klasse. Ich weiß nicht, was MailerConfirmation ist, aber wenn diese Methode SendMail-Objekt, dann sollten Sie wieYii::app()->sendMail->MailerConfirmation()
Wenn das nicht hilft, dann poste bitte etwas code und poste die Fehler, die Sie bekommen.
Beachten Sie, dass wenn Sie nicht gehen, um alle Komponenteneigenschaften, die in der config-Datei, oder verwenden Sie andere CApplicationComponent Funktionen und Ihre config-Datei enthält die Standard -:
Können Sie Ihre SendMail.php Klasse im Komponenten-Verzeichnis und es wird automatisch durch den Aufruf mittels:
dann rufen Sie Ihre Methoden über:
wenn Sie wollen, zu verwenden CApplicationComponent, möchten Sie vielleicht zu schauen hier oder hier für ein paar Beispiele, sowie der Yii-tutorials.