Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Fumito Mizuno
PDF, PPTX
3,023 views
FuelPHP Osu Nagoya vol.1
FuelPHP 勉強会の資料。 fuel.php-web.net を題材としている。 FuelPHP の概要、PHPTAL や PHPUnit 等 名古屋コワーキングスペース アートファクトリーで開催
Technology
◦
Read more
8
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 53
2
/ 53
3
/ 53
4
/ 53
5
/ 53
6
/ 53
7
/ 53
8
/ 53
9
/ 53
10
/ 53
11
/ 53
12
/ 53
13
/ 53
14
/ 53
15
/ 53
16
/ 53
17
/ 53
18
/ 53
19
/ 53
20
/ 53
21
/ 53
22
/ 53
23
/ 53
24
/ 53
25
/ 53
26
/ 53
27
/ 53
28
/ 53
29
/ 53
30
/ 53
31
/ 53
32
/ 53
33
/ 53
34
/ 53
35
/ 53
36
/ 53
37
/ 53
38
/ 53
39
/ 53
40
/ 53
41
/ 53
42
/ 53
43
/ 53
44
/ 53
45
/ 53
46
/ 53
47
/ 53
48
/ 53
49
/ 53
50
/ 53
51
/ 53
52
/ 53
53
/ 53
More Related Content
PDF
10分でわかるFuelPHP @ 2011/12
by
kenjis
PDF
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
by
kenjis
PDF
FuelPHPで3種のprofilerを使ってみた
by
Katsuhiro Miura
KEY
FuelPHPをさわってみて
by
Sotaro Omura
KEY
最近、僕がハマったFuelPHPの紹介
by
Naoto Mawatari
PDF
はじめての FuelPHP
by
Sho A
PDF
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
by
kenjis
PDF
Fuel php osc tokyo2012
by
Fumito Mizuno
10分でわかるFuelPHP @ 2011/12
by
kenjis
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
by
kenjis
FuelPHPで3種のprofilerを使ってみた
by
Katsuhiro Miura
FuelPHPをさわってみて
by
Sotaro Omura
最近、僕がハマったFuelPHPの紹介
by
Naoto Mawatari
はじめての FuelPHP
by
Sho A
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
by
kenjis
Fuel php osc tokyo2012
by
Fumito Mizuno
What's hot
PDF
omoon.org の裏側 〜FuelPHP の task 活用例〜
by
Sotaro Omura
PDF
CodeIgniter入門
by
Sho A
PPTX
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
by
Mika Kane
PDF
NetBeansではじめる FuelPHP
by
Junichi Yamamoto
PDF
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
by
suno88
PPTX
Fuelphp1.8を始めたい
by
運営 sollastudio
KEY
あらためてPHP5.3
by
Masashi Shinbara
PDF
15分でCakePHPを始める方法(Nseg 2013-11-09 )
by
hiro345
PDF
FuelPHPでのファイルアップロード
by
kenjis
PDF
cpanfile
by
Yoshihiro Sasaki
PDF
20091030cakephphandson 01
by
Yusuke Ando
PDF
第21回Creators MeetUp
by
Kenichi Mukai
PDF
Osc2014
by
Soudai Sone
PPTX
今、最も勢いのあるWebフレームワーク「fuel php」
by
Soudai Sone
PDF
実"戦"CakePHP Plugin
by
Kenichirou Oyama
PDF
PHP勉強会 #51
by
Takako Miyagawa
PDF
Flask勉強会その1
by
Masato Kawamura
PDF
Symfony2でより良いソフトウェアを作るために
by
Atsuhiro Kubo
PPT
PHP buildpackでhackとphalconが動いた件について
by
健治郎 安井
PDF
10分でわかるFuelPHP @ OSC2013 Nagoya
by
kenjis
omoon.org の裏側 〜FuelPHP の task 活用例〜
by
Sotaro Omura
CodeIgniter入門
by
Sho A
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
by
Mika Kane
NetBeansではじめる FuelPHP
by
Junichi Yamamoto
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
by
suno88
Fuelphp1.8を始めたい
by
運営 sollastudio
あらためてPHP5.3
by
Masashi Shinbara
15分でCakePHPを始める方法(Nseg 2013-11-09 )
by
hiro345
FuelPHPでのファイルアップロード
by
kenjis
cpanfile
by
Yoshihiro Sasaki
20091030cakephphandson 01
by
Yusuke Ando
第21回Creators MeetUp
by
Kenichi Mukai
Osc2014
by
Soudai Sone
今、最も勢いのあるWebフレームワーク「fuel php」
by
Soudai Sone
実"戦"CakePHP Plugin
by
Kenichirou Oyama
PHP勉強会 #51
by
Takako Miyagawa
Flask勉強会その1
by
Masato Kawamura
Symfony2でより良いソフトウェアを作るために
by
Atsuhiro Kubo
PHP buildpackでhackとphalconが動いた件について
by
健治郎 安井
10分でわかるFuelPHP @ OSC2013 Nagoya
by
kenjis
Viewers also liked
PDF
Laravel5を使って開発してみた
by
Takeo Noda
PDF
Let’s translate FuelPHP docs!
by
Sho A
PPTX
今日から始めるLaravel
by
Masaru Matsuo
PDF
あにみた!(PHPカンファレンス用資料)
by
Hiroyuki Ishiyama
PDF
フレームワーク入門書の決定版が完成
by
kenjis
PDF
Fuel php勉強会東京vol2 発表資料_モデル間リレーション
by
web2citizen
PDF
Ospn fuel php
by
Kenichi Mukai
KEY
CakePHP vs FuelPHP
by
Sotaro Omura
KEY
PHPカンファレンス 2012 フレームワークアップデート FuelPHP
by
Kenichi Mukai
KEY
FuelPHP + Pagoda Box
by
Sotaro Omura
Laravel5を使って開発してみた
by
Takeo Noda
Let’s translate FuelPHP docs!
by
Sho A
今日から始めるLaravel
by
Masaru Matsuo
あにみた!(PHPカンファレンス用資料)
by
Hiroyuki Ishiyama
フレームワーク入門書の決定版が完成
by
kenjis
Fuel php勉強会東京vol2 発表資料_モデル間リレーション
by
web2citizen
Ospn fuel php
by
Kenichi Mukai
CakePHP vs FuelPHP
by
Sotaro Omura
PHPカンファレンス 2012 フレームワークアップデート FuelPHP
by
Kenichi Mukai
FuelPHP + Pagoda Box
by
Sotaro Omura
Similar to FuelPHP Osu Nagoya vol.1
PPTX
<第1回>Laravelハンズオンセミナー
by
Tatsuyoshi Mashiko
PDF
WTM53 phpフレームワーク いまさらcodeigniter
by
Masanori Oobayashi
PPTX
PHPCON_TOKYO_2022_Bigginer.pptx
by
Hideo Kashioka
PPTX
Webシステム脆弱性LT資料
by
Tomohito Adachi
PDF
Silex入門
by
Takuya Sato
PDF
PHPフレームワーク入門
by
Sho A
PDF
フレームワークを使うべき 3 つの理由
by
Kenichi Mukai
PDF
スクリプト言語PHP攻略法
by
Rui Hirokawa
PPT
2009年のPHPフレームワーク
by
Takuya Sato
PDF
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
by
Junichi Ishida
PDF
Modern PHP Programming @ PFI Seminar
by
Sotaro Karasawa
PDF
FukuokaPHP 3
by
ichikaway
PPTX
FuelPHPにアプリと管理ツールを同居してみる
by
Makoto Shimoda
PDF
第104回 php勉強会@東京 Laravel
by
JunKeun Lee
PPT
symfony 1.2を支えるサブフレームワーク
by
Katsuhiro Ogawa
PDF
FuelPHP活用事例
by
Yusuke Naka
PPTX
Fuel php勉強会 1
by
Kazuya Igari
PDF
Osc2012 fall fuel_php
by
Kenichi Mukai
PDF
いよいよPHPerもリーンで行こう
by
Tsutomu Chikuba
PDF
FuelPHPを3ヶ月使ってみて
by
Tetsuji Koyama
<第1回>Laravelハンズオンセミナー
by
Tatsuyoshi Mashiko
WTM53 phpフレームワーク いまさらcodeigniter
by
Masanori Oobayashi
PHPCON_TOKYO_2022_Bigginer.pptx
by
Hideo Kashioka
Webシステム脆弱性LT資料
by
Tomohito Adachi
Silex入門
by
Takuya Sato
PHPフレームワーク入門
by
Sho A
フレームワークを使うべき 3 つの理由
by
Kenichi Mukai
スクリプト言語PHP攻略法
by
Rui Hirokawa
2009年のPHPフレームワーク
by
Takuya Sato
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
by
Junichi Ishida
Modern PHP Programming @ PFI Seminar
by
Sotaro Karasawa
FukuokaPHP 3
by
ichikaway
FuelPHPにアプリと管理ツールを同居してみる
by
Makoto Shimoda
第104回 php勉強会@東京 Laravel
by
JunKeun Lee
symfony 1.2を支えるサブフレームワーク
by
Katsuhiro Ogawa
FuelPHP活用事例
by
Yusuke Naka
Fuel php勉強会 1
by
Kazuya Igari
Osc2012 fall fuel_php
by
Kenichi Mukai
いよいよPHPerもリーンで行こう
by
Tsutomu Chikuba
FuelPHPを3ヶ月使ってみて
by
Tetsuji Koyama
Recently uploaded
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
PDF
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
PDF
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
PDF
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
PPTX
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
PPTX
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
PDF
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
PDF
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
PDF
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
FuelPHP Osu Nagoya vol.1
1.
FuelPHP 勉強会 大須
vol. 1 水野 史土 mizuno@php-web.net
2.
FuelPHP とは ● 軽量&シンプルなフレームワーク
○ ファイル 756(5.1 MB)、含ドキュメント ○ cf. CakePHP2.1.3 ファイル 1,356(8.8 MB) ● 最初から PHP5.3 前提 ● ルールが緩い ● オープンソース ○ https://github.com/fuel ○ 多くのユーザーがコミットしている
3.
フォルダ構成
fuel 本体 app core packages public 公開部分
4.
fuel/app フォルダ
コントローラ、モデルは classes 配下 ビューは app/views を使う
5.
作ってみたサイト ● FuelPHP クラス名検索
○ http://fuel.php-web.net/ ○ FuelPHP のクラス名から、ソースコード閲覧 ○ PHP のリフレクション機能を活用 ○ Model は未使用 ● 使用したソースコード ○ https://github.com/twitter/bootstrap ○ https://github.com/jquery ○ https://github.com/pornel/PHPTAL ○ https://github.com/kenjis/sample-contact-form/
6.
http://fuel.php-web.net/
7.
http://fuel.php-web.net/ の構造 リフレクション
ビュー (通常のアプリ PHPTAL のモデル部分) コントローラ
8.
コントローラ ● fuel/app/classes/controller に置く fuel/app/classes/controller/methodlist.php class
Controller_Methodlist extends Controller { public function action_index() { …
9.
コントローラのクラス ● Controller_(ファイル名) というクラス名
○ (ファイル名) の先頭は大文字 ● Controller を継承する
10.
コントローラのメソッド名 ● action_hoge メソッド
○ URL/クラス名/hoge でアクセス可能 ○ URL/クラス名/ => action_index ● action_ をつけないメソッド ○ ブラウザからは(たぶん)呼び出しできない fuel.php-web.net では、 フォームを作るメソッド _form() $this->_form() で呼び出している
11.
特殊なメソッド名 ● before()
○ 他のメソッドの呼び出し前に実行 ● after($response) ○ 他のメソッドの呼び出し後に実行 fuel.php-web.net では未使用
12.
URL とコントローラの対応
URL/methodlist/index ↓ methodlist.php の action_index() URL/methodlist/list/Arr ↓ methodlist.php の action_list('Arr')
13.
ルーティング ● fuel/app/config/routes.php で設定 _root_
トップページへアクセスした時 ( http://fuel.php-web.net/ ) _404_ 見つからない時 (キャッチオール的に使える) (404 レスポンス を指定する必要あり)
14.
fuel/app/config/routes.php return array(
'_root_' => 'methodlist/index', '_404_' => 'methodlist/404', ); fuel.php-web.net にアクセス ↓ fuel.php-web.net/index.php/methodlist/index
15.
ビューのファイルを指定する $view = View::forge('methodlist/index'); 素のビューを使う場合は、 View::forge(フォルダ/ファイル名)で指定する
16.
ビューに渡すデータ設定 方法1 $view =
View::forge('methodlist/index'); $view->set('title', 'クラス名検索'); $view->set(変数名, 値)
17.
ビューに渡すデータ設定 方法2 $view =
View::forge('methodlist/index'); $view->title = 'クラス名検索'; $view->変数名 = 値
18.
ビューに渡すデータ設定 方法3 $data['title'] =
'クラス名検索'; return View::forge('methodlist/index',$data); 連想配列に格納 → View::forge に引数で渡す
19.
標準以外のビューを使う Twig Mustache Markdown Dwoo Jade Haml Smarty Phptal
20.
app/config/config.php 'always_load'
=> array( 'packages' => array( 'parser', // ここを追加する ), ... );
21.
app/vendor にライブラリを設置する ライブラリをダウンロードする app/vendor 以下に置く app/vendor/PHPTAL/PHPTAL.php Mustache
と markdown はデフォルトで入っている
22.
PHPTAL のライセンス FuelPHP :
MIT PHPTAL : LGPL ライブラリは MIT とは限らない
23.
PHPTAL を使う ● コントローラ
View::forge ↓ View_Phptal::forge config で設定できる?
24.
PHPTAL を使う ● FuelPHP
で使う場合 ○ 拡張子 .phptal (*) ○ 明示的に指定すれば .html でも可 ● ファイルは app/views フォルダに置く * FuelPHP 以外では .html のこともある
25.
PHPTAL の特徴 1 ●
テンプレートファイル(HTML) の属性に記述する <h1 tal:content="title">title here</h1> ↓ <h1>FuelPHPクラス名検索</h1> ● テンプレートをブラウザで表示して確認可能
26.
app/views/methodlist/template.phptal
27.
<body onload="prettyPrint()">
<div class="container"> <div class="hero-unit"> <h1 id="applypos" tal:content="title" >title here</h1> </div> <div class="alert alert-error" tal:condition="exists: error_message" tal:content="error_message" >error message sample</div> <p tal:replace="structure html_form" >Form</p> <div class="row" metal:define-slot="content" > contents here </div> <footer> <p class="pull-right"><a href="http://fuel.php-web.net/" >http://fuel.php-web.net/</a> is programmed by <a href="http://php-web. net/">PHPでWEB作成</a></p> <p> <a href="http://fuelphp.com">FuelPHP</a> is released under the MIT license.<br /> </p> </footer> </div> </body> </html>
28.
PHPTAL の特徴 2 ●
ビュー変数の出力をデフォルトエスケープ ○ FuelPHP もデフォルトエスケープする ● FuelPHP のエスケープを無効にする方法 'auto_filter_output' => false, ● HTML 属性をクォートしないとエラー ○ エラー例: <div class=menu>メニュー</div>
29.
PHPTAL の特徴 3 ●
継承できる (ただし、ややこしい) ● 親 template.phptal <html metal:define-macro="template"> <div metal:define-slot="content"> ● 子 index.phptal <html metal:use-macro="template.phptal/template" > <div metal:fill-slot="content">
30.
PHPTAL のデメリット ● パフォーマンス
○ smarty より遅いらしい http://d.hatena.ne. jp/tanakahisateru/20100906/1283766620 ● テンプレート HTML が厳密 ○ 例えば、</p> 無しだとエラー ● 日本語の情報が少ない
31.
CSRF とは ● Cross
Site Request Forgery ● 取り消しできない重要な処理を実行させる ○ by 「安全な Web アプリケーションの作り方」 (徳丸浩) ● 被害者自身の操作で意図しないHTTPリクエスト を送信させる攻撃 ○ by 「PHP逆引き516の大全」(大家正登, 鮫島康浩, 谷 中志織, 茂木健一)
32.
CSRF 対策 ● 重要な処理の直前の画面でトークン発行
○ $form->add(Config::get('security. csrf_token_key'),'token',array ('type'=>'hidden','value'=>Security:: fetch_token())) ; ○ $form->add_csrf(); (Form のみ?) ● 重要な処理実行時にチェック ○ クッキー(*)の値と照合する ○ Security::check_token() * FuelPHP では(デフォルトでは)クッキーを使用
33.
トークンを発行する箇所
入力画面 実行 トークン発行 チェック
34.
トークンを発行する箇所
入力画面 実行 トークン発行 チェック 罠ページ 正規のトークンが 無いので処理を 実行しない
35.
トークンを発行する箇所 入力画面
確認画面 実行 チェック 確認画面がある場合はどうなるか?
36.
トークンを発行する箇所 入力画面
確認画面 実行 トークン発行 チェック 確認画面がある場合 重要な処理実行の直前 = 確認画面
37.
XSS とは ● クロスサイトスクリプティング ●
外部からの入力などに応じて表示が変化する 箇所があり、この部分のHTML生成の実装に問 題がある ○ by 「安全な Web アプリケーションの作り方」 (徳丸浩) ● 2つ以上のサイトをまたがって、脆弱なサイトに 悪意のあるスクリプトを混入させる ○ by 「PHP逆引き516の大全」(大家正登, 鮫島康浩, 谷 中志織, 茂木健一)
38.
XSS 対策 ● 出力
HTML をエスケープする ○ FuelPHP/PHPTAL はデフォルトエスケープ ■ エスケープ漏れが生じにくい ● HTML 属性値をクォートする ○ PHPTAL は、クォート無しをハネる ■ ミスによる脆弱性が防げる
39.
バリデーション ● 入力値の間違いを早期に発見して再入力を促
すことにより、ユーザビリティを向上する ○ by 「安全な Web アプリケーションの作り方」 (徳丸浩) ● 間違った処理を継続することによるデータの不 整合などを防ぎ、システムの信頼性を向上させ る ○ by 「安全な Web アプリケーションの作り方」 (徳丸浩)
40.
バリデーション ● add_rule で追加していく $form->add('classname','クラス名')
->add_rule('trim') ->add_rule('valid_string',array ('alpha','dashes')) ->add_rule('required') ->add_rule('max_length',30) ; php の関数(trim 等)も使用できる valid_string はややこしい&ハマりやすい
41.
バリデーション $val =
$form->validation(); if ($val->run()) { 検証を通過した場合 } else { 検証に失敗した場合 }
42.
reflection ● クラスや関数等の情報を表示する
○ メソッド、プロパティの情報取得 ○ コメントの取得 ○ クラス/関数が定義されているファイル名、行数の取得 ○ protected/private メソッド実行 ● PHP の機能 ○ ReflectionClass が用意されている ○ FuelPHP 以外でも利用可能
43.
Reflection クラスのメソッド getFileName() getStartLine() getEndLine() getMethods() 詳細は PHP
マニュアル参照 http://www.php.net/manual/ja/book.reflection.php
44.
クラスのソースコードの表示 getFileName() でファイル名を取得 そのファイルを読み込む getStartLine(), getEndLine()
で範囲をチェック getMethods() でメソッド一覧を取得
45.
ユニットテスト ● 個々のメソッドのテスト ○
メソッドの返り値のチェック等 ● テストケースを残す ○ 繰り返し実行可能
46.
ユニットテスト ● FuelPHP では、PHPUnit
を利用する ● oil から実行可能 ○ php oil test ○ php oil test --group=App ○ php oil test --group=Core
47.
FuelPHP をインストールしたルートで実行する
48.
ユニットテストを書く ● app/tests フォルダに置く ●
@group App アノテーションを書く /** * * @group App */ class Test_SourceView extends TestCase
49.
assertEquals で値が等しいかチェック function test_sourceview() {
$classname = 'Date'; $expected = 'クラス名:'.$classname; $data = Controller_Methodlist::_sourceview($classname); $title = $data->title; $this->assertEquals($expected,$title); }
50.
例外のテスト(アノテーションをつける) /** * @expectedException
InvalidArgumentException **/ function test_sourceview_argument_null_raises_exception() { $data = Controller_Methodlist::_sourceview(''); }
51.
ユニットテスト ● カバレッジ(*)も確認できる ○
php oil test --group=App --coverage-html ./report/ ○ xdebug の設定が必要 * コードのうち、どれくらいがテストされているか = テストされている部分/コード全体
52.
テスト通過 : 緑、
未テスト : 橙
53.
今後の予定 ● 開催日時・頻度 ○
平日夜で良いか? ○ 定期開催するか?頻度は? ● 考えているネタ ○ 効率的なWebアプリケーションの作り方 ○ Novius OS http://www.novius-os.org/
Download