Upload
hiraku-nakano
View
1.022
Download
1
Embed Size (px)
Citation preview
自己紹介
• 中野 拓 (@Hiraku)
• 口癖「composerが遅い」
• http://packagist.jp
• https://github.com/hirak/prestissimo
globalインストールはよくない
• 「phpunit」「phpcs」というコマンドがglobalにある前提で開発すると…
• 場合によっては特定のphpunitバージョンを要求したりややこしい
• 純粋に開発環境セットアップが面倒
npmの場合• localインストールする文化がある
• npm install --save-dev xxxxxxx
• 実行するときはnpm test, npm run xxxxx
• http://qiita.com/Jxck_/items/efaff21b977ddc782971
composerでnpmを真似る
• composer require --dev phpunit/phpunit
• composer.jsonのscriptsにコマンドを生やす
scripts: { test: phpunit --colors=always, lint: phpcs, fmt: phpcbf, doc: php bin/apigen.phar generate, metrics: php bin/phpmetrics.phar --report-html=artifacts/metrics.html src/},
某言語のサブコマンドを真似る
$ composer test #phpunit$ composer lint #phpcs$ composer fmt #phpcbf$ composer doc #apigen$ composer metrics #phpmetrics
サブコマンドのよさ
• composer listに出てくる
• vendor/bin/... って打つより綺麗
• vendor/bin/は設定で変更できるので、ベタ書きすべきでない
• 開発者はcomposer installするだけで全てのツールが使える
コマンド別の設定
• phpunit.xml.dist を作成
• .gitignoreでphpunit.xmlを無視
• 開発者がphpunit.xmlを作って好きな設定でphpunitを実行できる余地を残す
pharとrequire-dev
• phar版を配布しているツールは多い
• phpunit.phar, phpcs.phar, ...
• ダウンロードしてphp phpunit.pharすれば使えて便利
• どっちを使うべき?
比較
composer phar
• リポジトリが汚れない • composer.jsonだけでリポジトリが完結する美しさ
• 依存が汚れない • インストールが楽
• インストールできない可能性がある
• 依存が汚れる• ライセンス違反のおそれ
require-devの悩み
• ツールのrequireしているライブラリが被る symfony/console使いすぎ
• apigenとphpmetricsを同時にインストール出来ない、とかPHPバージョンによっては起こりえる
• composer install --no-dev した時に消える 問題