php勉強会 #51
TRANSCRIPT
ネコネットデザイン事務所 宮川 貴子(NEKOGET)
Before PHP勉強会 51
HMVCでテストモジュールを 作ってみましたの巻
自己紹介NAME:宮川 貴子 NICK : NEKOGET WORK:ネコネットデザイン事務所 フリーランスで活動中(お仕事募集中) XHTML,CSS,イラスト製作をしたり PHPでコードを書いたりしています。
NEKOGET
お題・CodeIgniterとは? ・moduler extensionの紹介 ・テストモジュールを作ってみたよ。
CodeIgniter
[コードイグナイター]【読み】
CodeIgniter
Model View Controller
デザインパターン
流れ
FLOW(NEKOGETの勝手な解釈としてのそれ)
Model
ControllerView
Library
Output
Load
処理のおおまかな流れ
Model
Controller
View
Output
Loadhook
hook ポイントで、 処理を差し込む
Active Record テーブル名に プレフィックスを設定
すべての値は 自動的にエスケープ! 安全なクエリを生成します。
Active Record
データベース構造
セッションの保存にデータベースを使う場合 格納テーブルの構造が固定
縛りは緩やか
本題
H M V C モジュール機構用ライブラリ
application
controllers
views
標準のファイル構造
config
librarys
application
controllers
views
複数のController
複数のC ontroller view
標準のファイル構造
モジュール化されたのファイル構造
application
controllers
views
modules
welcomecontrollers
views
m odules が追加
モジュール化によって
機 能 を グ ル ー プ 化 することができる。
分 業 が簡単
あなたと私の作業は、フォルダが違う
迷 子 にならない
全体の中から探さない。モジュールという地図がある
Moduler extension HMVC
�http://codeigniter.com/wiki/Modular_Extensions_-_HMVC
CodeIgniter WIKI wiredesignzさん という方が、開発を されています。
ニュージーランドの人
Moduler extension
Moduler extension
http://code.google.com/p/modular-extensions-php5/
G o o g le C o d e で開発中の コードが公開 されてします。
CodeIgniter1.7.2
Moduler extension
組み込んでみました
WORK FLOW作業の流れ
http://codeigniter.com/wiki/Modular_Extensions_-_HMVC
WIKIページにアクセス
�File:modular extensions 5222.zip (P H P 5 only)をダウンロード
解凍したファイルを設置
/system/application/libraries/
Controller.php Modules.php MY_Router.php
モジュールフォルダを作成
controllers
views
modules
/system/application/
m odules を作成
Welcomeモジュールを作成
welcome
modules/system/application/
W elcom e モジュール を作成
controllers
views
models
config
Welcomeモジュールへ移動
welcome
modules/system/application/
controllers
views
welcome.php
welcome_message.php
w elcom e.php application/controllers/ から移動
�
WORK END作業終了
動作確認
設置したURLにアクセス
確認の為、 アイコン画像を 追加しています。
application/modules/welcome/以 以 以 以 以 以 以 以 以以 以 以 以 以 以 以 以 OK
テスト組み込み済みCodeIgniterでの
application
controllers
views
modules
testcontrollers
views
テ ス ト 用
モ ジ ュ ー ル
を作ってみたよ
テスト用のモジュールでテストを書く。
application
controllers
views
modulestest
welcome
applicationの中
login
読み込むべき 範囲
テストの為に読み込むべき範囲は?
application
controllers
views
modulestest
welcome
applicationの中 modulesの中
login
テストをしたい ファイル全て
テストの為に読み込むべき範囲は?
application
controllers
views
modulestest
welcome
applicationの中 modulesの中
login
新たにコードを書き、作る 心配なところ。
applecation以下 のファイル全て
TRYためしてみる
modules
welcomecontrollers
models
model_welcome.php
テストを 書いてみる。
welcomeモジュール をテスト
ブラウザで確認
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 Dataty pe String
Expected Datatype String
Result Passed
File Name /var/www/html/system/application/modules/test/controllers/test.php
L ine N umber 122
File Name & Line Numberテストを書いたファイルとテストが書かれた行数
Test N ame [Welcome ! !!]って返事してね♪
Test Dataty pe String
Expected Datatype String
Result Passed
File Name /var/www/html/system/application/modules/test/controllers/test.php
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’] = ‘説明とかコメント’;
見やすいようにテーブルタグで装飾
Test Name
Test Datatype String
Ex pected Datatype Str ing
Result Passed
File Name /var/www/html/system/application/modules/test/control lers/test.php
Line Number 122
Name [Welcome !!!]って返事してね♪
M o d u le Welcome
c la s s model_welcome
f u n c t io n get_welcme()
p a r a m なし
m e m o 説明、メモなど
テストの名前ががんばりました。
その後やっちゃったこと、つくっちゃったもの話
実際に今うごいてる、テストモジュールの姿。 ご意見などいただけるとうれしいです。
今後の課題やりたいこと・やらないといけないと思うこと
今回の資料 ねこげっとぷれす 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/