PHPUnit, Eclipse

PHPUnitがまあったっく身につきません。
がんばりましょう。はい。

今更なComposerの基本的な使い方 (2015/12/14)
https://soarcode.jp/posts/173


Composerインストール手順(Windows) - Qiita
qiita.com


PHPの開発環境を構築する(その4): PHPUnit+MakeGoodを使う
www.yujakudo.com

Composerによるツールのインストール:PHP開発環境2015(その1)
www.yujakudo.com


Eclipse/PDT から PHPUnit/CIUnit のテストを自動実行する
d.hatena.ne.jp

Eclipseプラグイン MakeGood導入手順
kazzn.hatenablog.com

Eclipse PDT + MakeGood でも SSH 経由で PHPUnit を実行する
ngyuki.hatenablog.com

PHPUnitを使う上で押さえておきたい知識
www.dn-web64.com

PHPUnit マニュアル
PHPUnit マニュアル

マウス・キーボード共有

Synergyって有料ソフトウェアになってたのね。


Mouse Without Borders
forest.watch.impress.co.jp

シャレオツで楽な開発環境を整えよう

何度も失敗してきた文脈ですが、整えていきましょう。

要素

  1. エディタ/IDE
  2. 開発サーバ/ストレージ
  3. ソースコード管理
  4. デバッガ
  5. 単体テスト
  6. 回帰テスト

要点

  1. ファイル変更→即ブラウザチェック したい。FTP,SCPの操作を挟みたくない。
  2. PHPUnitちゃんと使いたい。入れればいいってものでもないので、流儀を体得。
エディタ/IDE

(解決済み) Eclipseという結論になった
Eclipse 4.7 Oxygen 新機能 30+ / Java 9 を試そう! - Qiita

回帰テスト

(解決済み)FirefoxESR + SeleniumIDE

ストレージ

NFS, webDAV, SMB
NFS: Windows7HomePremiumだとめぼしいNFSクライアントが無い。
WebDAV:
⇒SMB:

デバッガ

eclipseでデバッガを使う
⇒ がEclipse PDTプラグインを使う想定なので、XDebugを使っていきたい。
https://liginc.co.jp/224022

ソースコード管理

GitかSVN (いまだSVNの人)

Brackets

AdobeBrackets、シャレオツですし貧弱なマシンでも動いてくれそうなところがいいですよね。
動くんでしょうか。

emacs keybinds

少なくともemacsキーバインドくらいできて欲しいので調べる。
qiita.com

オッ
github.com

プロジェクト管理

フォルダをドラッグしてBracketsにドロップすると認識される。


結論

いいっすわ、俺、やっぱEclipseで。

PHPのジェネレータ

lab.adn-mobasia.net

アッ (活用するの忘れてた感)


これを! (↓↓Iteratorインタフェースの実装例↓↓)

<?php
// ファイルの行データの読み込みクラス
class FileLineIterator implements Iterator {
    private $fp = null;
    private $line = null;
 
    public function __construct($filepath) {
        $this->fp = fopen($filepath, "rb");
    }
    public function __destruct() {
        @fclose($this->fp);
    }
    public function current() {
        return $this->line;
    }
    public function key() {
        throw new BadFunctionCallException();
    }
    public function next() {
        $this->line = fgets($this->fp);
        return $this->line;
    }
    public function rewind() {
        return rewind($this->fp);
    }
    public function valid() {
        return (!is_null($this->fp) && $this->line !== false);
    }
}
 
// 処理の開始
$num = 1;
$iterator = new FileLineIterator($argv[1]);
foreach($iterator as $line) {
    // ここで行番号を出力する
    printf("%5d: %s", $num++, $line);
}


こうや!(↓↓yield()↓↓↓)

<?php
// ファイルの行データの読み込み関数
function file_get_lines($filepath) {
    $lines = array();
    $fp = fopen($filepath, "rb");
    while(($line = fgets($fp)) !== false) {
        // yieldキーワードで$lineを都度返却することができる
        yield $line;
    }
    fclose($fp);
}
 
// 処理の開始
$num = 1;
foreach(file_get_lines($argv[1]) as $line) {
    // ここで行番号を出力する
    printf("%5d: %s", $num++, $line);
}


ということです。


でっかい配列変数に展開するとメモリを喰い、Iteratorをimplementすると大げさで遅いし、という事で。
途中結果をreturnして値の供給を続けるやつ。

yield ... 産出する,(利益が)出る, (相手に)屈服する



次のようにも書けるので、foreach()を使った既存の記述も置き換えやすいですね。そうですね。

<?php
// ファイルの行データの読み込み関数
function file_get_lines($filepath) {
    $lines = array();
    $fp = fopen($filepath, "rb");
    while(($line = fgets($fp)) !== false) {
        // yieldキーワードで$lineを都度返却することができる
        yield $line;
    }
    fclose($fp);
}

$f = file_get_lines($argv[1]);

// 処理の開始
$num = 1;
foreach($f as $line) {
    // ここで行番号を出力する
    printf("%5d: %s", $num++, $line);
}

Firefox+Thunderbird::複数プロファイルの同居

www.mozilla.jp


以下2つの方法が提供されていた

  • 同じバージョンのFirefoxThunderbirdを、別のプロファイルで同時に起動したい
  • 複数のバージョンのFirefoxThunderbirdを、併用し、同時に起動したい
#windows7な自分の環境でのプロファイルのパス
C:\Users\(ユーザ名)\AppData\Roaming\Thunderbird\Profiles\(プロファイル名)


というか、私の場合『複数のプロファイルを設定し切り替える』という概念で必要十分だ。
support.mozilla.org

PHPと自動テスト

www.elp.co.jp

www.webprofessional.jp

www.atmarkit.co.jp

blog.asial.co.jp

Selenium方面

Firefox+アドオンだけで動いてくれたSeleniumIDEが、半年くらい(?)前に(Firefox55以降で)死んで以来だが、何か動きは…
qiita.com

WebExtensionsに対応した次世代のGUIツールを作り直すことにした旨を公式ブログで発表しました。
Firefox 55 and Selenium IDE | Official Selenium Blog

アッ ハイ

この機会に、法人向けで機能更新のスピードがゆるやかなFirefox ESRに切り替えてみましょう。
ESRの現行バージョンはFirefox 52ベースで、2018年6月26日までサポートされる予定です。

Firefox ESR、そういうのがあるのか。

通常版との共有は簡単で、インストールディレクトリを通常版のものとは別にすればよい。


FirefoxESR内から検索しても出てこないので、
行って、入れる。動く。フォウ!!