SlideShare a Scribd company logo
Before PHP勉強会 51




HMVCでテストモジュールを
   作ってみましたの巻



  
  
  
 ネコネットデザイン事務所
   宮川
貴子(NEKOGET)
自己紹介
NAME:宮川 貴子
               NEKOGET
NICK : NEKOGET
WORK:ネコネットデザイン事務所

フリーランスで活動中( 仕 募 中
               お 事 集 )
XHTML,CSS,イラスト製作をしたり
PHPでコードを書いたりしています。
お題
・CodeIgniterとは?
・moduler
extensionの紹介
・テストモジュールを作ってみたよ。
CodeIgniter
【読み】
[コードイグナイター]
CodeIgniter
デザインパターン

Model
View
Controller
流れ
FLOW
(NEKOGETの勝手な解釈としてのそれ)
Load   Library
                 View
                        Model


Controller
       処理のおおまかな流れ

Output
Load         V
hook

       Controller
         ポイントで、
hook
         処理を差し込む
       Output
Active Record
テーブル名に
プレフィックスを設定
Active Record
すべての値は
自動的にエスケープ!
安全なクエリを生成します。
データベース構造

縛りは緩やか
セッションの保存にデータベースを使う場
格納テーブルの構造が固定
本題
H   M   V   C  
 モジュール機構用ライブラリ
標準のファイル構造
application
      controllers

      views

      config

      librarys
標準のファイル構造
application
      controllers
          複数のController


      views
          複数のC ontroller
          
 
 
 
 
 
 
 view
モジュール化されたのファイル構造
application
                     m odul
                          es
    controllers
                     が追加
    views

        modules
                  welcome
                     controllers

                     views
モジュール化によって
機 能 を グ ル ー プ 化 
することができる。
分    業 
    が簡単
あなたと私の作業は、フォルダが違う
迷 子 
 にならない
全体の中から探さない。モジュールという地図がある
Moduler
extension
HMVC
Moduler extension
                            CodeIgniter WIKI
                             ニュージーランドの人

                            wiredesignzさん
                            という方が、開発を
                            されています。

                   
http://codeigniter.com/wiki/Modular_Extensions_-_HMVC
Moduler extension
                           G o o g le C o d e
                           で開発中の
                           コードが公開
                           されてします。

http://code.google.com/p/modular-extensions-php5/
Moduler extension

     組み込んでみました

CodeIgniter1.7.2
作業の流れ
WORK FLOW
WIKIページにアクセス




http://codeigniter.com/wiki/Modular_Extensions_-_HMVC
File:modular extensi
                   ons 5222.zi 
                             p
   (P H P 5 onl
              y)をダウンロード
解凍したファイルを設置
 /system/application/libraries/

       Controller.php
       Modules.php
       MY_Router.php
モジュールフォルダを作成
  /system/application/

       controllers
                         m odul
                              es
       views             を作成

               modules
Welcomeモジュールを作成
  /system/application/   modules
                         W el
                            com e
      welcome            モジュール
                         を作成
         controllers

         views

         models

         config
Welcomeモジュールへ移動
  /system/application/         modules
                        
      welcome               w elcom e.php
                            applcaton/ r l s/
                                i i contoler 
                            から移動
         controllers


              welcome.php

          views

                  welcome_message.php
作業終了
WORK END
動作確認
設置したURLにアクセス

                                確認の為、
                                アイコン画像を
                                追加しています。




applcation/modules/welcome/以 以 以 以 以 以 以 以 以
    i
以 以 以 以 以 以 以 以 OK
組み込み済みCodeIgniterでの




テスト
テスト用のモジュールでテストを書く。

   application
                            テスト用
       controllers          モジュール
                            を作ってみたよ
       views

       modules
                     test
                        controllers

                            views
applicationの中
application
                        読込 べ
                         みむき
    controllers

    views
                         範囲
    modules
              test

              welcome

              login
テストの為に読み込むべき範囲は?

 application
                         applicationの中


テストをしたい
     controllers         modulesの中

     views



ファイル全て
  modules
               test

               welcome

               login
テストの為に読み込むべき範囲は?

 application
                         applicationの中

新たにコードを書き、作る
     controllers         modulesの中

     views
 心配なところ。
   modules
               test

               welcome

               login
applecation以下
 のファイル全て
ためしてみる



TRY
welcomeモジュール
        をテスト
 modules
   welcome           テストを
                    書いてみる。
      controllers

      models

           model_welcome.php
ブラウザで確認
Test Name           [Welcome !!!]って返事してね♪

Test Datatype      String

Expected Datatype   String

Result              Passed

File Name           /var/www/html/system/application/modules/test/controllers/test.php

Line Number         122
Test N ame              [Welcome !!!]っ て返事 してね♪

Test Da ta ty pe        String

Expected Dat at ype     String

R esult                 Passed

F ile Name              /va r/www/html/system/application/modules/test/co

L ine N umber           122



File Name  Line Number
テストを書いたファイルとテストが書かれた行数
あまり意味がない!
Test N ame              [Welcome !!!]っ て返事 してね♪

Test Da ta ty pe        String

Expected Dat at ype     String

R esult                 Passed

F ile Name              /va r/www/html/system/application/modules/test/co

L ine N umber           122



File Name  Line Number
テストを書いたファイルとテストが書かれた行数
何をテストしたのか?
が後でわからない
ちょっと困る。
(1)テストの名前
(2)モジュール
(3)クラス
(4)メソッド
(5)パラメータ
(6)説明とかコメント
情報をいれて置ける場所?

echo $this-unit-run(
   ‘Welcome !!!’,
    $test_result,
    $test_name
);
$test_name
テストの名前にがんばってもらう。
$test_name[’name’]       = ‘テストの名前’;
$test_name[’module’]     = ‘モジュールの名前’;
$test_name[’type’]       = ‘タイプ’;
$test_name[’class’]      = ‘クラス名’;
$test_name[’function’]   = ‘メソッド名’;
$test_name[’param’]      = ‘パラメータ’;
$test_name[’memo’]       = ‘説明とかコメント’;
見やすいようにテーブルタグで装飾
Name             [Welcome !!!]って返事してね♪

                                                 M o d u le       Welcome

                                                 c la s s         model_welcome

                                                 f u n c t io n   get_welcme()
Test Name
                                                 p a ra m         なし

                                                 m e m o         説明、メモなど


Test Datatype        String

Ex pected
Da tatype













String

Result










































Pa ssed

Fil e
Name



































/v ar/w ww/h tml/system/application/modu les/test/co ntrol lers/test.ph p

Lin e
Nu mber 



























122


       テストの名前ががんばりました。
その後
 やっちゃったこと、つくっちゃったもの話
実際に今うごいてる、テストモジュールの姿。
  ご意見などいただけるとうれしいです。
今後の課題
やりたいこと・やらないといけないと思うこと
今回の資料
 ねこげっとぷれす
 http://pneskin2.nekoget.com/press/

 testモジュールのソースコード
 DLできるようにします(_)






参考にさせていただいたサイトのURL

                                                                


    CodeIgniter本家
Wiki



http://codeigniter.com/wiki/
 modular-extensions








http://code.google.com/p/modular-extensions-php5/
 ヌル日記さま  


  http://d.hatena.ne.jp/dix3/20090828
 Usagi
Projtectさま  http://usagi-project.org/




MyNETS2公開SVN









http://usagi-project.org/svn/public/branches/MyNETS2/

 CIUnit
(fooStack)さま


http://www.foostack.com/foostack/
 Ellis
Lab,incさま  
 http://ellislab.com/

More Related Content

What's hot (20)

KEY
FuelPHPをさわってみて
Sotaro Omura
 
PDF
10分でわかるFuelPHP @ 2011/12
kenjis
 
PDF
実"戦"CakePHP Plugin
Kenichirou Oyama
 
PDF
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
 
PDF
.htaccessによるリダイレクト徹底解説
Cherry Pie Web
 
PPTX
php and sapi and zendengine2 and...
do_aki
 
PDF
Vue入門
Takeo Noda
 
PDF
はじめての FuelPHP
Sho A
 
PDF
FuelPHPで3種のprofilerを使ってみた
Katsuhiro Miura
 
PDF
20091030cakephphandson 01
Yusuke Ando
 
PDF
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
 
PDF
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
 
KEY
EC-CUBEプラグイン講義
ria1201
 
KEY
あらためてPHP5.3
Masashi Shinbara
 
PPTX
php-src の歩き方
do_aki
 
PPTX
PHP AST 徹底解説
do_aki
 
PDF
Phpstudy44 Zend Frameworkが抱えている問題は多い。
sasezaki
 
PDF
最近の PHP の話
y-uti
 
PDF
PHPの今とこれから2014
Rui Hirokawa
 
PPTX
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
Mika Kane
 
FuelPHPをさわってみて
Sotaro Omura
 
10分でわかるFuelPHP @ 2011/12
kenjis
 
実"戦"CakePHP Plugin
Kenichirou Oyama
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
 
.htaccessによるリダイレクト徹底解説
Cherry Pie Web
 
php and sapi and zendengine2 and...
do_aki
 
Vue入門
Takeo Noda
 
はじめての FuelPHP
Sho A
 
FuelPHPで3種のprofilerを使ってみた
Katsuhiro Miura
 
20091030cakephphandson 01
Yusuke Ando
 
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
 
EC-CUBEプラグイン講義
ria1201
 
あらためてPHP5.3
Masashi Shinbara
 
php-src の歩き方
do_aki
 
PHP AST 徹底解説
do_aki
 
Phpstudy44 Zend Frameworkが抱えている問題は多い。
sasezaki
 
最近の PHP の話
y-uti
 
PHPの今とこれから2014
Rui Hirokawa
 
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
Mika Kane
 

Viewers also liked (17)

PDF
PHPUnitでリファクタリング
Takako Miyagawa
 
PDF
Codeigniter3フレームアップデート
tomohiro kitaura
 
PDF
Code igniterを初めて使うときにはまった4つのポイント
noldor
 
PPTX
PHPCON fukuoka 2015 CodeIgniter update
Takako Miyagawa
 
PPTX
CodeIgniterのライセンスについて
Takako Miyagawa
 
PPT
Dependency management in PHP & ZendFramework 2
Kirill Chebunin
 
PPT
PHP buildpackでhackとphalconが動いた件について
健治郎 安井
 
PDF
Yet another use of Phalcon
Yuji Iwai
 
PPTX
受託開発のPhalcon
Masatoshi Hiraoka
 
PPTX
3流プログラマーから見たPhalconとWISP
YamaYamamoto
 
PPTX
Phalcon勉強会資料
Yuji Otani
 
PDF
Phalcon + AngularJSで作る動画プラットフォーム
ryo-utsunomiya
 
PDF
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Hidenori Goto
 
PDF
はじめてのSymfony2
Tomohiro MITSUMUNE
 
PDF
Symfony2でMongoDBと仲良くする方法
Koji Iwazaki
 
PDF
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf Conference
 
PDF
Zend四十八手シリーズ Zend_Cache Zend_Paginator
Yusuke Ando
 
PHPUnitでリファクタリング
Takako Miyagawa
 
Codeigniter3フレームアップデート
tomohiro kitaura
 
Code igniterを初めて使うときにはまった4つのポイント
noldor
 
PHPCON fukuoka 2015 CodeIgniter update
Takako Miyagawa
 
CodeIgniterのライセンスについて
Takako Miyagawa
 
Dependency management in PHP & ZendFramework 2
Kirill Chebunin
 
PHP buildpackでhackとphalconが動いた件について
健治郎 安井
 
Yet another use of Phalcon
Yuji Iwai
 
受託開発のPhalcon
Masatoshi Hiraoka
 
3流プログラマーから見たPhalconとWISP
YamaYamamoto
 
Phalcon勉強会資料
Yuji Otani
 
Phalcon + AngularJSで作る動画プラットフォーム
ryo-utsunomiya
 
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Hidenori Goto
 
はじめてのSymfony2
Tomohiro MITSUMUNE
 
Symfony2でMongoDBと仲良くする方法
Koji Iwazaki
 
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf Conference
 
Zend四十八手シリーズ Zend_Cache Zend_Paginator
Yusuke Ando
 
Ad

Similar to PHP勉強会 #51 (20)

PDF
CodeIgniter 〜 2008年大躍進のPHPフレームワーク
kenjis
 
PDF
CodeIgniterによるPhwittr
kenjis
 
PDF
CodeIgniter東京勉強会 2011.05.14
Takako Miyagawa
 
PDF
2011 PHPカンファレンス関西 懇親会LT
Takako Miyagawa
 
PDF
CodeIgniter Con Tokyo 2011 資料
Takako Miyagawa
 
PDF
Php勉強会資料20090629
Takako Miyagawa
 
PDF
PHPフレームワーク入門
Sho A
 
ODP
Ci tutorial
Kazuaki Ueda
 
PDF
Weeklycms20120218
Yoshi Sakai
 
PDF
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
 
PDF
Code ignitertalk 01
Takako Miyagawa
 
PDF
PHPカンファレンス関西 2011
Takako Miyagawa
 
PDF
はじめてのMercurial/Bitbucket その2
kenjis
 
PDF
Nds#24 単体テスト
Kazumune Katagiri
 
PDF
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
miso- soup3
 
PDF
WebAPIではじめるphp入門
Hiroaki Murayama
 
PPT
Code Igniterについて
Keita Ojima
 
PDF
20091030cakephphandson 02
Yusuke Ando
 
PDF
関西アンカンファレンス CodeIgniter CMS
Fumito Mizuno
 
KEY
EC-CUBE + PHPUnit で 実践テスト駆動開発
Kentaro Ohkouchi
 
CodeIgniter 〜 2008年大躍進のPHPフレームワーク
kenjis
 
CodeIgniterによるPhwittr
kenjis
 
CodeIgniter東京勉強会 2011.05.14
Takako Miyagawa
 
2011 PHPカンファレンス関西 懇親会LT
Takako Miyagawa
 
CodeIgniter Con Tokyo 2011 資料
Takako Miyagawa
 
Php勉強会資料20090629
Takako Miyagawa
 
PHPフレームワーク入門
Sho A
 
Ci tutorial
Kazuaki Ueda
 
Weeklycms20120218
Yoshi Sakai
 
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
 
Code ignitertalk 01
Takako Miyagawa
 
PHPカンファレンス関西 2011
Takako Miyagawa
 
はじめてのMercurial/Bitbucket その2
kenjis
 
Nds#24 単体テスト
Kazumune Katagiri
 
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
miso- soup3
 
WebAPIではじめるphp入門
Hiroaki Murayama
 
Code Igniterについて
Keita Ojima
 
20091030cakephphandson 02
Yusuke Ando
 
関西アンカンファレンス CodeIgniter CMS
Fumito Mizuno
 
EC-CUBE + PHPUnit で 実践テスト駆動開発
Kentaro Ohkouchi
 
Ad

More from Takako Miyagawa (14)

PPTX
OmegaTでドキュメント翻訳
Takako Miyagawa
 
PPTX
CodeIgniter4 PHPCon 2016
Takako Miyagawa
 
PPTX
Idcfクラウド 初心者の事始め(2)資料
Takako Miyagawa
 
PPTX
CodeIgniter4 (PHPカンファレンス関西2016 懇親会LT)
Takako Miyagawa
 
PPTX
Idcfクラウド 初心者の事始め
Takako Miyagawa
 
PPTX
もっとドキュメントが日本語になりますように
Takako Miyagawa
 
PDF
Fuelphp & codeigniterユーザの集い
Takako Miyagawa
 
PDF
Net commons3 開発環境
Takako Miyagawa
 
PDF
最近のCodeIgniter 2014.06.19
Takako Miyagawa
 
PDF
Net commons3 研究会 2014 0616
Takako Miyagawa
 
PDF
gitを使って、レポジトリの一部抽出forkしてみました
Takako Miyagawa
 
PDF
Bear.sunday meetup #2 自己紹介LT
Takako Miyagawa
 
PDF
phpmatsuri2013 LT大会 資料
Takako Miyagawa
 
PDF
PHPMATSURI2011 LT大会
Takako Miyagawa
 
OmegaTでドキュメント翻訳
Takako Miyagawa
 
CodeIgniter4 PHPCon 2016
Takako Miyagawa
 
Idcfクラウド 初心者の事始め(2)資料
Takako Miyagawa
 
CodeIgniter4 (PHPカンファレンス関西2016 懇親会LT)
Takako Miyagawa
 
Idcfクラウド 初心者の事始め
Takako Miyagawa
 
もっとドキュメントが日本語になりますように
Takako Miyagawa
 
Fuelphp & codeigniterユーザの集い
Takako Miyagawa
 
Net commons3 開発環境
Takako Miyagawa
 
最近のCodeIgniter 2014.06.19
Takako Miyagawa
 
Net commons3 研究会 2014 0616
Takako Miyagawa
 
gitを使って、レポジトリの一部抽出forkしてみました
Takako Miyagawa
 
Bear.sunday meetup #2 自己紹介LT
Takako Miyagawa
 
phpmatsuri2013 LT大会 資料
Takako Miyagawa
 
PHPMATSURI2011 LT大会
Takako Miyagawa
 

PHP勉強会 #51