PHPフレームワーク入門 Zend Framework 2 コネクト株式会社 アジェンダ フレームワークとは ◦ MVC とは Zend Framework 2 入門 ◦ Zend Framework 2 のインストールと動作確認 ◦ Zend Framework 2 を使用したシンプルな例題

PHPフレームワーク入門 Zend Framework 2 コネクト株式会社 アジェンダ フレームワークとは ◦ MVC とは Zend Framework 2 入門 ◦ Zend Framework 2 のインストールと動作確認 ◦ Zend Framework 2 を使用したシンプルな例題

PHPフレームワーク入門 Zend Framework 2 コネクト株式会社 アジェンダ フレームワークとは ◦ MVC とは Zend Framework 2 入門 ◦ Zend Framework 2 のインストールと動作確認 ◦ Zend Framework 2 を使用したシンプルな例題 Copyright 2014 konekto, Inc # 2 フレームワークとは フレームワークを使用すると、高品質で均 一なのWEBアプリケーションを短期間に構 築できます。 開発効率の追求(基本) フレームワーク ライブラリ サブルーチン/関数 独自開発 Copyright 2014 konekto, Inc # 4 開発効率の追求(極限) パッケージソフト (半完成品 ) フレームワーク テンプレートエンジン 隠蔽化 /抽象化 プログラム言語 Copyright 2014 konekto, Inc # 5 フレームワークの効果 開発工数の圧縮 ◦ コーディング工数 ◦ テスト工数 大規模開発における標準化と効率化 ◦ チーム開発 読みやすいコード化 コード量の圧縮 品質の均一化 メンテナンス性の向上 Copyright 2014 konekto, Inc # 6 コンピュータの5大機能 入力 出力 Web ブラウザ Web ブラウザ からの入力 への出力 記憶 演算 データベース データ加工 ファイル 制御 プログラムロ ジック Copyright 2014 konekto, Inc # 7 アプリケーションの共通機能 汎用的な処理の共通化 ◦ ページ遷移とロジック ◦ MVC による役割の明確化 ◦ デザインとロジックの分離 ◦ 入力処理(サニタイズ) ◦ データベース処理 ◦ 隠蔽化 ◦ 認証処理/アクセス制御 Copyright 2014 konekto, Inc # 8 Zend Framework 2 の特徴 ビジネスで利用可能なフレームワーク ◦ Zend をはじめとした企業がコミュニティに参加 シンプルな構造 ◦ モジュール単位に利用可能 明確なライセンス体系 ◦ ビジネスで部分的に使用しても問題ない PHP 5.3 を採用 Copyright 2014 konekto, Inc # 9 代表的な PHPフレームワークの比較 小規模 ←→ 大規模 Laravel 単機能 CodeIgniter Yii FuelPHP ↑ CakePHP Zend Framework 2 ↓ 高機能 Symfony Copyright 2014 konekto, Inc # 10 PHPフレームワークシェア Copyright 2014 konekto, Inc # 11 話題性:Google トレンド Copyright 2014 konekto, Inc # 12 MVCとは WEBプログラミングの手法として、スタン ダードになったMVCついて学習します。 フレームワークやオブジェクト指向のベース となる考え方ですので、把握することはス テップアップに不可欠です。 MVC 基礎知識 MVC とは… ◦ ソフトウェアの開発手法の一つ ◦ Model (モデル), View(ビュー), Controller (コントローラ)の 頭文字を合わせたもの ◦ プログラムを上記三つのパターンに分割して,それぞれの 役割ごとに処理を実装する手法 Copyright 2014 konekto, Inc # 14 MVC 基礎知識 それぞれの役割 パターン 役割 Model(モデル) データの出し入れと加工を行う View(ビュー) データの表示を行う Controller(コントローラ) ユーザから命令を受け付け,モデ ルやビューを繋げて処理を完成さ ◦ つまりシステムはデータを扱うものであり、データせる Copyright 2014 konekto, Inc # 15 MVC 基礎知識 デザイン図 データ モデル 処理要求 参照 コントローラ ビュー 表示要求 リクエスト レスポンス ユーザ側 Copyright 2014 konekto, Inc # 16 MVC 基礎知識 MVC の利点 ◦ 画面デザインと内部ロジックの分割 ◦ デザイナとプログラマの分業化 ◦ デザイン変更の容易化 ◦ ビュー作成を楽にするテンプレートエンジンの採用 ◦ 同じデータのI/O をモデルに集約することでオブジェクト指向 的な実装が可能 ◦ 役割分担による見やすいコーディング Copyright 2014 konekto, Inc # 17 Zend Framework 2 のMVC 入口はすべてindex.php ◦ エントリーポイントという考え方 公開するのはindex.php のみ ◦ 設定ファイルやライブラリは直接アクセス禁止 ◦ ただし画像とかCSS とかJavaScript は別 指定されたURL にしたがって処理決定 ◦ モジュール/コントローラー/アクション ビュー ◦ HTML などをレンダリングする ◦ 全ての処理が完了してからレンダリング開始 Copyright 2014 konekto, Inc # 18 MVC テンプレートエンジン PHP テンプレートエンジンとは? ◦ ビューを担うPHP のライブラリ ◦ ビューファイルに相当するHTML ライクのものをテンプ レートと呼ぶ ◦ 書式は簡単だが独自のもの ◦ 変数や、簡単な条件文( if )、ループなどの制御をサポート ◦ 表示に特化しているので、 HTML エスケープや数値や日付の書式 変換が得意 Copyright 2014 konekto, Inc # 19 MVC テンプレートエンジン テンプレートエンジンの目的 ◦ プログラマとデザイナの作業分担を明確化 ◦ デザイン変更に対する柔軟性を高める ◦ ロジックをよりシンプルに ◦ 余計な処理を挟まない分、すっきりしたものに Copyright 2014 konekto, Inc # 20 リライト処理 リライトエンジン ◦ URL で指定された内容を目的に応じて書き換える機能 ◦ 1つのWeb ページ(アプリ:コントローラ)が受け取って処理 を分岐する Copyright 2014 konekto, Inc # 21 Zend Framework 2 ZEND FRAMEWORK 1 と ZEND FRAMEWORK 2 の違いとは ZF1とZF2の違い PHP 5.3 ベース ◦ ZF1 はPHP 5.1 ベース NameSpace を意識 イベント駆動タイプ デザインタイプにDI(Dependency Injection) を採用 Copyright 2014 konekto, Inc # 23 Zend Server が提供する ZF Zend と提供企業が提供する企業向けの新たな Web システム環境 企業ユーザが望むプロ仕様の PHP 環境を提供 – 高信頼性と高速性を両立した PHP 環境の提供 – Web アプリ単位の監視機能を提供 – 稼動後の運用管理の容易さ – 開発効率の向上 – モバイル環境への対応 サーバ管理GUI MySQL/DB2 Zend Framework 1 & 2 デプロイ機能 データベースドライバ 高速化 拡張モジュール デバッグ JVM との連携 PHP実行環境 モニタリング ジョブキュー Apache(IHS) コードトレーシング XML Tool Kit Copyright 2014 konekto, Inc # 24 Zend Server 6.1 Copyright 2014 konekto, Inc # 25 Zend Server 7.0 Copyright 2014 konekto, Inc # 26 Zend Framework 2 インストールと動作確認 ZEND FRAMEWORK 2 の配置と動作確 認ようにスケルトンプロジェクトの配置を行 います。 ベース環境の構築 Zend Framework 2 の必要条件 ◦ Web サーバ ◦ リライトエンジン(mod_rewrite など) ◦ PHP 5.3.x ◦ HTML5 対応ブラウザ Copyright 2014 konekto, Inc # 28 インストール手順① Web サーバとPHP 5.3 環境を用意 ◦ Zend Server 6 以上の場合 ◦ Zend Framework と Zend Framework 2 インストール済 ◦ 手順③へ ◦ XAMPP などの場合 ◦ Zend Framework 2 独自にインストール Copyright 2014 konekto, Inc # 29 インストール手順② Zend Framework 2を入手 ◦ http://framework.zend.com/downloads/latest ◦ ZendFramework-2.3.3.zip *10/10 現在 ◦ 適当に展開(別途説明) Copyright 2014 konekto, Inc # 30 インストール手順③ スケルトンプロジェクトの入手 ◦ https://github.com/zendframework/ZendSkeletonApplication ◦ ZendSkeletonApplication-master.zip Copyright 2014 konekto, Inc # 31 インストール手順④ スケルトンプロジェクトの配置 ◦ 適当に展開します ◦ public ディレクトリをドキュメントルートへ ◦ ディレクトリ名を ZendSkeleton に変更 ◦ 残りを適当に配置します ◦ ディレクトリ名を ZendSkeleton に変更 具体例を次ページで解説します Copyright 2014 konekto, Inc # 32 インストール手順④ 補完 圧縮ファイル内部 ¥ エントリーポイントの配置 (Web サーバのドキュメントルート ) ├─config ◦ XAMPP の場合 │ └─autoload ◦ c:¥xampp¥htdocs¥ZendSkeleton ├─data │ └─cache ├─module アプリ実態の配置( Web サーバのドキュメントルート以外) │ └─Applicaon ◦ XAMPP の場合 │ ├─config ◦ c:¥xampp¥ZendSkeleton │ ├─language │ ├─src │ │ └─Applicaon │ │ └─Controller Zend Framework 2 の配置 (Web サーバのライブラリ置き場 ) │ └─view ◦ XAMPP の場合 │ ├─applicaon ◦ C:¥xampp¥Library │ │ └─index │ ├─error │ └─layout ├─public │ ├─css │ ├─fonts │ ├─img │ └─js └─vendor COPYRIGHT 2014 KONEKTO, INC # 33 インストール手順⑤ エントリーポイントindex.php の設定 ◦ ディレクトリ C:¥xampp¥htdocs¥ZendSkeleton ◦ ファイル名 index.php ◦ 場所 6行目と8行目付近 ◦ Zend Framework 2 へのパス設定 ◦ カレントディレクトリをアプリ実態へ ◦ index.php の内容 (XAMPP の例 ) ◦ putenv("ZF2_PATH=" . 'C:¥xampp¥Library¥ZendFramework-2.3.3¥library'); ◦ chdir('c:¥xampp¥ZendSkeleton'); Copyright 2014 konekto, Inc # 34 インストール手順⑥ スケルトンプロジェクトの動作確認 ◦ URL http://127.0.0.1/ZendSkeleton/ OK NG Copyright 2014 konekto, Inc # 35 Zend Framework 2 基本概念 ZEND FRAMEWORK 2 の基本的な概念 を説明します。 リクエストURLとデフォルト ◦ http:// ドメイン /モジュール/コントローラ /アクション ◦ http://127.0.0.1/ZendSkeleton/ ◦ http://127.0.0.1/ZendSkeleton/application/index/index Copyright 2014 konekto, Inc # 37 モジュール概念 アプリケーション モジュール モジュール モジュール Model Model Model View View View Controller Controller Controller Action Action Action Action Action Action Copyright 2014 konekto, Inc # 38 スケルトンプロジェクトで確認 圧縮ファイル内部 ¥ ├─ config │ └─ autoload ├─data │ └─cache ├─module │ └─Application モジュール │ ├─ config │ ├─language │ ├─ src │ │ └─Application │ │ └─Controller コントローラー │ └─view │ ├─application │ │ ├─index index コントローラのビューファイル │ │ └─user user コントローラのビューファイル │ ├─error │ └─layout └─vendor └─ZF2 Copyright 2014 konekto, Inc # 39 Zend Framework 2 例題による入門 簡単な例題を通して ZEND FRAMEWORK 2 の基本動作を説明します Zend Framework 2 例題 コントローラーおよびアクションの作成 アクションからビューで値の受け渡し FORMから値を取得 Captcha による認証処理 Copyright 2014 konekto, Inc # 41 例題1 コントローラー/アクションの作成 ◦ コントローラーおよびアクションを作成 ◦C:¥xampp¥ZendSkeleton¥module¥Application¥src¥Application¥Controller にUserController.php をコピー ◦ コントロールを登録 C:¥xampp¥ZendSkeleton¥module¥Application¥config のmodule.config.php を修正 ◦ ビューを配置 C:¥xampp¥ZendSkeleton¥module¥Application¥view¥application¥user にtokyo.phtml をコ ピー ◦ 以下の URL にアクセスして出力結果を確認しましょう。 ◦ http://127.0.0.1/ZendSkeleton/application/user/tokyo Copyright 2014 konekto, Inc # 42 例題1 コントローラー/アクションの作成 ◦ http://127.0.0.1/ZendSkeleton/application/user/tokyo Copyright 2014 konekto, Inc # 43 例題2 値の受け渡し ◦ ビューを配置 C:¥xampp¥ZendSkeleton¥module¥Application¥view¥application¥user にosaka.phtml を コピー ◦ 以下の URL にアクセスして出力結果を確認しましょう。 ◦ http://127.0.0.1/ZendSkeleton/application/user/osaka Copyright 2014 konekto, Inc # 44 例題2 値の受け渡し ◦ http://127.0.0.1/ZendSkeleton/application/user/osaka Copyright 2014 konekto, Inc # 45 例題3 FORMから値を取得 ◦ フォームを配置 ◦C:¥xampp¥htdocs¥ZendSkeleton¥にform.html をコピー ◦ ビューを配置 C:¥xampp¥ZendSkeleton¥module¥Application¥view¥application¥user にkyoto.phtml を コピー ◦ 以下の URL にアクセスして出力結果を確認しましょう。 ◦ http://127.0.0.1/ZendSkeleton/application/user/kyoto Copyright 2014 konekto, Inc # 46 例題3 FORMから値を取得 ◦ http://127.0.0.1/ZendSkeleton/form.html Copyright 2014 konekto, Inc # 47 例題コースコード 簡単な例題を通してZEND FRAMEWORK 2 の基本動作を説明します エントリーポイント Index.php ◦<?php ◦/** ◦ * This makes our life easier when dealing with paths. Everything is relative ◦ * to the application root now. ◦ */ ◦ putenv("ZF2_PATH=" . 'C:¥xampp¥Library¥ZendFramework-2.3.3¥library'); ◦ ◦//chdir(dirname(__DIR__)); ◦chdir('c:¥xampp¥ZendSkeleton'); ◦// Decline static file requests back to the PHP built-in webserver ◦if (php_sapi_name() === 'cli-server' && is_file(__DIR__ . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH))) { ◦ return false; ◦} ◦// Setup autoloading ◦require 'init_autoloader.php'; ◦// Run the application! ◦Zend¥Mvc¥Application::init(require 'config/application.config.php')->run(); Copyright 2014 konekto, Inc # 49 コントローラーの登録 module.config.php の76 行目 ◦ 'controllers' => array( ◦ 'invokables' => array( ◦ 'Application¥Controller¥Index' => 'Application¥Controller¥IndexController', ◦ 'Application¥Controller¥User' => 'Application¥Controller¥UserController', ◦ ), ◦ ), Copyright 2014 konekto, Inc # 50 コントローラーとアクション IndexController.php ◦<?php ◦/** ◦ * Zend Framework (http://framework.zend.com/) ◦ * ◦ * @link http://github.com/zendframework/ZendSkeletonApplication for the canonical source repository ◦ * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) ◦ * @license http://framework.zend.com/license/new-bsd New BSD License ◦ */ ◦namespace Application¥Controller; ◦use Zend¥Mvc¥Controller¥AbstractActionController; ◦use Zend¥View¥Model¥ViewModel; ◦class IndexController extends AbstractActionController ◦{ ◦ public function indexAction() ◦ { ◦ return new ViewModel(); ◦ } ◦} Copyright 2014 konekto, Inc # 51 コントローラーとアクション ◦class UserController extends AbstractActionController ◦{ ◦ public function tokyoAction() ◦ { ◦ return new ViewModel(); ◦ } ◦ ◦ public function osakaAction() ◦ { ◦ $data = array( ◦ 'key1' => ' あいうえお', ◦ 'key2' => ' いろは ' ◦ ); ◦ return new ViewModel($data); ◦ } ◦ ◦ public function kyotoAction() ◦ { ◦ $data = array( ◦ 'name' => $this->params()->fromPost( 'name' ), ◦ 'year' => $this->params()->fromPost( 'year' ), ◦ 'month' => $this->params()->fromPost( 'month' ), ◦ 'day' => $this->params()->fromPost( 'day' ) ◦ ); ◦ return new ViewModel($data); ◦ } ◦} Copyright 2014 konekto, Inc # 52 FORM form.html ◦<html> ◦ <head> ◦ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> ◦

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    66 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us