tomk79 / diffdir
2つのディレクトリを比較し、検出された差分をレポートしてくれるコマンドです。ライブラリとしても利用できます。
Installs: 64
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 3
Language:HTML
pkg:composer/tomk79/diffdir
Requires
- php: >=5.3.0
 - cogpowered/finediff: ^0.3.1
 - phpspec/php-diff: ^1.1
 - tomk79/filesystem: ^1.0
 
Requires (Dev)
- phpunit/phpunit: 4.1.*
 
This package is auto-updated.
Last update: 2025-10-25 17:53:43 UTC
README
diffdir は、2つのディレクトリを比較し、差分のあったファイルを抽出します。
比較した内容は1ファイル1行のCSVファイルに記録され、ファイルごとの差分を確認できるHTMLファイルを出力します。
インストール手順 - Install
diffdir のインストールには composer を使用します。
$ cd {$yourDirectory}
$ composer create-project tomk79/diffdir ./
使い方 - Usage
基本的な使い方 - Basic usage.
$ php ./diffdir.php {$path_dirA} {$path_dirB}
サンプルデータを比較する例 - Example: diff of sample data.
$ php ./diffdir.php ./tests/sample_a/ ./tests/sample_b/
オプション
-o 結果の出力先ディレクトリを指定する
-o オプションをつけて、出力先ディレクトリを指定します。
$ php ./diffdir.php -o ./result_sample/ ./tests/sample_a/ ./tests/sample_b/
--strip-crlf 改行コードを無視する
--strip-crlf オプションをつけて比較すると、改行コードだけの違いは無視されます。
$ php ./diffdir.php --strip-crlf ./tests/sample_a/ ./tests/sample_b/
-v 詳細なメッセージを出力する
-v オプションをつけて比較すると、ターミナル上に処理の詳細が表示されます。
$ php ./diffdir.php -v ./tests/sample_a/ ./tests/sample_b/
-q メッセージを表示しない
-q オプションをつけて比較すると、ターミナル上の表示の一切が隠されます。
$ php ./diffdir.php -q ./tests/sample_a/ ./tests/sample_b/
PHPスクリプト内で使用する
<?php
require_once( './vendor/autoload.php' );
$diffdir = new tomk79\diffdir(
	'/path/before/', // path before
	'/path/after/',  // path after
	array( // options
		'output'=>'/path/path_output_dir/', // -o
		'strip_crlf'=>true, // --strip-crlf
		'verbose'=>true // -v
	)
);
if( $diffdir->is_error() ){
	print 'ERROR.'."\n";
	var_dump( $diffdir->get_errors() );
}else{
	print 'success.'."\n";
	print ''."\n";
	print 'see: '.$diffdir->get_output_dir()."\n";
}
ライセンス - License
MIT License
作者 - Author
- (C)Tomoya Koyanagi tomk79@gmail.com
 - website: http://www.pxt.jp/
 - Twitter: @tomk79 http://twitter.com/tomk79/
 
付録 - Appendix
composer のインストール
composer のインストール方法について
詳しくは composerの公式サイト(英語) を参照してください。
下記は公式サイトからの抜粋です。参考までに。
Macの方
Mac の方は、次のコマンドでグローバルインストールできます。
$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer
Windowsの方
Windows の方は、GUIインストーラ Composer-Setup.exe が用意されています。 次のコマンドでもインストールできますので、お好みの方法でインストールしてください。
$ cd C:\bin
$ php -r "readfile('https://getcomposer.org/installer');" | php
開発者向け情報 - for Developer
テスト - Test
$ cd (project directory)
$ ./vendor/phpunit/phpunit/phpunit php/tests/diffdirTest