php勉強会 #51

Post on 14-Jul-2015

2.244 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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/

top related