SlideShare a Scribd company logo
1 of 45
Download to read offline
オープンソースカンファレンス
2011 Kyoto

まっつんチャレンジ OSC 出張編

45 分でわかる
PHP+Eclipse による
テスト駆動開発環境の構築
          Piece Project
          松藤秀治 matsufuji2008@gmail.com

           
まっつん

   MakeGood 開発者
   Twitter @matsu_hide
まっつんチャレンジ
   次世代の技術やあまり知られていないが
    高度な技術を紹介
   「チャレンジ」なので結構無謀
   一部で評価



    http://iteman.jp/blog/
Piece Framework

   PHP のアプリケーションフレームワーク
   オープンソースソフトウェア
        New BSD License
        Eclipse Public License
今日の話

   TDD のための環境の構築
   なぜ環境構築の話をしようと思ったか
   スライドは公開します
開発環境と本番環境

   本番環境の多くは Linux
   開発環境も Linux にしよう
   今日は Windows で話します
基本方針
   楽しんで作りましょう
   オールインワン系は使用しない
   OS への依存
      Windows
        → なるべくインストーラのないもの
      Linux


        → パッケージングシステムを使う
   パスは短めに
システムワイドとプロジェクトローカル




ライブラリ (PEAR) 環境をプロジェクトに閉
じ込め、アップグレードや削除の影響を他の
プロジェクトに与えないようにする
ディレクトリ構成 ( 例 )
今回の環境
   Windows XP SP3
   PHP 5.3.6
   Xdebug 2.1.1
   Eclipse Indigo (3.7.0)
   PDT 3.0
   MakeGood 1.6.0
   PHPUnit 3.5.14
手順
 PHP のインストール・設定
Xdebug のインストール・設定
 Eclipse のインストール
 PHP プロジェクトの作成
  PEAR のインストール
 PHPUnit のインストール
PDT, MakeGood の設定
PHP

   VC6 or VC9, スレッドセーフ
    → HTTP サーバ、動作に合わせて選択
   5.3.6 からは VC9 のみ
php.ini
   php.ini-development を使用
   ~/site-php/config に配置
   Eclipse 用と HTTP サーバ用とに分ける
    → PDT は追加の設定ファイルを読み込まな
    いため、 Eclipse 用の php.ini にはロー
    ドするエクステンションをすべて記述する必
    要がある
手順
 PHP のインストール・設定
Xdebug のインストール・設定
 Eclipse のインストール
 PHP プロジェクトの作成
  PEAR のインストール
 PHPUnit のインストール
PDT, MakeGood の設定
Xdebug
      PHP と同じビルド環境を選ぶ
      Windows はダウンロードするだけ
      ~/site-php/ext に配置
      ~/site-php/config/php.ini の設定
[xdebug]
zend_extension=C:/cygwin/home/matsu/site-php/ext/php_xdebug-2.1.1-5.3-vc9.dll
xdebug.remote_port=9000
手順
 PHP のインストール・設定
Xdebug のインストール・設定
 Eclipse のインストール
 PHP プロジェクトの作成
  PEAR のインストール
 PHPUnit のインストール
PDT, MakeGood の設定
Eclipse

   Pleiades は使わない
   Indigo(3.7) から PDT パッケージがなく
    なったので Classic(SDK) パッケージを
    使用する
ワークスペース

   ワークスペースは Eclipse のバージョンご
    とに作り直す
   ワークスペースの命名規則の例
    →パッケージ+バージョン (sdk-3.7.0)
   プロジェクトはワークスペースにコピーしない
Marketplace Client
[Help]→[Install New Software...]


                    [--All Available
                    Sites--] を選択する




                    “market” と入力する
PDT
[Help]→[Install New Software...]


                    [--All Available
                    Sites--] を選択する




                    “php” と入力する
MakeGood
[Help]→[Eclipse Markeplace...]


                     “makegood” と入力する




                     葉っぱのアイコンの
                     MakeGood をインストールす
                     る
そのほかのプラグイン

   必要に応じてプラグインをインストール
        EGit
手順
 PHP のインストール・設定
Xdebug のインストール・設定
 Eclipse のインストール
 PHP プロジェクトの作成
  PEAR のインストール
 PHPUnit のインストール
PDT, MakeGood の設定
PHP プロジェクトの作成
[File]→[New]→[PHP Project...]



                   ワークスペースにプロジェクトを配
                   置しないように、 [Create
                   project at existing
                   location (from existing
                   source)] を選択する
手順
 PHP のインストール・設定
Xdebug のインストール・設定
 Eclipse のインストール
 PHP プロジェクトの作成
  PEAR のインストール
 PHPUnit のインストール
PDT, MakeGood の設定
プロジェクトローカルの PEAR 環境
ライブラリのアップグレードや削除の影響を他
のプロジェクトに与えないようにするためにプ
ロジェクト固有の PEAR 環境を構築する
1.vendor ディレクトリを作成する
2.PHP のディレクトリから以下を vendor にコピーする
    ・ go-pear.bat
    ・ pear( ディレクトリ )
3. コマンドラインで go-pear.bat を実行する
4. 途中システムかローカルかのいずれにインストールする
  かを問い合わせてくるので [local] を選ぶ
プロジェクトローカルの PEAR 環境

   フルパスが埋め込まれているため、ほかの環
    境ではメンテナンスできない
   解決方法
    ITEMAN Blog
    「プロジェクトローカルな PEAR 環境を構築
    する」
手順
 PHP のインストール・設定
Xdebug のインストール・設定
 Eclipse のインストール
 PHP プロジェクトの作成
  PEAR のインストール
 PHPUnit のインストール
PDT, MakeGood の設定
PHPUnit

   PEAR でインストール
   インストール方法はドキュメントを参照
   ドキュメントに従っても環境によってはうまく
    インストールできない場合があるが、メッセー
    ジに従って依存するライブラリをインストール
    していけば問題ない
手順
 PHP のインストール・設定
Xdebug のインストール・設定
 Eclipse のインストール
 PHP プロジェクトの作成
  PEAR のインストール
 PHPUnit のインストール
PDT, MakeGood の設定
PDT の実行環境とデバッガ

   PDT ではひとつの実行環境に対してひとつ
    のデバッガを指定する
   デバッガには Xdebug か Zend
    Debugger を指定できる
   デフォルトの設定としてデバッガとそのデバッ
    ガを使用できる実行環境を設定する
テスト環境の構築
ResultSqure をダブルクリックして
MakeGood ビューを開く




ResultSqure       MakeGood ビュー
テスト環境の構築
テストを実行できない場合、 MakeGood ビュー
にその理由が表示されるので、そのメッセージに
従うと比較的容易に環境を構築できる
テスト環境の構築

   PHP の実行環境を設定する
   [Window]→[Preferences...]
   [PHP]→[PHP Executables]
   [Add...] ボタンで実行環境を追加する
テスト環境の構築
PHP の実行ファイル、設定ファイル、 SAPI のタ
イプ、デバッガをそれぞれ設定する
テスト環境の構築

   使用するデバッガを選択する
   [Window]→[Preferences...]
   [PHP]→[PHP Debug]
テスト環境の構築
デフォルトのデバッガと使用する実行環境を
選択する
テスト環境の構築

   MakeGood の設定を行う
   プロジェクトを右クリックして
    [Properties...]
   [MakeGood]
テスト環境の構築
テスティングフレームワークやプリロードスク
リプト、テストディレクトリを設定する
テストの実行
まとめ

   楽しんで作りましょう
   オールインワン系は使用しない
   常に工夫する
   Linux を使おう
   MakeGood を使おう
Twitter
   @piece_framework
      Piece Framework のニュース
   @iteman
      iteman
   @matsu_hide
        まっつん
参考サイト
   PHP for Windows
    http://windows.php.net/
   Xdebug
    http://xdebug.org/
   Eclipse
    http://eclipse.org/
   PHPUnit のインストール
    http://www.phpunit.de/manual/3.5/j
    a/installation.html
参考サイト
   MakeGood
    http://redmine.piece-
    framework.com/projects/makegood
   ITEMAN Blog 「プロジェクトローカルな PEAR
    環境を構築する」
    http://iteman.jp/blog/2009/04/pear
    -1.html
関連サイト
   GitHub
        http://github.com/piece
   Piece Framework プロダクトページ
        http://redmine.piece-framework.com
   MakeGood プロダウトページ
        http://redmine.piece-
          framework.com/projects/makegood

More Related Content

What's hot

Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)Daichi Kitamura
 
C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)
C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)
C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)takots
 
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShiftExploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShiftEtsuji Nakai
 
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門Hori Tasuku
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境Fumihito Yokoyama
 
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト書こう! 使おう! 単体テスト
書こう! 使おう! 単体テストryohji ikebe
 
wxPython入門(大阪Pythonユーザの集まり2014/03)
wxPython入門(大阪Pythonユーザの集まり2014/03)wxPython入門(大阪Pythonユーザの集まり2014/03)
wxPython入門(大阪Pythonユーザの集まり2014/03)泰 増田
 
.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~Fujio Kojima
 
OPNFV Handson Tokyo #1
OPNFV Handson Tokyo #1OPNFV Handson Tokyo #1
OPNFV Handson Tokyo #1Mibu Ryota
 
OPNFVのコンポーネントと調べ方
OPNFVのコンポーネントと調べ方OPNFVのコンポーネントと調べ方
OPNFVのコンポーネントと調べ方Mibu Ryota
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念Masahito Zembutsu
 
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集Wataru NOGUCHI
 
Docker + Checkpoint/Restore
Docker + Checkpoint/RestoreDocker + Checkpoint/Restore
Docker + Checkpoint/Restorekawamuray
 
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~CubedKachi
 
Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築Recruit Technologies
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門Tsukasa Kato
 

What's hot (20)

Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
 
C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)
C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)
C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)
 
Pythonでゲーム作る
Pythonでゲーム作るPythonでゲーム作る
Pythonでゲーム作る
 
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShiftExploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
 
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
 
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
 
wxPython入門(大阪Pythonユーザの集まり2014/03)
wxPython入門(大阪Pythonユーザの集まり2014/03)wxPython入門(大阪Pythonユーザの集まり2014/03)
wxPython入門(大阪Pythonユーザの集まり2014/03)
 
.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~
 
OPNFV Handson Tokyo #1
OPNFV Handson Tokyo #1OPNFV Handson Tokyo #1
OPNFV Handson Tokyo #1
 
Niigata.pm #1
Niigata.pm #1Niigata.pm #1
Niigata.pm #1
 
OPNFVのコンポーネントと調べ方
OPNFVのコンポーネントと調べ方OPNFVのコンポーネントと調べ方
OPNFVのコンポーネントと調べ方
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念
 
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
 
Docker入門
Docker入門Docker入門
Docker入門
 
Docker + Checkpoint/Restore
Docker + Checkpoint/RestoreDocker + Checkpoint/Restore
Docker + Checkpoint/Restore
 
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
 
Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
 

Similar to まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築

Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Takako Miyagawa
 
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテストEclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテストAtsuhiro Kubo
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
vscode pipenv docker
vscode pipenv dockervscode pipenv docker
vscode pipenv dockerikdysfm
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法Naruto TAKAHASHI
 
Houdini 製品概要
Houdini 製品概要 Houdini 製品概要
Houdini 製品概要 Ken Taki
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をAtsuhiro Kubo
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーションYuta Matsumura
 
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota WatabeInsight Technology, Inc.
 
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストEclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストAtsuhiro Kubo
 
Android勉強会 1
Android勉強会 1Android勉強会 1
Android勉強会 1shotaueda3
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングRansui Iso
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi昌桓 李
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud AutomationEtsuji Nakai
 

Similar to まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築 (20)

Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
 
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
 
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテストEclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテスト
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
ZendStudioのご紹介
ZendStudioのご紹介ZendStudioのご紹介
ZendStudioのご紹介
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
vscode pipenv docker
vscode pipenv dockervscode pipenv docker
vscode pipenv docker
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
 
Houdini 製品概要
Houdini 製品概要 Houdini 製品概要
Houdini 製品概要
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
 
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
 
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストEclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
 
Android勉強会 1
Android勉強会 1Android勉強会 1
Android勉強会 1
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
Jetson x Azure ハンズオン DeepStream With Azure IoT 事前準備
Jetson x Azure ハンズオン DeepStream With Azure IoT 事前準備Jetson x Azure ハンズオン DeepStream With Azure IoT 事前準備
Jetson x Azure ハンズオン DeepStream With Azure IoT 事前準備
 
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
 

まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築