zend framework3の他のコントローラのメンバ関数を呼び出していますか?電子メールを送信するためのzend framework 3の他のコントローラのメンバ関数の呼び出し?
-2
A
答えて
0
メーラークラスを作成し、アクションに挿入してメールを送信する必要があります。おそらくあなたはいくつかのアクションでメーラークラスを必要とするでしょう。そのため、意識的な特性がいいので、__constructメソッドのあらゆるアクションにそれを注入する必要はありません。私はそれが問題を解決できるようなものだと思うので、あなたはどこでもあなたのメーラーサービスを使うことができます。ちょうどそれを注入することを忘れないでください。
interface MailServiceInterface
{
public function send(string $to, string $from, string $subject, string $body, array $headers = []);
}
trait MailServiceAwareTrait
{
/**
* @var \Infrastructure\Mailer\MailServiceInterface
*/
protected $mailService;
public function setMailService(MailServiceInterface $mailService)
{
$this->mailService = $mailService;
}
public function getMailService(): MailServiceInterface
{
return $this->mailService;
}
}
class myAction extends AbstractActionControl
{
use MailServiceAwareTrait;
public function processAction()
{
$this->getMailService()->send($to, $from, $subject, $body);
}
}
0
ので、典型的には、別個のモデルファイル(別名サービス・ファイル)ではなく、コントローラでなければならないサービスである「電子メールを送信」。実際にはコントローラーに関数として入れることができますが、それは単にMVCの概念自体を完全に誤用していることを意味します。
とにかく、私はそれを行う方法に答えるでしょうしかし、私は強くそれをお勧めしません。あなたのコントローラー(例えば、IndexController)で、これはあなたができることです:
namespace Application\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class IndexController extends AbstractActionController {
public function indexAction() {
// This below line will call FooController's barAction()
$otherViewModel = $this->forward()->dispatch(\Application\Controller\FooController::class, ['action'=>'bar']);
$otherViewModel->setTemplate('application/foo/bar');// you must set which template does this view use
return $otherViewModel;
}
}
関連する問題
- 1. zendフレームワークの他のコントローラのメンバ関数を呼び出していますか?
- 2. コントローラからの電子メールの送信
- 3. 電子メールの関数と引数を送信する - Zendエラー "Subject set twice"
- 4. zend framework送信メール
- 5. rails 3電子メール送信の問題
- 6. Zend-mail送信電子メール接続タイムアウトエラー
- 7. Zend frameworkヌルでメンバ関数を呼び出すことによるPhpUnitテストエラー
- 8. Zend Framework 3のコントローラからモデルのメソッドを呼び出す方法
- 9. Rails 3 - 電子メールを送信するためのボタン/リンクを作成する
- 10. 大量の電子メールを送信するためのjars
- 11. 親コントローラからの子コントローラの呼び出し関数
- 12. ユニットテスト:ZendののErrorController内の非オブジェクトのメンバ関数hasResource()の呼び出し
- 13. Play Frameworkのサーバーエラーで電子メールを送信する
- 14. jqueryの - 私は電子メールを送信するために私のPHPの関数を使用する場合Ajax呼び出し
- 15. SQLiteメンバ関数の呼び出しfetch()
- 16. AHK:電子メールの送信
- 17. サブスクリプションサービス - 電子メールの送信
- 18. 電子メールを送信するemailnot送信emailnot送信emailnot送信emailnot送信emailnot送信しない電子メール を送信しない電子メール
- 19. Zend Frameworkのコントローラ外のコントローラのアクションを呼び出す方法は?
- 20. AuthenticationFailedException:当社独自のサーバーを介して電子メールを送信するためのコード次の電子メール
- 21. 電子メール通知を送信するためのSQLジョブ
- 22. 電子メールを送信するためのシェルスクリプト
- 23. 電子メールを.netで送信するためのライブラリ
- 24. 電子メールを送信するためのマルチスレッド
- 25. 電子メールを送信するためのSQL Serverストアドプロシージャ
- 26. AngularでC#関数を呼び出して電子メールを送信する最も良い方法
- 27. Swift 3 PHAssetを電子メールで送信
- 28. vtext.comに送信された電子メールへの私の電子メールの送信が中止されました
- 29. 電子メールを送信する電子メールクライアントを検出する
- 30. Exchange Webサービス - 他のアカウントから電子メールを送信する
私はそれをしません。とにかく電子メール送信ロジックがコントローラ内にあるべきではない – jeger
正しいパスに導くことができますか –