登録者:mocapapa

はじめてのyii.ppt

2009-09-15 13:08:08
アクセス数:1914
タグ: PHP yii Framework
1

■説明

PHPカンファレンス2009での講演資料です。

リンク

このスライドの現在表示中のページへのリンク
ブログパーツ
google ガジェット

関連するスライド

CodeIgniterでhello world! 二番煎じ☆ 2080-0825

投稿者:NEKOGET
投稿日時:2010-08-25 21:51:13

PHPの最新動向 5.3の新機能を中心に

投稿者:koyhoge
投稿日時:2009-02-08 23:26:53

PHPプログラミングのIPv6対応の実際

投稿者:koyhoge
投稿日時:2008-11-27 22:55:39

Ethnaで問題が起こったときにする5段階の解決法

投稿者:sotarok
投稿日時:2008-08-16 02:07:55

第34回PHP勉強会発表資料 ちょっと極めるPHP5×XML

投稿者:sotarok
投稿日時:2008-07-24 12:18:09

CakePHP Email Component 調査報告書

投稿者:suzuki
投稿日時:2008-02-21 01:29:57

お気に入り登録したユーザ

GoodJobしたユーザ

タグクラウド

yiiFrameworkPHP

■スライド内のテキスト

スライド1: はじめての yiiMy/Your first encounter to yiimocapapa<mocapapa@g.pugpug.org>1

スライド2: 話の内容• 自己紹介 (Self introduction)• PHP フレームワーク (PHP frameworks)• Yii とは (What is yii?)• フレームワークファイト (Framework battle)• ブログデモ (Blog demo)• 自動生成 (Scaffolding)• まとめ (Conclusion)Contents of my talkSorry, but I do not have enough timeto add the English explanation formore than 20 pages in 20 min.2

スライド3: 自己紹介• PHP を触り始めて 10 年以上、本業とは別に、 webベース社内プロジェクト管理ツールを開発– 工程進捗管理– アクションアイテム管理– 障害管理– メーリングリスト管理– ドキュメント管理 etc.• 定型ルーチンのライブラリ化– ユーザ認証、 CRUD 、 etc.• 数年前からフレームワークを触り始めるSelf introduction3

スライド4: フレームワーク使用歴PHP frameworks• CodeIgniter⇒ 「徹底入門」を購入。ドキュメントがしっかり。チュートリアルが動作。ただしサポートレベルがやや低いため、 CI の上に独自 CRUD サブフレームワークを実装、アプリケーションを数本作成• ちいたん⇒軽くてサポートレベルが比較的高く、 ( ~ CakePHP?) なかなか良いが、開発停止中、ドキュメントがかなり不足サポートレベル : 同じアプリを実装するのに必要なアプリケーションコード量に反比例する。フレームワークのサポートレベルが高ければ高いほど、アプリケーションコード量は少なくなる。4

スライド5: PHP フレームワークPHP frameworks• 佐藤琢哉 , 「 2009 年の PHP フレームワーク」 , LOCAL PHP 部 札幌勉強会 02,http://handsout.jp/slide/1011– “PHP フレームワーク多すぎ” “とりあえず絞る”“各フレームワークの特徴”– CodeIgniter: “ そこそこの機能さえあれば開発できる人ならお勧め”– Yii: “ 先取りしたい人向け” “伸びるかどうかは不明だが伸びそうな気配はある”– 他省略5

スライド6: Yii• Yii; easy, efficient and extensible– yii プロジェクト (http://www.yiiframework.com)• 最も遅れて登場した PHP フレームワーク– 本年 1 月 3 日に 1.0.1 がリリース、最新版は 1.0.8– 従って、使用歴は数か月• 開発が活発、毎日バグフィックス・エンハンス、一月に一度の公式リリース• 開発者が素晴らしい– “ 伽藍とバザール”のやりかたを良く知っている• 頻繁なリリース、参加者 (=β テスタ ) エンカレッジ• ユーザ質問に対する素早い直接回答6Yii

スライド7: Yii RequirementsPHP 、 MySQL 、 Yii が動作して、無料で広告なしという夢のような ? 海外サーバ有り7Yii

スライド8: Yii の特長• 高速 ( 次ページに詳細 ) 、大規模 PHP アプリケーション向け• フルスタック。豊富な機能、 MVC 、 AR 、 i18n 、 l10n• 簡単に学べて使用可能。 PHP と OOP の知識要• 詳細なドキュメント。ガイドやクラスリファレンス、チュートリアル• 開発者の豊富な経験 ( 実は Prado の開発者 )• jQuery 等 3rd party lib. との統合8Yii

スライド9: PHPMark (PHP Framework Benchmark)• http://code.google.com/p/phpmarkPHP frameworks9

スライド10: フレームワークの比較• フレームワークの比較の困難さ– 表面的な○ × ではほとんど意味が無い– フレームワーク自身の学習要求度が高い (×n)– 向き不向きがある、フェアな比較が困難PHP frameworks– 同じアプリに対して違うフレームワークで実装して比較してみるしかない– “PHP Framework Fight”,http://labs.strk.jp/code-fight/wiki• アプリは「オフ会くん」とした10

スライド11: • 「宴会くん」クローンオフ会くん– 誰でもオフ会を登録できる⇒幹事になる– 幹事は「オフ会コード」を関係者にメールする– 参加したい人は「オフ会コード」でオフ会を選択し、参加登録するオフ会情報参加者情報Framework battle11

スライド12: CI たんレイヤ• 経緯:ちいたんで「オフ会くん」を実装したオフ会くんコード量ちいたんCI たんCIユーザアプリコード量Framework battle• その後 CI に移植するときにサポートレベルが低いことに気づいた• その差を吸収するレイヤを開発、 CI たんと仮称した• 結果:ちいたんのコード⇒ CI たんのコード ( ほぼ 1対 1 対応 )12

スライド13: Yii との比較結果Framework battle• Yii は新たにジェネレータ生成物をベースに開発• CI は CI たんレイヤを展開したもの• CI: ちいたん :yii=49 行 :34 行 :13 行 (CRUD のひとつのメソッドを比較 )13

スライド14: Yii ブログデモ• yii に同梱のサンプルアプリケーション• Blog に必要な最低限の機能– ユーザ認証– 投稿作成、タグ– コメント作成– コメント認証• リレーションYii Blog demo14

スライド15: Yii ブログデモ (2)Yii Blog demo• Yii( だけでなくフレームワーク ) を勉強するのにはベスト– ほとんどの web アプリケーションにはユーザ認証がある (RBAC)– ほとんどの web アプリケーションはデータベースを持ち、 CRUD(Create/Retrieve/Update/Delete) 機能を持つ– 豊富な関数定義ドキュメントはあるが、どのように使われるのかはアプリを見たほうが良い15

スライド16: 投稿日付ウィジェット画像ポップアップyii-blogdemo-enhanced月別アーカイブYii Blog demoカレンダーウィジェットコンテンツサーチウィジェット最近の投稿ウィジェットリンクウィジェット16

スライド17: Yii Blog demoリレーションサポート (ER 図 )A BA belongs_to B,B has_many A17

スライド18: MySQL WorkbenchA post belongs to a userA user has many postsScaffolding18

スライド19: スキャッフォールディングScaffolding• コマンドラインツール yiic によるコード自動生成 ( コードジェネレータ )• yiic webapp <app-name>– 骨格アプリケーションの作成、基本ディレクトリ構造やユーザ認証部分を自動生成する• yiic shell (model “name”, crud “name”)– データベーススキーマを参照してモデルやCRUD コントローラやビューを自動生成する• ブログデモをコピーし修正してアプリケーションを作る必要はない19

スライド20: 自動生成されたモデルご利益relations() により、アクティブレコードを用いて lazy ないしは eager ローディングにより関係するオブジェクトを得ることができる。複雑な JOIN SQL文を記述する必要が無い。⇒ LEFTOUTER JOIN の自動生成Scaffolding20

スライド21: 自動生成されたビューScaffolding21

スライド22: まとめ• 例題「オフ会くん」のコード量 ( ユーザ記述分 )– CI > ちいたん ( ~ Cake?) > yii• 理由は主にバリデーションが劇的に簡単になることだが、私が知らないだけかもしれない…CICI たんCIちいたんyiiユーザアプリコード量yiicConclusion22

スライド23: まとめ (2)Conclusion• yii は自動生成コマンド等で簡単に使えるが、サポートレベルが高いため、使いこなそうとするとそれなりの学習が必要– ただし XML 、 YAML 等の記述言語は学習不要• 一旦覚えれば非常に強力• 最先端のフレームワークとして、乗り換え組が多い ( 他と比べてから選ばれている )• OOP によりモジュラー化可能で、 Extension,Module 等のユーザ貢献ライブラリが増えてくればさらに強力になっていくと予想23

スライド24: まとめ (3)• Yii は誰にお勧め ?– ユーザベースが少ないのでフレームワーク初心者にはお勧めできない– 「 Yii 徹底入門 | 攻略」というような本も無いので初心者にはお勧めできない– 新しい物好きな方、先取りしたい方– 英語が得意な方– 高速を求める方• Yii の今後にご注目ください。Conclusion24

スライド25: ありがとうございました !Thank you!25

スライド26: ブログデモの拡張Yii Blog demo• yii のサンプルアプリケーションであるブログデモのソースを読み、機能拡張する中で基本の API を学習した• Google code の yii-blogdemo-enhanced に登録(http://code.google.com/p/yii-blogdemo-enhanced)1. カレンダー、マンスリーアーカイブウィジェット2. 最近の投稿ウィジェット3. リンクウィジェット4. 投稿日付ウィジェット5. 画像ギャラリー、画像ポップアップ機能6. ウィジェット開閉機能7. コンテンツサーチウィジェットwidget :本来の意味では portlet26

スライド27: コンテンツサーチとイメージギャラリー•コンテンツサーチ、ハイライト •画像アップロード、管理Yii Blog demo27