/ / Yii2 Basic - yii2のアクションで共通の機能を使用する方法 - yii、yii2、yii2-advanced-app、yii-components、yii2-basic-app

Yii2 Basic - yii2のアクションで共通の機能を使用する方法 - yii、yii2、yii2-advanced-app、yii-components、yii2-basic-app

私はyii2 basicを使うのが初めてです。実際に私は同じコントローラのアクションから共通の関数を呼び出す方法を知りたい。私は、メールを送るためのアクションAにいるとします。私は3つのパラメータを持つメール機能Bを送信する必要があります。私のコントローラー名はカスタマーコントローラーです。どのようにこれを実行しますか。私に解決策を教えてください。ありがとう

回答:

回答№1は2

yii2では、まず、プロジェクトのルートフォルダに "components"という名前のフォルダを作成します。

次に、カスタムコンポーネントをコンポーネントフォルダ.i.e MyComponent.phpなどに書き込んでください。

namespace appcomponents;

use Yii;
use yiibaseComponent;
use yiibaseInvalidConfigException;

class MyComponent extends Component
{
public function MyFunction($param1,$param2){
return $param1+$param2; // (:)
}
}

設定ファイルの中にあなたのコンポーネントを追加してください。

"components" => [

     "mycomponent" => [

"class" => "appcomponentsMyComponent",

],
]

あなたのアプリでのアクセス:

Yii::$app->mycomponent->MyFunction(4,2);

回答№2の場合は0

コントローラ内でのみ共有されている場合は、その中に関数を作成することができます.Yii2のコンポーネントは、アプリケーション目的(複数のコントローラ間で共有)で使用する必要があります。

  private function myFunction(a, b){
return a+b;
}

そしてあなたのコントローラの中のどこからでもそれを呼び出してください

public function actionSomeAction(){
if(myFunction(1,2)>4){...}
}

また、コンポーネントのアイデアは、たとえばすべてのユーザーに「動作」を持たせるなど、機能単なるより多くの機能を持たせることです。