Fuelphp-controllers

提供:Dev Guides
移動先:案内検索

FuelPHP-コントローラー

*Controllers* は、FuelPHPアプリケーションに送られる各リクエストを処理します。 FuelPHPによると、コントローラーは *fuel/app/classes/controller/* にあります。 最初に従業員コントローラーを作成しましょう。

employee.php

<?php
   class Controller_Employee extends Controller {
      public function action_home() {
         echo "FuelPHP-Employee application!";
      }

      public function action_index() {
         echo "This is the index method of employee controller";
      }
   }

コントローラーメソッド

コントローラーは、 action _メソッドの1つを使用してWeb要求を処理します。 アプリケーションの要件に応じて、_actionメソッドをいくつでも作成できます。 デフォルトの_actionメソッドは_action_index_です。 _action_index_メソッドは、次のURLのいずれかによって呼び出すことができます。

http://localhost:8080/employee/index
http://localhost:8080/employee/

結果

従業員管理者

*employee* アプリケーションで、新しい *action* メソッド_action_show_を作成しましょう。
<?php
   class Controller_Employee extends Controller {
      public function action_home() {
         echo "FuelPHP-Employee application!";
      }
      public function action_index() {
         echo "This is the index method of employee controller";
      }
      public function action_show() {
         echo "This is the show method of employee controller";
      }
   }

_action_show_メソッドは、次のURLを使用して呼び出すことができます。

http://localhost:8080/home/show

結果

メソッドの表示

before()メソッド

コントローラーで before メソッドを作成できます。 このメソッドは、すべての_action__メソッド呼び出しの前に実行されます。 そのメソッドが存在しないことが判明した場合は呼び出されません。 このメソッドは、ログインチェック、デフォルトのデータフェッチなどの一般的なアクションを記述するのに役立ちます。

_before_メソッドを作成して、簡単なテキストメッセージを出力してみましょう。

public function before() {
   echo "This message comes from <em>before()</em> method</br>";
}

アクション前のインデックスページ

アクション前のインデックス

アクション前のページを表示

アクションの前に表示

after()メソッド

  • after()メソッドは before()*メソッドに似ていますが、_action__メソッドが呼び出された後に実行されます。 _after()_メソッドは、_response_を入力として受け取り、_response_オブジェクトを返します。
public function after($response) {
   if ( ! $response instanceof Response) {
      $response = \Response::forge($response, $this->response_status);
   }
   return $response;
}

入力がNULLまたは応答オブジェクトではない場合、Responseのforgeメソッドを使用して新しい_Response_オブジェクトを作成し、それを返します。 Responseクラスについては、後続の章で詳しく説明します。

コントローラーの拡張

あるコントローラーを別のコントローラーから拡張できます。 基本的な構文は次のとおりです。

class Controller_Employee extends Controller_Welcome {
  //controller methods
}

これは、メソッドの共有に役立ちます。

コントローラーを生成

Fuelには、Oilコマンドを使用してコントローラーを生成するオプションがあります。 構文は次のとおりです。

構文

oil g controller <controller-name>

oil g controller sample

上記のコマンドを実行すると、次の応答が表示されます。

結果

Creating view:/path/to/project/fuel/app/views/template.php
Creating view:/path/to/project/fuel/app/views/sample/index.php
Creating controller:/path/to/project/fuel/app/classes/controller/sample.php

コントローラーのタイプ

FuelPHPは、さまざまな目的のために異なるタイプのコントローラーを提供します。 彼らは次のとおりです-

  • ベースコントローラー
  • テンプレートコントローラー
  • レストコントローラー
  • ハイブリッドコントローラー

ベースコントローラ

Controllerは、FuelPHPで使用可能なすべての異なるタイプのコントローラーのベースコントローラーです。 Web要求を処理するために必要なすべての基本機能を提供します。 要求、応答、セッションなどをサポートします。 特に指定がない限り、すべての例で使用します。

テンプレートコントローラー

テンプレートコントローラーは、ベースコントローラーの拡張機能です。 テンプレートのサポート、事前定義済みのbefore()およびafter()メソッドがあります。 基本的に、ヘッダー、フッター、サイドバーなどを含むレイアウトでビューをラップするために使用できます。 テンプレートコントローラーを作成するには、_Controller_Template_クラスを拡張する必要があります。 デフォルトでは、_Controller_Template_を拡張するクラスのすべてのメソッドでテンプレートを使用する必要があります。

次のように定義されています。

class Controller_Employee extends Controller_Template {
   public function action_index() {
     //add methods
   }
}

ビューの章でテンプレートコントローラーの詳細を説明します。

レストコントローラー

レストコントローラーは、ベースコントローラーの拡張機能です。 REST APIプログラミングの事前定義サポートがあります。 これにより、APIを簡単に構築できます。

休憩コントローラーを作成するには、_Controller_Rest_クラスを拡張する必要があります。 次のように定義されています。

class Controller_Employee extends Controller_Rest {
   public function action_index() {
     //add methods
   }
}

レストコントローラーの詳細については、Ajaxの章で説明します。

ハイブリッドコントローラー

ハイブリッドコントローラーは、RESTコントローラーとテンプレートコントローラーの両方の機能を単一のベースコントローラーで実行します。