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/

PHP勉強会 #51