Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Composerを便利に使うために私がやっていること #phperkaigi

hideki kinjyo
March 08, 2024
2.6k

Composerを便利に使うために私がやっていること #phperkaigi

hideki kinjyo

March 08, 2024
Tweet

Transcript

  1. 自己紹介 • 金城秀樹 / きんじょうひでき • GitHub:@o0h / Twitter:@o0h_ •

    好きなFWはCakePHP • アイコンは 美味しい鮭親子丼の写真です • パンフレット記事も寄稿しています! ありがとうございます!
  2. 私の好きな設定項目たち • `sort-packages`: require/require-devの項目を名前順に揃える • `platform`: PHPのランタイムや拡張の情報を上書きする • 例えば「`require` に

    `php:8.2.3` が指定されている」状態の時に、 「PHPStanを実行するCIは、最新のバージョンのPHPを使っている」 • config.platformを書くことで、 「特定のPHP環境で動いているとみなして、install等をしてOK」になる! • ؔ࿈: `--ignore-platform-req=ext-foo` ͰͷґଘνΣοΫແࢹ
  3. 私の好きな設定項目たち • `sort-packages`: require/require-devの項目を名前順に揃える • `platform`: PHPのランタイムや拡張の情報を上書きする • `cache-dir`: Composerのキャッシュ格納先を指定する

    • `optimize-autoloader`/`apcu-autoloader`: autoloadを速くする • オートロード用の静的なクラスマップを作る /キャッシュをAPCuに乗せる。 • optimize〜〜は、`—o` オプションと同等。 dumpが遅くなるので開発時には外したい・・・は、オプションを使った方が◎
  4. 例えば・・・ • `github-oauth`: GItHubのAPIを利用するためのトークンを保持 • `use-parent-dir`: サブディレクトリでComposerコマンドを打ったと きに `No composer.json

    in current directory, do you want to use the one at ***?` と聞かれなく出来る • 自分はfalseにしてる • 他の項目に関しては https://getcomposer.org/doc/06-config.mdを参照!
  5. @stable / @dev • 「雑に最新版をいれる」という時に、 semverの代わりに `@stable` を指定することができる • かなり使い道が限られそう・リスクもあるけれど

    • 公式のFAQで警告される程度にはリスキー(BAD IDEA) https://getcomposer.org/doc/faqs/why-are-unbound-version-constraints-a-bad-idea.md • バージョンが無軌道に上がったりするし、他に巻き込まれて下がったりもする • それを承知できる(?)人なら • comoposer.lockで細かいバージョン管理をしっかり行う前提で • require-devやglobalにいれるツールくらいでなら、 使っても良いんじゃない??という気も
  6. Composer、上手く使って 嬉しいな • 公式ドキュメントの、CLI・configのところは一読をオススメします! • 詳しい情報があるので! • 色々なプラグインも探ってみましょう! • Packagistでタグ検索とかすると良いかも?

    • バージョンアップで良い機能もたくさん入ってくるので、 リリース情報をチェックしましょう! • 2.7で入った `--minimal-changes` オプションとか、私は好きですよ