PHP Conference Japan 2025
レギュラートーク(50分)

50分でComposerを作る <ライブコーディング>

o0h_ きんじょうひでき o0h_
1

ライブコーディングで、"Composerもどき”を作成します。

モチベーション

PHP Conference Japan 2024では、Composerの主要な機能を模倣的に作ってみるワークショップを実施しました。
その内容は、いくつかの機能を取り上げて、その内部の要素を掻い摘みながら実装していく流れでした。

そして今回は、発表者が与えられた時間の”LIVE”実装を披露します。
ワークショップという形式の都合上、端折った部分・お見せ出来なかった部分も含めて、全てお話します。

テーマ

Composerの仕組みについての簡単な解説(実況)を交えつつ、実際に動くものをゼロから書いてきます。
目の間で出来上がっていく様を見届けることで、普段とは違った角度からの理解の手助けになるでしょう。

※ 「Composerの機能」「導入や運用」について紹介することを目的としたセッションではありません。

ライブコーディングの内容

require コマンドの機能をベースにします

  1. 任意のパッケージの指定を受け取るCLI
  2. パッケージ情報の取得(※今回はPackagist限定)
  3. composer.json相当のファイルの作成
  4. 間接的に依存しているパッケージの情報の取得
  5. 各パッケージの依存の解決(※今回はplatformやext系の情報は無視)
  6. composer.lock相当のファイルの作成
  7. パッケージ本体の取得
  8. パッケージのvendorへの配置
  9. autoloaderの作成