ZendFramework-コントローラー
前に説明したように、 controllerZendMVCフレームワークで重要な役割を果たします。アプリケーション内のすべてのWebページは、コントローラーによって処理される必要があります。
Zend MVCフレームワークでは、コントローラーは– Zend / Stdlib / DispatchableInterfaceを実装するオブジェクトです。ザ・DispatchableInterface 単一の方法があります、 dispatch、 Request 入力としてのオブジェクト、いくつかのロジックを実行し、 Response 出力としてのオブジェクト。
dispatch(Request $request, Response $response = null)
「HelloWorld」を返すControllerオブジェクトの簡単な例は次のとおりです。
use Zend\Stdlib\DispatchableInterface;
use Zend\Stdlib\RequestInterface as Request;
use Zend\Stdlib\ResponseInterface as Response;
class HelloWorld implements DispatchableInterface {
public function dispatch(Request $request, Response $response = null) {
$response->setContent("Hello World!");
}
}
ザ・ DispatchableInterfaceは基本的であり、高レベルのコントローラーを作成するには他の多くのインターフェースが必要です。そのようなインターフェースのいくつかは次のとおりです-
InjectApplicationEventInterface −イベントの挿入に使用されます(Zend EventManager)
ServiceLocatorAwareInterface −サービスの検索に使用(Zend ServiceManager)
EventManagerAwareInterface −イベントの管理に使用されます(Zend EventManager)
これらのことを念頭に置いて、Zend Frameworkは、これらのインターフェースを実装する多くの既製のコントローラーを提供します。最も重要なコントローラーは以下のとおりです。
AbstractActionController
AbstractActionController(Zend / Mvc / Controller / AbstractActionController)は、ZendMVCフレームワークで最も使用されているコントローラーです。それは典型的なウェブページを書くために必要なすべての機能を備えています。これにより、ルート(ルーティングはリクエストURLをコントローラーとそのメソッドの1つに一致させます)を一致させることができますaction。一致すると、アクションにちなんで名付けられたメソッドがコントローラーによって呼び出されます。
たとえば、ルートの場合 test 一致し、ルート、 test 戻り値 hello アクションのために、そして helloAction メソッドが呼び出されます。
私たちを書いてみましょう TutorialController を使用して AbstractActionController。
と呼ばれる新しいPHPクラスを作成します TutorialController を拡張することによって AbstractActionController に配置します module/Tutorial/src/Controller/ ディレクトリ。
をセットする Tutorial\Controller 名前空間として。
書く indexAction 方法。
を返す ViewModel からのオブジェクト indexAction方法。ザ・ViewModel オブジェクトは、コントローラーからビューエンジンにデータを送信するために使用されます。これについては、以降の章で説明します。
完全なコードリストは次のとおりです-
?php
namespace Tutorial\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class TutorialController extends AbstractActionController {
public function indexAction() {
return new ViewModel();
}
}
新しいものを正常に追加しました TutorialController。
AbstractRestfulController
AbstractRestfulController(Zend \ Mvc \ Controller \ AbstractRestfulController)はHTTPを検査します method 着信リクエストのHTTPメソッドを考慮してアクション(メソッド)と一致します
たとえば、GET HTTPメソッドを使用したリクエストは、 getList() メソッドまたは get() メソッド、 id パラメータがリクエストにあります。
AbstractConsoleController
AbstractConsoleController(Zend \ Mvc \ Controller \ AbstractConsoleController)は、ブラウザーではなくコンソール環境でのみ実行されることを除いて、AbstractActionControllerに似ています。