#contents ** まずはここを読みましょう [#haef61e4] -[[第1回 PHP開発でZend Frameworkを知らないだなんて嘘ですよね?:http://www.itmedia.co.jp/enterprise/articles/0702/28/news028.html]] -[[第2回 Zend Frameworkの各コンポーネントを一気に制する:http://www.itmedia.co.jp/enterprise/articles/0703/05/news013.html]] -[[第3回 ブログツールで学ぶ実践的Zend Frameworkの使い方:http://www.itmedia.co.jp/enterprise/articles/0703/08/news018.html]] -[[プログラマ向けリファレンスガイド Zend Framework:http://framework.zend.com/manual/ja/]] -[[マルチバイトエンコードクラス:http://www.fmkz.net/trac/wiki/ZendFramework%E5%B0%8E%E5%85%A5%3A%3A%E3%83%9E%E3%83%AB%E3%83%81%E3%83%90%E3%82%A4%E3%83%88%E3%82%B3%E3%83%B3%E3%83%90%E3%83%BC%E3%83%88%E3%82%AF%E3%83%A9%E3%82%B9]] ** MVCモデル/利用するメリット [#n75f23bc] ZendFrameworkは、PHPを使用してMVCアーキテクチャで効率良く開発するためのフレームワークです。~ ZendFrameworkにはコンポーネントが用意されており、それらを利用することで強力な機能を実装することが可能となります。 *** &size(14){''M(Model)''}; [#n78b3f9a] 処理の中核を担う。メインとなるビジネスロジック、処理がこれにあたる。~ 画面表示や値の入出力には関与しない。 *** &size(14){''V(View)''}; [#m9c59e20] 画面出力を担う。画面表示のテンプレートなどがこれにあたる。 *** &size(14){''C(Controller)''}; [#b0e00b0f] ユーザーの入力に応じた処理の決定を担う。自分自身では表示や処理を行なわない。~ Viewからの入力に応じて、必要なロジックの実行をModelに依頼し、その結果表示をViewに依頼する。 *** 利用するメリット [#ub544810] -機能ごとの独立性 -開発面での分業のしやすさ - 得意分野の実装に集中できる -メンテナンス性の高さ ** ZendFrameworkを設置する [#w2615de9] http://framework.zend.com/download/stable ZendFramework-0.9.2-Beta.zipを解凍し、libraryの中をincludeできるようにする。 rewrite_moduleを使用するので、.htaccessを設置 RewriteEngine on RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php ***composerの利用 [#g254bb62] 2016年9月時点ではcomposerを使ってインストールします。 $ composer.phar require zendframework/zendframework ** 用語解説 [#of89b310] *** ディスパッチ [#he92b6b6] > ディスパッチとは、 コントローラとアクションをリクエストオブジェクトから受け取り、 それを実際のコントローラファイル/クラスとメソッドに対応させる処理のことです。 コントローラやアクションが存在しない場合は、 デフォルトのコントローラやアクションにディスパッチします。~ ~ ([[Zend Frameworkリファレンスガイド - 7.1.1 導入:http://framework.zend.com/manual/ja/zend.controller.html#zend.controller.overview.introduction]]より) *** ルーティング [#e5e0dc53] >> リクエストの内容を調べて、 そのリクエストを処理するコントローラとアクションを決定する処理のことです。~ (中略)~ ルーティングが発生するのは一度だけ、 つまり最初にリクエストを受け取ってから 最初のコントローラにディスパッチされるまでの間だけです。~ ~ ([[Zend Frameworkリファレンスガイド - 7.1.1 導入:http://framework.zend.com/manual/ja/zend.controller.html#zend.controller.overview.introduction]]より)~ ''例:Zend_Controller_Routerを利用する場合のルーティング処理''~ ~ ルータはリクエストURIを解析し、コントローラとアクション、そしてパスに含まれるパラメータを取得。その後リクエストオブジェクトに格納する。 #exlink