1

ユーザーのサインアップ確認メールやパスワード回復メール、通知更新メールなどの「メール」機能がたくさんあるとします。これらの関数をどこに「配置」できますか? 私の当初のアイデアは、単純にそれらをコントローラーに保持することでしたが、むしろ共通の場所が必要でした。次に、メール専用の新しいコントローラーを作成することを考えましたが、それは MVC パターンを壊し、最後の考えは email_helper.php ヘルパーを拡張することでしたが、それを行うと、次のようなことはできません

$this->email->to($email);

というエラーが表示されるため

Fatal error: Using $this when not in object context in /Applications/XAMPP/xamppfiles/htdocs/elluminate/system/helpers/email_helper.php on line 71

4

1 に答える 1

3

$this静的メソッドまたは単純な関数内で使用しようとしています。変数は、$thisオブジェクトがある場合にのみ使用できます。


MVC および MVC にインスパイアされた設計パターンのコンテキストでは、メール システム自体がサービスと見なされます。サービスはモデル層の「上位」部分であり、モデル層との相互作用のためにコントローラーとビューによって使用されます。これらは、ドメイン ビジネス ロジックをプレゼンテーション層 (コントローラー、ビュー、テンプレート) から分離するのに役立ちます。

サービスは、他のモデル構造から独立している (メーリング システムの場合など) か、ドメイン オブジェクトとさまざまなストレージ抽象化 (データ マッパーリポジトリ作業単位、および/またはデータ アクセス オブジェクト) の間の相互作用を管理することができます。

于 2012-09-23T20:27:50.523 に答える