31歳でPHPUnitを使った僕

31歳でPHPUnitを使った僕

プロローグ
これまでPHPUnitを使ってこなかったけど、少し心配になる部分があったので
PHPUnitを使ってみることにした。
——————————————————————
第一章『インストール』
インストールは
ここ
を読んでやりました。

——————————————————————
第二章『テスト対象のファイル』
Calc.php


------------------------------------------------------------------
第三章『コマンドの実行』
このコマンドを実行する。
「phpunit --skeleton-test Calc」

------------------------------------------------------------------
第四章『テストファイル』
このファイルは第三章のコマンドを実行すると自動的に作られます。
(よく出来てるな~。)
CalcTest.php

class CalcTest extends PHPUnit_Framework_TestCase
{
    /**
     * @var Calc
     */
    protected $object;

    /**
     * Sets up the fixture, for example, opens a network connection.
     * This method is called before a test is executed.
     */
    protected function setUp()
    {
        $this->object = new Calc;
    }

    /**
     * Tears down the fixture, for example, closes a network connection.
     * This method is called after a test is executed.
     */
    protected function tearDown()
    {
    }

    /**
     * @covers Calc::add
     * @todo Implement testAdd().
     */
    public function testAdd()
    {
        // Remove the following lines when you implement this test.
        $this->markTestIncomplete(
          'This test has not been implemented yet.'
        );
    }
}

------------------------------------------------------------------
第五章『書き換える』
testAddメソッドを次のように書き換える。

/**
 * @covers Calc::add
 * @todo Implement testAdd().
 */
public function testAdd()
{
    $this->assertEquals(3, $this->object->add(1, 2));
}

------------------------------------------------------------------
第六章『実行する』
このコマンドを実行する。
「phpunit CalcTest」
PHPUnit 3.6.10 by Sebastian Bergmann.

.

Time: 1 second, Memory: 4.00Mb

OK (1 test, 1 assertion)

------------------------------------------------------------------
第七章『Eclipseから実行したい。』
MakeGoodというのを使えばいいらしいです。

------------------------------------------------------------------
第八章『MakeGoodのインストール』
①ヘルプ→新規ソフトウェアのインストール

②追加ボタンを押します。

③次のように入力します。
名前:「MakeGood」
ロケーション:「http://eclipse.piece-framework.com/」

④以下のようにMakeGoodにチェックをいれます。

⑤あとは使用条件に同意出来ればOKを押してインストール完了です。

------------------------------------------------------------------
第九章『MakeGoodの設定』
①Eclipseの環境設定を開く。

②PHPの実行可能ファイルの設定を開き、追加ボタンをクリックします。

③赤枠部分を環境に応じて入力します。

④PHPのデバッグの設定をします。
以下の赤枠部分を環境に応じて選択します。

------------------------------------------------------------------
第十章『MakeGoodのプロジェクトの設定』
①プロジェクトを右クリックしてプロパティをクリックします。
②インクルードパスを設定します。
 ライブラリーの追加をクリックします。

③次へをクリック

④新規ボタンからダイアログをだして「PHPUnit」と入力

⑤PHPUnitが選択されている状態で外部フォルダーの追加をクリックし、
PHPUnitがインストールされているフォルダを選択

このような状態になります。

⑦PHPUnitにチェックをつけて完了をクリック

⑧「ソース」の項目をクリックして「システムインクルードパスの追加ボタン」をクリックします。

⑨プロパティの「MakeGood」の項目を開き、下にある「追加ボタン」をクリックし、テスト対象のフォルダを追加します。

このようにチェックします。

------------------------------------------------------------------
最終章『実際に使ってみる』
①テストプログラムを右クリックしてメニューを出し、「テストの実行」メニューをクリックします。

②ビューにこのように結果が表示されます。

------------------------------------------------------------------
エピローグ
物語風なのにまったく物語がなかったけど。
やっぱりテストを書く気になれる環境があるのはいいことかな~と思う。

Facebooktwitterlinkedintumblrmail

OSC2012 Nagoya. LT for Business『Roundcubeがいい感じな件』

終わりましたー。スライドアップします(ちょい自粛版)。

『Roundcubeがいい感じな件』のスライド(PDF 4.2MB)

Facebooktwitterlinkedintumblrmail

OSC2012 Nagoya 準備出来!

名古屋っす。OSCっす。
久しぶりの愛知っす。昔2年間くらい一宮に住んでたっす(いらない情報)。

ということでブースの準備が出来ました。

OSCは昨日から開催されてまして今日は2日目ですがブースとウチのセミナー(ついでに私のライトニングトーク)は今日なのでウチの本番は今日からって感じです。

峰松のセミナーは15:10から。
『県庁で大活躍(予定)!OpenCOBOL+Perlで汎用機ダウンサイジングに挑んだワケ』
OSCでは同じタイトルで私(村部)と峰松がセミナーやってますが実は別物です。
私のセミナーに参加されたことがある方もぜひ。
峰松がやるときは技術寄りの内容です(私のときは業務寄り)。

私のほうは今回お昼(12:00〜)にライトニングトークをします。
『【飲食OK】ライトニングトークfor Business』の4番手「Roundcubeがいい感じな件」。
OpenCOBOLではなくWebメールネタです。

ブース、セミナー、ライトニングトーク、よろしくおねがいします〜。

Facebooktwitterlinkedintumblrmail

メモ:CS-Cart勉強会@福岡 〜デザインされたHTMLをテンプレートにする方法〜

CS-Cart勉強会@福岡 〜デザインされたHTMLをテンプレートにする方法〜 に来てます。

デザインしてもらったファイルに合わせてCS-Cartをカスタマイズする方法の勉強会。
落ちこぼれ気味でしたが、理解できた範囲でメモを残しておきます。

編集するファイルの場所を局所化するためにデザイナーさんから受け取ったCSS等を

cs-cart/skins/basic/customer/addons/localization_jp/

にコピーしてその下で作業するのがお勧めとのこと(cs-cartは設置したディレクトリ)。

買い物画面のCSSは

cs-cart/skins/basic/customer/styles.css

別名でバックアップした後に、これも編集ファイルを局所化するために

@import url(‘styles.base.css’);

よりしたのインポート文以外のコードを

cs-cart/skins/basic/customer/addons/localization_jp/styles-css.css

などの別ファイルに分離して、cs-cart/skins/basic/customer/styles.css にて

@import url(‘addons/localization_jp/styles-css.css’);

とインポートするようにする。

以降、CS-CartのCSSの編集はstyles-css.cssに対して行う。

デザイナーが作ってくれたCSSファイルを追加するにはフックの

cs-cart/skins/basic/customer/addons/localization_jp/hooks/index/styles.post.tpl

にて

のように追加して読み込むようにする。

フックを修正したらキャッシュをクリアする。
方法は下記のように&ccを付けて管理画面にアクセス。

http://localhost:8888/cs-cart/admin.php?cc

編集したのに反映されないなぁって時はまずはキャッシュをクリアしてみる。

以降はテンプレート(拡張子tpl)やCSSを地道に編集して合わせていく。

以前は「テンプレートはなるべく編集しないほうがいいですよ」って方針だった
そうですがガシガシ編集していっても結構大丈夫とのことでした。

あと、Smartyの知識はあったほうがいいとのこと。

CS-Cart、素性はよさそうです。

Facebooktwitterlinkedintumblrmail

Japan AWS User Group (JAWS-UG) – Nagasaki勉強会#01 行ってきた

【長崎】Japan AWS User Group (JAWS-UG) – Nagasaki勉強会#01 行って来ました。

いい刺激をうけました。

そして、懇親会から帰って寝て起きたら一緒にいったuchida君はインスタンスあげてました。

はやっ!



なんと記事までまとめてくれてました。この記事の前です。

Japan AWS User Group 長崎勉強会にいってきたので実際に使ってみた!

すばらしい! しかし、なぞの敗北感。

懇親会も楽しかった。後藤さんの誕生日サプライズとかあったり。



それからそれから、バトン(キャップ)を受け取ったお二方。

最後に、今回のヒットtweet!

Facebooktwitterlinkedintumblrmail

Japan AWS User Group 長崎勉強会にいってきたので実際に使ってみた!

①登録方法

以下のサイトに詳しく載っていたので省略

(ちなみに・・、電話の部分すごいと思いました・・。電話とWebが同期してる・・。)

②インスタンスの作り方とサーバ設定

以下のサイトに詳しく載っていたので省略

※ちなみに、AWS Management Console のリンクの場所が右下になってるみたいです。ご注意を。

以下感動ポイント
インスタンスが出来たときちょっと感動・・。
sshで接続できて感動・・。
Apacheがインストール出来て感動・・。
Apacheが起動できて感動・・。

あとMACのsshのコマンドはこうなるみたい
1)秘密鍵のアクセス権変更
chmod 400 ローカルの秘密鍵へのパス
2)sshでアクセス
ssh -i ローカルの秘密鍵へのパス ec2-user@グローバルアドレス

③そして実際に出来たページ

  http://54.248.119.22/

まだ何もないです。

④感想

  この勉強会はAWSを使ってみたくなるような勉強会で楽しかったです。
  (家に帰って早速登録するくらいなので・・・。)

Facebooktwitterlinkedintumblrmail

OSC2012 Tokyo/Spring セミナーのスライド

雨の中セミナーに来てくださったみなさま、ありがとうございました。

使用したスライドを(ネタ成分を削除して)http://www.lancard.com/it-model/technology/の技術資料に追加、公開しました。

よろしかったら見てみて下さい。

Facebooktwitterlinkedintumblrmail

やってきました OSC2012 Tokyo/Spring

準備できました〜。

茶色い物体は長崎では見かけないので買ってみた Dr Pepper。 結構おいしいやん。

スーパーネンドマツ(シッポ付き宇宙人の髪が金色になって逆だってるイメージ)のパワーに
押し流されて急遽キャンセルとなった峰松の席にはカンバン的なものを立ててみました。

新しいiPad片手にでも遊びにきてくださいね(ボクも見たいので)。

明日のセミナーは11時から202教室です。よろしくおねがいします。

Facebooktwitterlinkedintumblrmail

恥ずかしながら PHP + MySQL + シフトJIS でハマりました

「今更こんなことやっちゃうとはなぁ」というたぐいの話です。

mysql_query(“SET NAMES ‘CP932′”, $conn);

とかやっちゃうとMySQLには文字コードを教えてるけどPHPには伝わらないので

mysql_set_charset(‘CP932’);

としてPHPにも教えてあげなさいとバグるぜって話。セキュリティホールにもなります。

シフトJISには文字コード中に\(5C)が含まれる文字があるのでPHPさんがUTF8気分で mysql_real_escape_string すると\が挿入されてバグるわけです。

昔、Rails関係でも SET NAMES ダメ絶対って話を読んだような。UTF8ばかり使っててボケたかね。

詳しくは『SET NAMESが危険な理由のおさらい』に簡潔にまとめてくださってるのでそちらをどうぞ。

Facebooktwitterlinkedintumblrmail

jqGridの設定はsetGridParamで(以下略

他人の褌で相撲を取るような内容ですが、jqGridネタが有ったので少し。
getが有るならsetも(多分)有る、と言うのがプログラムです。

データを読み書きに行くURLを変更したい場合は以下のような感じで

$("#grid").jqGrid('setGridParam', {url:rurl,editurl:surl});

任意にリロードを発生させる必要が有るなら
$("#grid").trigger("reloadGrid");

jqGridは他にもonSortColでソート順をいじる、
onSelectRowで判定後にdatepickerを表示したりさせなかったりcss()で背景色を変えたり、
なんて事も出来ます。

Facebooktwitterlinkedintumblrmail