Slide 1

Slide 1 text

Composerが 
 「依存解決」のために 
 どんな工夫をしているか PHP Conference Japan 2025 Hideki Kinjyo GitHub: o0h / X: @o0h_ [公開用]

Slide 2

Slide 2 text

イントロ Composerはとても便利ですね!  2

Slide 3

Slide 3 text

「はい、そうです。」 優雅に水面を滑るがごとく、 
 簡単・軽快に開発に 
 取り組めます。 イントロ  3

Slide 4

Slide 4 text

イントロ  4 PHPUnit ください!

Slide 5

Slide 5 text

イントロ  5 PHPUnit ください! 整いました! 
 vendor/bin/phpunitから 
 お楽しみください!

Slide 6

Slide 6 text

イントロ ──でも、 
 実はとっても大変な問題を解いています!  6

Slide 7

Slide 7 text

イントロ  7 PHPUnit ください! まずは 
 PHPUnitの定義を調べるぞ 今のPHPバージョン的に 
 最新版でOK? 最新版の 
 依存パッケージを調べます 依存の依存も・・・

Slide 8

Slide 8 text

イントロ  8 PHPUnitください PHPUnitください PHPUnitください PHPUnitください PHPUnitください PHPUnitください PHPUnitください PHPUnitください PHPUnitください sebastian/ object-reflector sebastian/ recursion-context sebastian/type sebastian/version staabm/side- effects-detector sebastian/ object-enumerator sebastian/ global-state たくさん集まる PHPUnit ください!

Slide 9

Slide 9 text

イントロ  9 集めた依存の要求を 
 全て満たす組み合わせを 
 見つけるぞ たくさん集まる PHPUnit ください!

Slide 10

Slide 10 text

イントロ  10 決定したパッケージを ダウンロードするぞ PHPUnit ください! たくさん集まる 集めた依存の要求を 


Slide 11

Slide 11 text

イントロ  11 整いました! 
 vendor/bin/phpunitから 
 お楽しみください! PHPUnit ください! たくさん集まる 集めた依存の要求を

Slide 12

Slide 12 text

水面下の努力と工夫の賜物 複雑な仕事を 
 速やかにこなすための工夫が 
 何層にも仕込まれています イントロ  12

Slide 13

Slide 13 text

本日のテーマ 🔥Composerの努力🔥をチラッと覗いてみよう!  13

Slide 14

Slide 14 text

本日のテーマ (PHP的なアプリケーションでは) 
 意識が薄いかも知れない、 
 「チューニング」の雰囲気を感じ取る  14

Slide 15

Slide 15 text

お話すること • Composerが新しいパッケージを取得する時に • requireやupdateをイメージしてください • どんなデータや処理が必要で、その際にどんな課題が出てきて • 「要求」と「技術的な課題」のようなものです • その解決のためにどんな工夫をしているのか?を紹介していきます • 設計、アルゴリズム、PHPのtipsが出てきます  15

Slide 16

Slide 16 text

自己紹介 • 金城秀樹 / きんじょうひでき • GitHub: @o0h / 𝕏 : @o0h_ • 好きなFWはCakePHP • アイコンは美味しい鮭親子丼の写真です • 最近はPodcastをやっています • ハッシュタグ: #readlinefm  

Slide 17

Slide 17 text

おしながき 3つの観点から見ていきます A. ネットワーク越しのやり取りを軽くする工夫 B. 膨大な問題を効率よく解決する工夫 C. 限られたメモリやCPUを大事に使う工夫 D. まとめ  

Slide 18

Slide 18 text

おしながき 3つの観点から見ていきます A. ネットワーク越しのやり取りを軽くする工夫 B. 膨大な問題を効率よく解決する工夫 C. 限られたメモリやCPUを大事に使う工夫 D. まとめ   PackagistのAPIと 
 綜合したデザイン

Slide 19

Slide 19 text

おしながき 3つの観点から見ていきます A. ネットワーク越しのやり取りを軽くする工夫 B. 膨大な問題を効率よく解決する工夫 C. 限られたメモリやCPUを大事に使う工夫 D. まとめ   ここが中心になりそう

Slide 20

Slide 20 text

おしながき 3つの観点から見ていきます A. ネットワーク越しのやり取りを軽くする工夫 B. 膨大な問題を効率よく解決する工夫 C. 限られたメモリやCPUを大事に使う工夫 D. まとめ   ちっちゃい話を 
 アラカルトで!

Slide 21

Slide 21 text

A. ネットワーク越しのやり取りを軽くする工夫 B. 膨大な問題を効率よく解決する工夫 C. 限られたメモリやCPUを大事に使う工夫 D. まとめ

Slide 22

Slide 22 text

この章で出てくる課題は─── 「ネットワークまたぎは遅い」を 
 どうするか?の話  22

Slide 23

Slide 23 text

Composerの「要求」 パッケージ情報を揃えるために必要なこと • 指定されたパッケージの有効性を確認して • 利用可能なバージョン情報を取得して • その中身(依存情報etc)も取得可能にする  23

Slide 24

Slide 24 text

何が難しいか 膨大な量の情報にアクセスする必要がある • 膨大①: Packagistに存在するパッケージは?バージョンは? • 膨大②: それぞれのパッケージが必要とする他パッケージは?  24

Slide 25

Slide 25 text

を例に見てみると? 「あるパッケージを探す」とは guzzlehttp/guzzle:^7.0.0  25

Slide 26

Slide 26 text

7.9.3 7.9.2 7.9.1 7.9.0 7.8.2 7.8.1 7.8.0 7.7.1 7.7.0 7.6.1 7.6.0 7.5.3 7.5.2 7.5.1 7.5.0 7.4.5 7.4.4 7.4.3 7.4.2 7.4.1 7.4.0 7.3.0 7.2.0 7.1.1 7.1.0 7.0.1 7.0.0 guzzlehttp/guzzle:^7.0.0

Slide 27

Slide 27 text

7.9.3 7.8.2 7.7.1 7.6.1 7.5.3 7.4.5 7.3.0 7.2.0 7.1.1 7.0.1 guzzlehttp/promises:^1.5.3||^2.0.3 guzzlehttp/psr7:^2.7.0 psr/http-client:^1.0 symfony/deprecation-contracts:^2.2||^3.0 guzzlehttp/promises:^1.5.3||^2.0.3 guzzlehttp/psr7:^1.9.1||^2.6.3 psr/http-client:^1.0 symfony/deprecation-contracts:^2.2||^3.0 guzzlehttp/promises:^1.4 guzzlehttp/psr7:^1.7 psr/http-client:^1.0 symfony/deprecation-contracts:^2.2

Slide 28

Slide 28 text

「あるパッケージを探す」とは 把握すべき情報がたくさん。 
 かつ、これが「遠い場所」にある  どうやって集めているのか?  28

Slide 29

Slide 29 text

Composerでの解決 2つの解決方法を紹介します  29 Composer v1までのやり方 Composer v2以降のやり方

Slide 30

Slide 30 text

Composerでの解決 2つの解決方法を紹介します  30 Composer v1までのやり方 Composer v2以降のやり方

Slide 31

Slide 31 text

Composer v1までのやり方  31 Packagist上の登録パッケージ一覧を取得 パッケージ詳細を取得 パッケージの存在を確認 パッケージ詳細のアクセス方法を把握

Slide 32

Slide 32 text

Composer v1までのやり方  32 Packagist上の登録パッケージ一覧を取得 パッケージ詳細を取得 パッケージの存在を確認 パッケージ詳細のアクセス方法を把握 • Packagistに登録されている 
 パッケージの一覧を返すAPI • 規則に沿って複数ファイルに 分割されている • パッケージ名と 
 その「ハッシュ値」を提供

Slide 33

Slide 33 text

Composer /packages.json レポジトリ情報 /p/rovider-*****.json /p/rovider-*****.json /p/rovider-*****.json パッケージ一覧 Packagist上の登録パッケージ一覧を取得

Slide 34

Slide 34 text

/packages.json

Slide 35

Slide 35 text

/p/rovider-*****.json

Slide 36

Slide 36 text

Composer v1までのやり方  36 Packagist上の登録パッケージ一覧を取得 パッケージ詳細を取得 パッケージの存在を確認 パッケージ詳細のアクセス方法を把握 • 一覧の中に 
 指定されたパッケージが 
 含まれているかをチェック

Slide 37

Slide 37 text

Composer v1までのやり方  37 Packagist上の登録パッケージ一覧を取得 パッケージ詳細を取得 パッケージの存在を確認 パッケージ詳細のアクセス方法を把握 • パッケージの 
 現在のハッシュ値を確認して • 詳細のURLを組み立てる • `/p/%package%$%hash%.json`

Slide 38

Slide 38 text

Composer v1までのやり方  38 Packagist上の登録パッケージ一覧を取得 パッケージ詳細を取得 パッケージの存在を確認 パッケージ詳細のアクセス方法を把握 • 組み立てたURLから 
 データを取得 • 利用可能なver.一覧、 
 各ver.における情報を取得 • 依存パッケージなど

Slide 39

Slide 39 text

Composer //$.json //$.json //$.json パッケージ詳細を取得 /p/rovider-*****.json パッケージ詳細

Slide 40

Slide 40 text

//$.json

Slide 41

Slide 41 text

Composer v1までのやり方 この方式の有利な所と不利な所  41 「ネットワークまたぎは遅い」を 
 どうするか?の話

Slide 42

Slide 42 text

この方式の「有利な所と不利な所」 v1の基本方針: 
 ローカルキャッシュを最大まで活用する • パッケージの一覧、詳細情報とも 
 情報の更新があったことを 
 「ハッシュ値」の比較で検知 • パッケージ一覧は 
 「いつ更新されたか」で分割 
 (「ハッシュ値」の変更が偏る)  42 /packages.json

Slide 43

Slide 43 text

この方式の「有利な所と不利な所」  43 有利な所 不利な所 • 効率的なキャッシュ ➡ (2回目以降の)通信の発生回数を抑える • 無駄打ちリクエストの回避 ➡ パッケージの有無は通信無しで判別できる • 「全パッケージ一覧取得」のオーバーヘッド ➡ 一覧にあるパッケージの殆どは無関係

Slide 44

Slide 44 text

Composer v1までのやり方 この方式の「なぜ」「トレードオフ」  44 有利な所と不利な所

Slide 45

Slide 45 text

環境・時代背景(2010年前半くらい) • Packagistへの登録パッケージ数は 
 今ほど多くない  45 Composer普及段階 「使い捨て」の環境は 
 まだ多くない ext-curlを 
 デフォルトにしにくい ∴ ローカルキャッシュを最大まで活用する • CI/CD、コンテナ活用は今ほど多くない • 「部分更新」的なデプロイ方式 • 「拡張が無い・入れられない」に考慮 • 非同期リクエストやKeep-Aliveが使えない 当時を 
 勝手に推測!

Slide 46

Slide 46 text

設計とは「トレードオフ」 〜何を求め、満たすか〜 • 全パッケージ一覧取得の 
 オーバーヘッドが大きすぎない。許容する  46 • 再利用できる資産を貯めやすい • キャッシュを貯める・通信回数を減らす • 「試行したけど何もなかった、を避ける Composer普及段階 「使い捨て」の環境は 
 まだ多くない ext-curlを 
 デフォルトにしにくい

Slide 47

Slide 47 text

Composerでの解決 2つの解決方法を紹介します  47 Composer v1までのやり方 Composer v2以降のやり方

Slide 48

Slide 48 text

Composer v2以降のやり方  48 パッケージの存在を確認 + 詳細を取得 パッケージ詳細のアクセス方法を把握

Slide 49

Slide 49 text

Composer v2以降のやり方  49 • レポジトリ情報を取得すると 
 「パッケージ詳細のpath」の 
 テンプレートが手に入る • これにパッケージ名を用いて 
 詳細のURLを組み立てる • `/p2/%package%.json` パッケージの存在を確認 + 詳細を取得 パッケージ詳細のアクセス方法を把握

Slide 50

Slide 50 text

Composer /packages.json レポジトリ情報 /p/rovider-*****.json /p/rovider-*****.json /p/rovider-*****.json パッケージ一覧 パッケージ詳細のアクセス方法を把握 Ұཡͷऔಘ͸ෆཁʹ

Slide 51

Slide 51 text

/packages.json

Slide 52

Slide 52 text

Composer v2以降のやり方  52 • 組み立てたURLから 
 データを取得 • 利用可能なver.一覧、 
 各ver.における情報を取得 • 依存パッケージなど パッケージの存在を確認 + 詳細を取得 パッケージ詳細のアクセス方法を把握 v1と目的は同じ

Slide 53

Slide 53 text

Composer v2以降のやり方  53 • HTTPステータスコードで 
 パッケージの状態をチェック • 404: 該当なし • 304: 使い更新確認 • If-Modified-Sinceの活用 パッケージの存在を確認 + 詳細を取得 パッケージ詳細のアクセス方法を把握 ライフサイクルが異なる

Slide 54

Slide 54 text

Composer v2以降のやり方 この方式の有利な所と不利な所  54 「ネットワークまたぎは遅い」を 
 どうするか?の話

Slide 55

Slide 55 text

この方式の「有利な所と不利な所」 v2の基本方針: 
 (キャッシュ効率よりも)スループット向上 • 事前に「ハッシュ」を取得せずに必要な情報にアクセス • サーバー側で(最新情報で)パッケージ有無の判断(200 or 404) • タイムスタンプ(If-Modified-Sinceでキャッシュの有効性を確認  55

Slide 56

Slide 56 text

この方式の「有利な所と不利な所」  56 • 「一覧取得」オーバーヘッドの解消 ➡ Packagist全体のパッケージ数に関係なく動作 • リクエストの並行処理の恩恵を受けやすく ➡ 「推測可能」なら「待たず」に実行できる • 通信回数が最善でも「1+パッケージ数」に ➡ v1ほどローカルだけで完結できる仕事が少ない 有利な所 不利な所

Slide 57

Slide 57 text

Composer v2以降のやり方 この方式の「なぜ」「トレードオフ」  57 有利な所と不利な所

Slide 58

Slide 58 text

環境・時代背景(2020年前後) • ※ Composer 2.0 is now available! on Oct 24, 2020 • ちなみに、hirak/prestissimoが2016年くらい  58

Slide 59

Slide 59 text

環境・時代背景(2020年前後) • Packagist上のパッケージが膨大な量に • 利用者も増え、サーバーの負担増加も?  59 当時を 
 勝手に推測! パッケージ数の超増加 「使い捨て」の環境 
 クリーンインストール ext-curlの採用 ∴(キャッシュ効率よりも)スループット向上 • CI/CDの更なる普及 
 コンテナ活用の「使い捨て」環境が普及 • Composerの「普及期」を超えたことによる、 
 積極的な判断(もあるのかも) • 「レンサバ」の時代だと拡張が入ってなかったり

Slide 60

Slide 60 text

https://packagist.org/statistics  60

Slide 61

Slide 61 text

• 事前推測ができる→投機的な実行もできる • 並列リクエストを採用し • ダウンロードも保存・探索のコストも高く • 削りたい! 設計とは「トレードオフ」 〜何を求め、満たすか〜  61 パッケージ数の超増加 「使い捨て」の環境 
 クリーンインストール ext-curlの採用 • キャッシュが活きにくくなった • 「無駄打ち許容」で「通信内容の軽量化」に重き

Slide 62

Slide 62 text

A. ネットワーク越しのやり取りを軽くする工夫 B. 膨大な問題を効率よく解決する工夫 C. 限られたメモリやCPUを大事に使う工夫 D. まとめ

Slide 63

Slide 63 text

この章で出てくる課題は─── 「組み合わせは簡単に爆発する」を 
 どうするか?の話  63

Slide 64

Slide 64 text

Composerの「要求」 依存関係(組み合わせ)を解決するには • 直接依存するパッケージの情報を取得し • 対象バージョンごとの間接依存パッケージの情報を取得し • (それらを、不足がなくなるまで繰り返し) • 全てのパッケージ同士が満足する組み合わせを決定する  64

Slide 65

Slide 65 text

何が難しいか 組み合わせの数が多く、相互に制約があるものを解決するのは大変 • 組み合わせ: 直接依存 × バージョン × 間接依存 ×・・・ • どれか1つでもコンフリクトがあったら「使えない」ものになる • 十分に「問題がないこと」を検証する必要がある  65

Slide 66

Slide 66 text

を例に見てみると? 組み合わせについて考えてみよう phpunit/phunit:^11.2  66

Slide 67

Slide 67 text

phpunit/phpunit: ^11.2

Slide 68

Slide 68 text

phar-io/version staabm/side-effects-detector sebastian/version sebastian/type sebastian/object-enumerator sebastian/global-state sebastian/exporter sebastian/environment sebastian/diff sebastian/comparator sebastian/code-unit sebastian/cli-parser phpunit/php-timer phpunit/php-text-template phpunit/php-invoker phpunit/php-file-iterator phpunit/php-code-coverage phar-io/version phar-io/manifest myclabs/deep-copy phpunit/phpunit: ^11.2

Slide 69

Slide 69 text

sebastian/object-reflector sebastian/recursion-context theseer/tokenizer sebastian/lines-of-code sebastian/complexity sebastian/code-unit-reverse-lookup nikic/php-parser phar-io/version staabm/side-effects-detector sebastian/version sebastian/type sebastian/object-enumerator sebastian/global-state sebastian/exporter sebastian/environment sebastian/diff sebastian/comparator sebastian/code-unit sebastian/cli-parser phpunit/php-timer phpunit/php-text-template phpunit/php-invoker phpunit/php-file-iterator phpunit/php-code-coverage phar-io/version phar-io/manifest myclabs/deep-copy phpunit/phpunit phpunit/phpunit: ^11.2

Slide 70

Slide 70 text

phpunit/phunit:^11.2 myclabs/deep-copy 
 ([>= 1.12.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit:11.5.18 myclabs/deep-copy 
 ([>= 1.13.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit:11.4.4 requires requires else else

Slide 71

Slide 71 text

phpunit/phpunit 11.2.6 requires myclabs/deep-copy 
 ([>= 1.10.1.0-dev < 2.0.0.0-dev])

Slide 72

Slide 72 text

phpunit/phpunit 11.2.6 requires myclabs/deep-copy 
 ([>= 1.10.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.2.5 requires myclabs/deep-copy 
 ([>= 1.10.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.2.0 requires phar-io/version 
 ([>= 3.0.2.0-dev < 4.0.0.0-dev])

Slide 73

Slide 73 text

phpunit/phpunit 11.2.6 requires myclabs/deep-copy 
 ([>= 1.10.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.2.5 requires myclabs/deep-copy 
 ([>= 1.10.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.2.0 requires phar-io/version 
 ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.17 requires phar-io/version 
 ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.16 requires phar-io/version 
 ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.4 requires phpunit/php-file-iterator 
 ([>= 5.0.0.0-dev < 6.0.0.0-dev])

Slide 74

Slide 74 text

myclabs/deep-copy 1.13.0 requires php ([>= 7.1.0.0-dev < 9.0.0.0-dev]) myclabs/deep-copy 1.12.1 requires php ([>= 7.1.0.0-dev < 9.0.0.0-dev]) myclabs/deep-copy 1.12.0 requires php ([>= 7.1.0.0-dev < 9.0.0.0-dev]) myclabs/deep-copy 1.11.1 requires php ([>= 7.1.0.0-dev < 9.0.0.0-dev]) myclabs/deep-copy 1.11.0 requires php ([>= 7.1.0.0-dev < 9.0.0.0-dev]) myclabs/deep-copy 1.10.3 requires php ([>= 7.1.0.0-dev < 9.0.0.0-dev]) myclabs/deep-copy 1.10.2 requires php ([>= 7.1.0.0-dev < 9.0.0.0-dev]) myclabs/deep-copy 1.10.1 requires php ([>= 7.1.0.0-dev < 9.0.0.0-dev]) nikic/php-parser v5.4.0 requires ext-ctype (*) nikic/php-parser v5.3.1 requires ext-ctype (*) nikic/php-parser v5.3.0 requires ext-ctype (*) nikic/php-parser v5.2.0 requires ext-ctype (*) nikic/php-parser v5.1.0 requires ext-ctype (*) nikic/php-parser v5.0.2 requires ext-ctype (*) nikic/php-parser v5.0.1 requires ext-ctype (*) nikic/php-parser v5.0.0 requires ext-ctype (*) nikic/php-parser v5.4.0 requires ext-json (*) nikic/php-parser v5.3.1 requires ext-json (*) nikic/php-parser v5.3.0 requires ext-json (*) nikic/php-parser v5.2.0 requires ext-json (*) nikic/php-parser v5.1.0 requires ext-json (*) nikic/php-parser v5.0.2 requires ext-json (*) nikic/php-parser v5.0.1 requires ext-json (*) nikic/php-parser v5.0.0 requires ext-json (*) nikic/php-parser v5.4.0 requires ext-tokenizer (*) nikic/php-parser v5.3.1 requires ext-tokenizer (*) nikic/php-parser v5.3.0 requires ext-tokenizer (*) nikic/php-parser v5.2.0 requires ext-tokenizer (*) nikic/php-parser v5.1.0 requires ext-tokenizer (*) nikic/php-parser v5.0.2 requires ext-tokenizer (*) nikic/php-parser v5.0.1 requires ext-tokenizer (*) nikic/php-parser v5.0.0 requires ext-tokenizer (*) nikic/php-parser v5.4.0 requires php (>= 7.4.0.0-dev) nikic/php-parser v5.3.1 requires php (>= 7.4.0.0-dev) nikic/php-parser v5.3.0 requires php (>= 7.4.0.0-dev) nikic/php-parser v5.2.0 requires php (>= 7.4.0.0-dev) nikic/php-parser v5.1.0 requires php (>= 7.4.0.0-dev) nikic/php-parser v5.0.2 requires php (>= 7.4.0.0-dev) nikic/php-parser v5.0.1 requires php (>= 7.4.0.0-dev) nikic/php-parser v5.0.0 requires php (>= 7.4.0.0-dev) phar-io/manifest 2.0.4 requires ext-dom (*) phar-io/manifest 2.0.3 requires ext-dom (*) phar-io/manifest 2.0.4 requires ext-libxml (*) phar-io/manifest 2.0.4 requires ext-phar (*) phar-io/manifest 2.0.3 requires ext-phar (*) phar-io/manifest 2.0.4 requires ext-xmlwriter (*) phar-io/manifest 2.0.3 requires ext-xmlwriter (*) phar-io/manifest 2.0.4 requires phar-io/version ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phar-io/manifest 2.0.3 requires phar-io/version ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phar-io/manifest 2.0.4 requires php ([>= 7.2.0.0-dev < 9.0.0.0-dev]) phar-io/manifest 2.0.3 requires php ([>= 7.2.0.0-dev < 9.0.0.0-dev]) phar-io/version 3.0.1 requires php ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phar-io/version 3.2.1 requires php ([>= 7.2.0.0-dev < 9.0.0.0-dev]) phar-io/version 3.2.0 requires php ([>= 7.2.0.0-dev < 9.0.0.0-dev]) phar-io/version 3.1.1 requires php ([>= 7.2.0.0-dev < 9.0.0.0-dev]) phar-io/version 3.1.0 requires php ([>= 7.2.0.0-dev < 9.0.0.0-dev]) phar-io/version 3.0.4 requires php ([>= 7.2.0.0-dev < 9.0.0.0-dev]) phar-io/version 3.0.3 requires php ([>= 7.2.0.0-dev < 9.0.0.0-dev]) phar-io/version 3.0.2 requires php ([>= 7.2.0.0-dev < 9.0.0.0-dev]) phpunit/php-code-coverage 11.0.9 requires ext-dom (*) phpunit/php-code-coverage 11.0.8 requires ext-dom (*) phpunit/php-code-coverage 11.0.7 requires ext-dom (*) phpunit/php-code-coverage 11.0.6 requires ext-dom (*) phpunit/php-code-coverage 11.0.5 requires ext-dom (*) phpunit/php-code-coverage 11.0.4 requires ext-dom (*) phpunit/php-code-coverage 11.0.3 requires ext-dom (*) phpunit/php-code-coverage 11.0.2 requires ext-dom (*) phpunit/php-code-coverage 11.0.1 requires ext-dom (*) phpunit/php-code-coverage 11.0.0 requires ext-dom (*) phpunit/php-code-coverage 11.0.9 requires ext-libxml (*) phpunit/php-code-coverage 11.0.8 requires ext-libxml (*) phpunit/php-code-coverage 11.0.7 requires ext-libxml (*) phpunit/php-code-coverage 11.0.6 requires ext-libxml (*) phpunit/php-code-coverage 11.0.5 requires ext-libxml (*) phpunit/php-code-coverage 11.0.4 requires ext-libxml (*) phpunit/php-code-coverage 11.0.3 requires ext-libxml (*) phpunit/php-code-coverage 11.0.2 requires ext-libxml (*) phpunit/php-code-coverage 11.0.1 requires ext-libxml (*) phpunit/php-code-coverage 11.0.0 requires ext-libxml (*) phpunit/php-code-coverage 11.0.9 requires ext-xmlwriter (*) phpunit/php-code-coverage 11.0.8 requires ext-xmlwriter (*) phpunit/php-code-coverage 11.0.7 requires ext-xmlwriter (*) phpunit/php-code-coverage 11.0.6 requires ext-xmlwriter (*) phpunit/php-code-coverage 11.0.5 requires ext-xmlwriter (*) phpunit/php-code-coverage 11.0.4 requires ext-xmlwriter (*) phpunit/php-code-coverage 11.0.3 requires ext-xmlwriter (*) phpunit/php-code-coverage 11.0.2 requires ext-xmlwriter (*) phpunit/php-code-coverage 11.0.1 requires ext-xmlwriter (*) phpunit/php-code-coverage 11.0.0 requires ext-xmlwriter (*) phpunit/php-code-coverage 11.0.5 requires nikic/php-parser ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.4 requires nikic/php-parser ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.3 requires nikic/php-parser ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.2 requires nikic/php-parser ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.1 requires nikic/php-parser ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.0 requires nikic/php-parser ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.6 requires nikic/php-parser ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.8 requires nikic/php-parser ([>= 5.3.1.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.7 requires nikic/php-parser ([>= 5.3.1.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.9 requires nikic/php-parser ([>= 5.4.0.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.9 requires php (>= 8.2.0.0-dev) phpunit/php-code-coverage 11.0.8 requires php (>= 8.2.0.0-dev) phpunit/php-code-coverage 11.0.7 requires php (>= 8.2.0.0-dev) phpunit/php-code-coverage 11.0.6 requires php (>= 8.2.0.0-dev) phpunit/php-code-coverage 11.0.5 requires php (>= 8.2.0.0-dev) phpunit/php-code-coverage 11.0.4 requires php (>= 8.2.0.0-dev) phpunit/php-code-coverage 11.0.3 requires php (>= 8.2.0.0-dev) phpunit/php-code-coverage 11.0.2 requires php (>= 8.2.0.0-dev) phpunit/php-code-coverage 11.0.1 requires php (>= 8.2.0.0-dev) phpunit/php-code-coverage 11.0.0 requires php (>= 8.2.0.0-dev) phpunit/php-code-coverage 11.0.5 requires phpunit/php-file-iterator ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/php-code-coverage 11.0.4 requires phpunit/php-file-iterator ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/php-code-coverage 11.0.3 requires phpunit/php-file-iterator ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/php-code-coverage 11.0.2 requires phpunit/php-file-iterator ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/php-code-coverage 11.0.1 requires phpunit/php-file-iterator ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/php-code-coverage 11.0.0 requires phpunit/php-file-iterator ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/php-code-coverage 11.0.6 requires phpunit/php-file-iterator ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/php-code-coverage 11.0.9 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/php-code-coverage 11.0.8 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/php-code-coverage 11.0.7 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/php-code-coverage 11.0.5 requires phpunit/php-text-template ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.4 requires phpunit/php-text-template ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.3 requires phpunit/php-text-template ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.2 requires phpunit/php-text-template ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.1 requires phpunit/php-text-template ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.0 requires phpunit/php-text-template ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.9 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.8 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.7 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.6 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.5 requires sebastian/code-unit-reverse-lookup ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.4 requires sebastian/code-unit-reverse-lookup ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.3 requires sebastian/code-unit-reverse-lookup ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.2 requires sebastian/code-unit-reverse-lookup ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.1 requires sebastian/code-unit-reverse-lookup ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.0 requires sebastian/code-unit-reverse-lookup ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.9 requires sebastian/code-unit-reverse-lookup ([>= 4.0.1.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.8 requires sebastian/code-unit-reverse-lookup ([>= 4.0.1.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.7 requires sebastian/code-unit-reverse-lookup ([>= 4.0.1.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.6 requires sebastian/code-unit-reverse-lookup ([>= 4.0.1.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.5 requires sebastian/complexity ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.4 requires sebastian/complexity ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.3 requires sebastian/complexity ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.2 requires sebastian/complexity ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.1 requires sebastian/complexity ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.0 requires sebastian/complexity ([>= 4.0.0.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.9 requires sebastian/complexity ([>= 4.0.1.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.8 requires sebastian/complexity ([>= 4.0.1.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.7 requires sebastian/complexity ([>= 4.0.1.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.6 requires sebastian/complexity ([>= 4.0.1.0-dev < 5.0.0.0-dev]) phpunit/php-code-coverage 11.0.5 requires sebastian/environment ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/php-code-coverage 11.0.4 requires sebastian/environment ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/php-code-coverage 11.0.3 requires sebastian/environment ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/php-code-coverage 11.0.2 requires sebastian/environment ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/php-code-coverage 11.0.1 requires sebastian/environment ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/php-code-coverage 11.0.0 requires sebastian/environment ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/php-code-coverage 11.0.9 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/php-code-coverage 11.0.8 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/php-code-coverage 11.0.7 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/php-code-coverage 11.0.6 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/php-code-coverage 11.0.5 requires sebastian/lines-of-code ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/php-code-coverage 11.0.4 requires sebastian/lines-of-code ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/php-code-coverage 11.0.3 requires sebastian/lines-of-code ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/php-code-coverage 11.0.2 requires sebastian/lines-of-code ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/php-code-coverage 11.0.1 requires sebastian/lines-of-code ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/php-code-coverage 11.0.0 requires sebastian/lines-of-code ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/php-code-coverage 11.0.9 requires sebastian/lines-of-code ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/php-code-coverage 11.0.8 requires sebastian/lines-of-code ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/php-code-coverage 11.0.7 requires sebastian/lines-of-code ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/php-code-coverage 11.0.6 requires sebastian/lines-of-code ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/php-code-coverage 11.0.5 requires sebastian/version ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.4 requires sebastian/version ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.3 requires sebastian/version ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.2 requires sebastian/version ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.1 requires sebastian/version ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.0 requires sebastian/version ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.6 requires sebastian/version ([>= 5.0.1.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.9 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.8 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.7 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0- dev]) phpunit/php-code-coverage 11.0.5 requires theseer/tokenizer ([>= 1.2.0.0-dev < 2.0.0.0- dev]) phpunit/php-code-coverage 11.0.4 requires theseer/tokenizer ([>= 1.2.0.0-dev < 2.0.0.0- dev]) phpunit/php-code-coverage 11.0.3 requires theseer/tokenizer ([>= 1.2.0.0-dev < 2.0.0.0- dev]) phpunit/php-code-coverage 11.0.2 requires theseer/tokenizer ([>= 1.2.0.0-dev < 2.0.0.0- dev]) phpunit/php-code-coverage 11.0.1 requires theseer/tokenizer ([>= 1.2.0.0-dev < 2.0.0.0- dev]) phpunit/php-code-coverage 11.0.0 requires theseer/tokenizer ([>= 1.2.0.0-dev < 2.0.0.0- dev]) phpunit/php-code-coverage 11.0.9 requires theseer/tokenizer ([>= 1.2.3.0-dev < 2.0.0.0- dev]) phpunit/php-code-coverage 11.0.8 requires theseer/tokenizer ([>= 1.2.3.0-dev < 2.0.0.0- dev]) phpunit/php-code-coverage 11.0.7 requires theseer/tokenizer ([>= 1.2.3.0-dev < 2.0.0.0- dev]) phpunit/php-code-coverage 11.0.6 requires theseer/tokenizer ([>= 1.2.3.0-dev < 2.0.0.0- dev]) phpunit/php-file-iterator 5.1.0 requires php (>= 8.2.0.0-dev) phpunit/php-file-iterator 5.0.1 requires php (>= 8.2.0.0-dev) phpunit/php-file-iterator 5.0.0 requires php (>= 8.2.0.0-dev) phpunit/php-invoker 5.0.1 requires php (>= 8.2.0.0-dev) phpunit/php-invoker 5.0.0 requires php (>= 8.2.0.0-dev) phpunit/php-text-template 4.0.1 requires php (>= 8.2.0.0-dev) phpunit/php-text-template 4.0.0 requires php (>= 8.2.0.0-dev) phpunit/php-timer 7.0.1 requires php (>= 8.2.0.0-dev) phpunit/php-timer 7.0.0 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.18 requires ext-dom (*) phpunit/phpunit 11.5.17 requires ext-dom (*) phpunit/phpunit 11.5.16 requires ext-dom (*) phpunit/phpunit 11.5.15 requires ext-dom (*) phpunit/phpunit 11.5.14 requires ext-dom (*) phpunit/phpunit 11.5.13 requires ext-dom (*) phpunit/phpunit 11.5.12 requires ext-dom (*) phpunit/phpunit 11.5.11 requires ext-dom (*) phpunit/phpunit 11.5.10 requires ext-dom (*) phpunit/phpunit 11.5.9 requires ext-dom (*) phpunit/phpunit 11.5.8 requires ext-dom (*) phpunit/phpunit 11.5.7 requires ext-dom (*) phpunit/phpunit 11.5.6 requires ext-dom (*) phpunit/phpunit 11.5.5 requires ext-dom (*) phpunit/phpunit 11.5.4 requires ext-dom (*) phpunit/phpunit 11.5.3 requires ext-dom (*) phpunit/phpunit 11.5.2 requires ext-dom (*) phpunit/phpunit 11.5.1 requires ext-dom (*) phpunit/phpunit 11.5.0 requires ext-dom (*) phpunit/phpunit 11.4.4 requires ext-dom (*) phpunit/phpunit 11.4.3 requires ext-dom (*) phpunit/phpunit 11.4.2 requires ext-dom (*) phpunit/phpunit 11.4.1 requires ext-dom (*) phpunit/phpunit 11.4.0 requires ext-dom (*) phpunit/phpunit 11.3.6 requires ext-dom (*) phpunit/phpunit 11.3.5 requires ext-dom (*) phpunit/phpunit 11.3.4 requires ext-dom (*) phpunit/phpunit 11.3.3 requires ext-dom (*) phpunit/phpunit 11.3.2 requires ext-dom (*) phpunit/phpunit 11.3.1 requires ext-dom (*) phpunit/phpunit 11.3.0 requires ext-dom (*) phpunit/phpunit 11.2.9 requires ext-dom (*) phpunit/phpunit 11.2.8 requires ext-dom (*) phpunit/phpunit 11.2.7 requires ext-dom (*) phpunit/phpunit 11.2.6 requires ext-dom (*) phpunit/phpunit 11.2.5 requires ext-dom (*) phpunit/phpunit 11.2.4 requires ext-dom (*) phpunit/phpunit 11.2.3 requires ext-dom (*) phpunit/phpunit 11.2.2 requires ext-dom (*) phpunit/phpunit 11.2.1 requires ext-dom (*) phpunit/phpunit 11.2.0 requires ext-dom (*) phpunit/phpunit 11.5.18 requires ext-json (*) phpunit/phpunit 11.5.17 requires ext-json (*) phpunit/phpunit 11.5.16 requires ext-json (*) phpunit/phpunit 11.5.15 requires ext-json (*) phpunit/phpunit 11.5.14 requires ext-json (*) phpunit/phpunit 11.5.13 requires ext-json (*) phpunit/phpunit 11.5.12 requires ext-json (*) phpunit/phpunit 11.5.11 requires ext-json (*) phpunit/phpunit 11.5.10 requires ext-json (*) phpunit/phpunit 11.5.9 requires ext-json (*) phpunit/phpunit 11.5.8 requires ext-json (*) phpunit/phpunit 11.5.7 requires ext-json (*) phpunit/phpunit 11.5.6 requires ext-json (*) phpunit/phpunit 11.5.5 requires ext-json (*) phpunit/phpunit 11.5.4 requires ext-json (*) phpunit/phpunit 11.5.3 requires ext-json (*) phpunit/phpunit 11.5.2 requires ext-json (*) phpunit/phpunit 11.5.1 requires ext-json (*) phpunit/phpunit 11.5.0 requires ext-json (*) phpunit/phpunit 11.4.4 requires ext-json (*) phpunit/phpunit 11.4.3 requires ext-json (*) phpunit/phpunit 11.4.2 requires ext-json (*) phpunit/phpunit 11.4.1 requires ext-json (*) phpunit/phpunit 11.4.0 requires ext-json (*) phpunit/phpunit 11.3.6 requires ext-json (*) phpunit/phpunit 11.3.5 requires ext-json (*) phpunit/phpunit 11.3.4 requires ext-json (*) phpunit/phpunit 11.3.3 requires ext-json (*) phpunit/phpunit 11.3.2 requires ext-json (*) phpunit/phpunit 11.3.1 requires ext-json (*) phpunit/phpunit 11.3.0 requires ext-json (*) phpunit/phpunit 11.2.9 requires ext-json (*) phpunit/phpunit 11.2.8 requires ext-json (*) phpunit/phpunit 11.2.7 requires ext-json (*) phpunit/phpunit 11.2.6 requires ext-json (*) phpunit/phpunit 11.2.5 requires ext-json (*) phpunit/phpunit 11.2.4 requires ext-json (*) phpunit/phpunit 11.2.3 requires ext-json (*) phpunit/phpunit 11.2.2 requires ext-json (*) phpunit/phpunit 11.2.1 requires ext-json (*) phpunit/phpunit 11.2.0 requires ext-json (*) phpunit/phpunit 11.5.18 requires ext-libxml (*) phpunit/phpunit 11.5.17 requires ext-libxml (*) phpunit/phpunit 11.5.16 requires ext-libxml (*) phpunit/phpunit 11.5.15 requires ext-libxml (*) phpunit/phpunit 11.5.14 requires ext-libxml (*) phpunit/phpunit 11.5.13 requires ext-libxml (*) phpunit/phpunit 11.5.12 requires ext-libxml (*) phpunit/phpunit 11.5.11 requires ext-libxml (*) phpunit/phpunit 11.5.10 requires ext-libxml (*) phpunit/phpunit 11.5.9 requires ext-libxml (*) phpunit/phpunit 11.5.8 requires ext-libxml (*) phpunit/phpunit 11.5.7 requires ext-libxml (*) phpunit/phpunit 11.5.6 requires ext-libxml (*) phpunit/phpunit 11.5.5 requires ext-libxml (*) phpunit/phpunit 11.5.4 requires ext-libxml (*) phpunit/phpunit 11.5.3 requires ext-libxml (*) phpunit/phpunit 11.5.2 requires ext-libxml (*) phpunit/phpunit 11.5.1 requires ext-libxml (*) phpunit/phpunit 11.5.0 requires ext-libxml (*) phpunit/phpunit 11.4.4 requires ext-libxml (*) phpunit/phpunit 11.4.3 requires ext-libxml (*) phpunit/phpunit 11.4.2 requires ext-libxml (*) phpunit/phpunit 11.4.1 requires ext-libxml (*) phpunit/phpunit 11.4.0 requires ext-libxml (*) phpunit/phpunit 11.3.6 requires ext-libxml (*) phpunit/phpunit 11.3.5 requires ext-libxml (*) phpunit/phpunit 11.3.4 requires ext-libxml (*) phpunit/phpunit 11.3.3 requires ext-libxml (*) phpunit/phpunit 11.3.2 requires ext-libxml (*) phpunit/phpunit 11.3.1 requires ext-libxml (*) phpunit/phpunit 11.3.0 requires ext-libxml (*) phpunit/phpunit 11.2.9 requires ext-libxml (*) phpunit/phpunit 11.2.8 requires ext-libxml (*) phpunit/phpunit 11.2.7 requires ext-libxml (*) phpunit/phpunit 11.2.6 requires ext-libxml (*) phpunit/phpunit 11.2.5 requires ext-libxml (*) phpunit/phpunit 11.2.4 requires ext-libxml (*) phpunit/phpunit 11.2.3 requires ext-libxml (*) phpunit/phpunit 11.2.2 requires ext-libxml (*) phpunit/phpunit 11.2.1 requires ext-libxml (*) phpunit/phpunit 11.2.0 requires ext-libxml (*) phpunit/phpunit 11.5.18 requires ext-mbstring (*) phpunit/phpunit 11.5.17 requires ext-mbstring (*) phpunit/phpunit 11.5.16 requires ext-mbstring (*) phpunit/phpunit 11.5.15 requires ext-mbstring (*) phpunit/phpunit 11.5.14 requires ext-mbstring (*) phpunit/phpunit 11.5.13 requires ext-mbstring (*) phpunit/phpunit 11.5.12 requires ext-mbstring (*) phpunit/phpunit 11.5.11 requires ext-mbstring (*) phpunit/phpunit 11.5.10 requires ext-mbstring (*) phpunit/phpunit 11.5.9 requires ext-mbstring (*) phpunit/phpunit 11.5.8 requires ext-mbstring (*) phpunit/phpunit 11.5.7 requires ext-mbstring (*) phpunit/phpunit 11.5.6 requires ext-mbstring (*) phpunit/phpunit 11.5.5 requires ext-mbstring (*) phpunit/phpunit 11.5.4 requires ext-mbstring (*) phpunit/phpunit 11.5.3 requires ext-mbstring (*) phpunit/phpunit 11.5.2 requires ext-mbstring (*) phpunit/phpunit 11.5.1 requires ext-mbstring (*) phpunit/phpunit 11.5.0 requires ext-mbstring (*) phpunit/phpunit 11.4.4 requires ext-mbstring (*) phpunit/phpunit 11.4.3 requires ext-mbstring (*) phpunit/phpunit 11.4.2 requires ext-mbstring (*) phpunit/phpunit 11.4.1 requires ext-mbstring (*) phpunit/phpunit 11.4.0 requires ext-mbstring (*) phpunit/phpunit 11.3.6 requires ext-mbstring (*) phpunit/phpunit 11.3.5 requires ext-mbstring (*) phpunit/phpunit 11.3.4 requires ext-mbstring (*) phpunit/phpunit 11.3.3 requires ext-mbstring (*) phpunit/phpunit 11.3.2 requires ext-mbstring (*) phpunit/phpunit 11.3.1 requires ext-mbstring (*) phpunit/phpunit 11.3.0 requires ext-mbstring (*) phpunit/phpunit 11.2.9 requires ext-mbstring (*) phpunit/phpunit 11.2.8 requires ext-mbstring (*) phpunit/phpunit 11.2.7 requires ext-mbstring (*) phpunit/phpunit 11.2.6 requires ext-mbstring (*) phpunit/phpunit 11.2.5 requires ext-mbstring (*) phpunit/phpunit 11.2.4 requires ext-mbstring (*) phpunit/phpunit 11.2.3 requires ext-mbstring (*) phpunit/phpunit 11.2.2 requires ext-mbstring (*) phpunit/phpunit 11.2.1 requires ext-mbstring (*) phpunit/phpunit 11.2.0 requires ext-mbstring (*) phpunit/phpunit 11.5.18 requires ext-xml (*) phpunit/phpunit 11.5.17 requires ext-xml (*) phpunit/phpunit 11.5.16 requires ext-xml (*) phpunit/phpunit 11.5.15 requires ext-xml (*) phpunit/phpunit 11.5.14 requires ext-xml (*) phpunit/phpunit 11.5.13 requires ext-xml (*) phpunit/phpunit 11.5.12 requires ext-xml (*) phpunit/phpunit 11.5.11 requires ext-xml (*) phpunit/phpunit 11.5.10 requires ext-xml (*) phpunit/phpunit 11.5.9 requires ext-xml (*) phpunit/phpunit 11.5.8 requires ext-xml (*) phpunit/phpunit 11.5.7 requires ext-xml (*) phpunit/phpunit 11.5.6 requires ext-xml (*) phpunit/phpunit 11.5.5 requires ext-xml (*) phpunit/phpunit 11.5.4 requires ext-xml (*) phpunit/phpunit 11.5.3 requires ext-xml (*) phpunit/phpunit 11.5.2 requires ext-xml (*) phpunit/phpunit 11.5.1 requires ext-xml (*) phpunit/phpunit 11.5.0 requires ext-xml (*) phpunit/phpunit 11.4.4 requires ext-xml (*) phpunit/phpunit 11.4.3 requires ext-xml (*) phpunit/phpunit 11.4.2 requires ext-xml (*) phpunit/phpunit 11.4.1 requires ext-xml (*) phpunit/phpunit 11.4.0 requires ext-xml (*) phpunit/phpunit 11.3.6 requires ext-xml (*) phpunit/phpunit 11.3.5 requires ext-xml (*) phpunit/phpunit 11.3.4 requires ext-xml (*) phpunit/phpunit 11.3.3 requires ext-xml (*) phpunit/phpunit 11.3.2 requires ext-xml (*) phpunit/phpunit 11.3.1 requires ext-xml (*) phpunit/phpunit 11.3.0 requires ext-xml (*) phpunit/phpunit 11.2.9 requires ext-xml (*) phpunit/phpunit 11.2.8 requires ext-xml (*) phpunit/phpunit 11.2.7 requires ext-xml (*) phpunit/phpunit 11.2.6 requires ext-xml (*) phpunit/phpunit 11.2.5 requires ext-xml (*) phpunit/phpunit 11.2.4 requires ext-xml (*) phpunit/phpunit 11.2.3 requires ext-xml (*) phpunit/phpunit 11.2.2 requires ext-xml (*) phpunit/phpunit 11.2.1 requires ext-xml (*) phpunit/phpunit 11.2.0 requires ext-xml (*) phpunit/phpunit 11.5.18 requires ext-xmlwriter (*) phpunit/phpunit 11.5.17 requires ext-xmlwriter (*) phpunit/phpunit 11.5.16 requires ext-xmlwriter (*) phpunit/phpunit 11.5.15 requires ext-xmlwriter (*) phpunit/phpunit 11.5.14 requires ext-xmlwriter (*) phpunit/phpunit 11.5.13 requires ext-xmlwriter (*) phpunit/phpunit 11.5.12 requires ext-xmlwriter (*) phpunit/phpunit 11.5.11 requires ext-xmlwriter (*) phpunit/phpunit 11.5.10 requires ext-xmlwriter (*) phpunit/phpunit 11.5.9 requires ext-xmlwriter (*) phpunit/phpunit 11.5.8 requires ext-xmlwriter (*) phpunit/phpunit 11.5.7 requires ext-xmlwriter (*) phpunit/phpunit 11.5.6 requires ext-xmlwriter (*) phpunit/phpunit 11.5.5 requires ext-xmlwriter (*) phpunit/phpunit 11.5.4 requires ext-xmlwriter (*) phpunit/phpunit 11.5.3 requires ext-xmlwriter (*) phpunit/phpunit 11.5.2 requires ext-xmlwriter (*) phpunit/phpunit 11.5.1 requires ext-xmlwriter (*) phpunit/phpunit 11.5.0 requires ext-xmlwriter (*) phpunit/phpunit 11.4.4 requires ext-xmlwriter (*) phpunit/phpunit 11.4.3 requires ext-xmlwriter (*) phpunit/phpunit 11.4.2 requires ext-xmlwriter (*) phpunit/phpunit 11.4.1 requires ext-xmlwriter (*) phpunit/phpunit 11.4.0 requires ext-xmlwriter (*) phpunit/phpunit 11.3.6 requires ext-xmlwriter (*) phpunit/phpunit 11.3.5 requires ext-xmlwriter (*) phpunit/phpunit 11.3.4 requires ext-xmlwriter (*) phpunit/phpunit 11.3.3 requires ext-xmlwriter (*) phpunit/phpunit 11.3.2 requires ext-xmlwriter (*) phpunit/phpunit 11.3.1 requires ext-xmlwriter (*) phpunit/phpunit 11.3.0 requires ext-xmlwriter (*) phpunit/phpunit 11.2.9 requires ext-xmlwriter (*) phpunit/phpunit 11.2.8 requires ext-xmlwriter (*) phpunit/phpunit 11.2.7 requires ext-xmlwriter (*) phpunit/phpunit 11.2.6 requires ext-xmlwriter (*) phpunit/phpunit 11.2.5 requires ext-xmlwriter (*) phpunit/phpunit 11.2.4 requires ext-xmlwriter (*) phpunit/phpunit 11.2.3 requires ext-xmlwriter (*) phpunit/phpunit 11.2.2 requires ext-xmlwriter (*) phpunit/phpunit 11.2.1 requires ext-xmlwriter (*) phpunit/phpunit 11.2.0 requires ext-xmlwriter (*) phpunit/phpunit 11.2.6 requires myclabs/deep-copy ([>= 1.10.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.2.5 requires myclabs/deep-copy ([>= 1.10.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.2.4 requires myclabs/deep-copy ([>= 1.10.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.2.3 requires myclabs/deep-copy ([>= 1.10.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.2.2 requires myclabs/deep-copy ([>= 1.10.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.2.1 requires myclabs/deep-copy ([>= 1.10.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.2.0 requires myclabs/deep-copy ([>= 1.10.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.4.3 requires myclabs/deep-copy ([>= 1.12.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.4.2 requires myclabs/deep-copy ([>= 1.12.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.4.1 requires myclabs/deep-copy ([>= 1.12.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.4.0 requires myclabs/deep-copy ([>= 1.12.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.3.6 requires myclabs/deep-copy ([>= 1.12.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.3.5 requires myclabs/deep-copy ([>= 1.12.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.3.4 requires myclabs/deep-copy ([>= 1.12.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.3.3 requires myclabs/deep-copy ([>= 1.12.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.3.2 requires myclabs/deep-copy ([>= 1.12.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.3.1 requires myclabs/deep-copy ([>= 1.12.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.3.0 requires myclabs/deep-copy ([>= 1.12.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.2.9 requires myclabs/deep-copy ([>= 1.12.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.2.8 requires myclabs/deep-copy ([>= 1.12.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.2.7 requires myclabs/deep-copy ([>= 1.12.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.8 requires myclabs/deep-copy ([>= 1.12.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.7 requires myclabs/deep-copy ([>= 1.12.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.6 requires myclabs/deep-copy ([>= 1.12.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.5 requires myclabs/deep-copy ([>= 1.12.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.4 requires myclabs/deep-copy ([>= 1.12.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.3 requires myclabs/deep-copy ([>= 1.12.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.2 requires myclabs/deep-copy ([>= 1.12.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.1 requires myclabs/deep-copy ([>= 1.12.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.0 requires myclabs/deep-copy ([>= 1.12.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.4.4 requires myclabs/deep-copy ([>= 1.12.1.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.18 requires myclabs/deep-copy ([>= 1.13.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.17 requires myclabs/deep-copy ([>= 1.13.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.16 requires myclabs/deep-copy ([>= 1.13.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.15 requires myclabs/deep-copy ([>= 1.13.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.14 requires myclabs/deep-copy ([>= 1.13.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.13 requires myclabs/deep-copy ([>= 1.13.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.12 requires myclabs/deep-copy ([>= 1.13.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.11 requires myclabs/deep-copy ([>= 1.13.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.10 requires myclabs/deep-copy ([>= 1.13.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.9 requires myclabs/deep-copy ([>= 1.13.0.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.2.6 requires phar-io/manifest ([>= 2.0.3.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.2.5 requires phar-io/manifest ([>= 2.0.3.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.2.4 requires phar-io/manifest ([>= 2.0.3.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.2.3 requires phar-io/manifest ([>= 2.0.3.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.2.2 requires phar-io/manifest ([>= 2.0.3.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.2.1 requires phar-io/manifest ([>= 2.0.3.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.2.0 requires phar-io/manifest ([>= 2.0.3.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.18 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.17 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.16 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.15 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.14 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.13 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.12 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.11 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.10 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.9 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.8 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.7 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.6 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.5 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.4 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.3 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.2 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.1 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.5.0 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.4.4 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.4.3 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.4.2 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.4.1 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.4.0 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.3.6 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.3.5 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.3.4 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.3.3 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.3.2 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.3.1 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.3.0 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.2.9 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.2.8 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.2.7 requires phar-io/manifest ([>= 2.0.4.0-dev < 3.0.0.0-dev]) phpunit/phpunit 11.2.6 requires phar-io/version ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.5 requires phar-io/version ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.4 requires phar-io/version ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.3 requires phar-io/version ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.2 requires phar-io/version ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.1 requires phar-io/version ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.0 requires phar-io/version ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.18 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.17 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.16 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.15 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.14 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.13 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.12 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.11 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.10 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.9 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.8 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.7 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.6 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.5 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.4 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.3 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.2 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.1 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.0 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.4.4 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.4.3 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.4.2 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.4.1 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.4.0 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.6 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.5 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.4 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.3 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.2 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.1 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.0 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.9 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.8 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.7 requires phar-io/version ([>= 3.2.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.18 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.17 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.16 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.15 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.14 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.13 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.12 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.11 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.10 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.9 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.8 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.7 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.6 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.5 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.4 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.3 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.2 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.1 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.5.0 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.4.4 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.4.3 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.4.2 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.4.1 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.4.0 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.3.6 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.3.5 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.3.4 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.3.3 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.3.2 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.3.1 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.3.0 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.2.9 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.2.8 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.2.7 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.2.6 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.2.5 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.2.4 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.2.3 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.2.2 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.2.1 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.2.0 requires php (>= 8.2.0.0-dev) phpunit/phpunit 11.2.6 requires phpunit/php-code-coverage ([>= 11.0.0.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.2.5 requires phpunit/php-code-coverage ([>= 11.0.0.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.2.4 requires phpunit/php-code-coverage ([>= 11.0.0.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.2.3 requires phpunit/php-code-coverage ([>= 11.0.0.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.2.2 requires phpunit/php-code-coverage ([>= 11.0.0.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.2.1 requires phpunit/php-code-coverage ([>= 11.0.0.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.2.0 requires phpunit/php-code-coverage ([>= 11.0.0.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.3.1 requires phpunit/php-code-coverage ([>= 11.0.5.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.3.0 requires phpunit/php-code-coverage ([>= 11.0.5.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.2.9 requires phpunit/php-code-coverage ([>= 11.0.5.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.2.8 requires phpunit/php-code-coverage ([>= 11.0.5.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.2.7 requires phpunit/php-code-coverage ([>= 11.0.5.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.4.1 requires phpunit/php-code-coverage ([>= 11.0.6.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.4.0 requires phpunit/php-code-coverage ([>= 11.0.6.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.3.6 requires phpunit/php-code-coverage ([>= 11.0.6.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.3.5 requires phpunit/php-code-coverage ([>= 11.0.6.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.3.4 requires phpunit/php-code-coverage ([>= 11.0.6.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.3.3 requires phpunit/php-code-coverage ([>= 11.0.6.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.3.2 requires phpunit/php-code-coverage ([>= 11.0.6.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.5.1 requires phpunit/php-code-coverage ([>= 11.0.7.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.5.0 requires phpunit/php-code-coverage ([>= 11.0.7.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.4.4 requires phpunit/php-code-coverage ([>= 11.0.7.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.4.3 requires phpunit/php-code-coverage ([>= 11.0.7.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.4.2 requires phpunit/php-code-coverage ([>= 11.0.7.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.5.10 requires phpunit/php-code-coverage ([>= 11.0.8.0-dev < 12.0.0.0-dev]) phpunit/phpunit 11.5.9 requires phpunit/php-code-coverage ([>= 11.0.8.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.5.8 requires phpunit/php-code-coverage ([>= 11.0.8.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.5.7 requires phpunit/php-code-coverage ([>= 11.0.8.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.5.6 requires phpunit/php-code-coverage ([>= 11.0.8.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.5.5 requires phpunit/php-code-coverage ([>= 11.0.8.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.5.4 requires phpunit/php-code-coverage ([>= 11.0.8.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.5.3 requires phpunit/php-code-coverage ([>= 11.0.8.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.5.2 requires phpunit/php-code-coverage ([>= 11.0.8.0-dev < 12.0.0.0- dev]) phpunit/phpunit 11.5.18 requires phpunit/php-code-coverage ([>= 11.0.9.0-dev < 12.0.0.0-dev]) phpunit/phpunit 11.5.17 requires phpunit/php-code-coverage ([>= 11.0.9.0-dev < 12.0.0.0-dev]) phpunit/phpunit 11.5.16 requires phpunit/php-code-coverage ([>= 11.0.9.0-dev < 12.0.0.0-dev]) phpunit/phpunit 11.5.15 requires phpunit/php-code-coverage ([>= 11.0.9.0-dev < 12.0.0.0-dev]) phpunit/phpunit 11.5.14 requires phpunit/php-code-coverage ([>= 11.0.9.0-dev < 12.0.0.0-dev]) phpunit/phpunit 11.5.13 requires phpunit/php-code-coverage ([>= 11.0.9.0-dev < 12.0.0.0-dev]) phpunit/phpunit 11.5.12 requires phpunit/php-code-coverage ([>= 11.0.9.0-dev < 12.0.0.0-dev]) phpunit/phpunit 11.5.11 requires phpunit/php-code-coverage ([>= 11.0.9.0-dev < 12.0.0.0-dev]) phpunit/phpunit 11.2.6 requires phpunit/php-file-iterator ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.2.5 requires phpunit/php-file-iterator ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.2.4 requires phpunit/php-file-iterator ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.2.3 requires phpunit/php-file-iterator ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.2.2 requires phpunit/php-file-iterator ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.2.1 requires phpunit/php-file-iterator ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.2.0 requires phpunit/php-file-iterator ([>= 5.0.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.3.1 requires phpunit/php-file-iterator ([>= 5.0.1.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.3.0 requires phpunit/php-file-iterator ([>= 5.0.1.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.2.9 requires phpunit/php-file-iterator ([>= 5.0.1.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.2.8 requires phpunit/php-file-iterator ([>= 5.0.1.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.2.7 requires phpunit/php-file-iterator ([>= 5.0.1.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.18 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.17 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.16 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.15 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.14 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.13 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.12 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.11 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.10 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.9 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.8 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.7 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.6 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.5 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.4 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.3 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.2 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.1 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.5.0 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.4.4 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.4.3 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.4.2 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.4.1 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.4.0 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.3.6 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.3.5 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.3.4 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.3.3 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.3.2 requires phpunit/php-file-iterator ([>= 5.1.0.0-dev < 6.0.0.0- dev]) phpunit/phpunit 11.2.6 requires phpunit/php-invoker ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.5 requires phpunit/php-invoker ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.4 requires phpunit/php-invoker ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.3 requires phpunit/php-invoker ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.2 requires phpunit/php-invoker ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.1 requires phpunit/php-invoker ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.0 requires phpunit/php-invoker ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.18 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.17 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.16 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.15 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.14 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.13 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.12 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.11 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.10 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.9 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.8 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.7 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.6 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.5 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.4 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.3 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.2 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.1 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.0 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.4.4 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.4.3 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.4.2 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.4.1 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.4.0 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.6 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.5 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.4 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.3 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.2 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.1 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.0 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.9 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.8 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.7 requires phpunit/php-invoker ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.6 requires phpunit/php-text-template ([>= 4.0.0.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.2.5 requires phpunit/php-text-template ([>= 4.0.0.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.2.4 requires phpunit/php-text-template ([>= 4.0.0.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.2.3 requires phpunit/php-text-template ([>= 4.0.0.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.2.2 requires phpunit/php-text-template ([>= 4.0.0.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.2.1 requires phpunit/php-text-template ([>= 4.0.0.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.2.0 requires phpunit/php-text-template ([>= 4.0.0.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.18 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.17 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.16 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.15 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.14 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.13 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.12 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.11 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.10 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.9 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.8 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.7 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.6 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.5 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.4 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.3 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.2 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.1 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.5.0 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.4.4 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.4.3 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.4.2 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.4.1 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.4.0 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.3.6 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.3.5 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.3.4 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.3.3 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.3.2 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.3.1 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.3.0 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.2.9 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.2.8 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.2.7 requires phpunit/php-text-template ([>= 4.0.1.0-dev < 5.0.0.0- dev]) phpunit/phpunit 11.2.6 requires phpunit/php-timer ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.5 requires phpunit/php-timer ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.4 requires phpunit/php-timer ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.3 requires phpunit/php-timer ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.2 requires phpunit/php-timer ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.1 requires phpunit/php-timer ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.0 requires phpunit/php-timer ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.18 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.17 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.16 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.15 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.14 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.13 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.12 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.11 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.10 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.9 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.8 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.7 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.6 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.5 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.4 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.3 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.2 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.1 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.0 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.4.4 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.4.3 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.4.2 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.4.1 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.4.0 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.6 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.5 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.4 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.3 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.2 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.1 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.0 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.9 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.8 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.7 requires phpunit/php-timer ([>= 7.0.1.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.6 requires sebastian/cli-parser ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.5 requires sebastian/cli-parser ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.4 requires sebastian/cli-parser ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.3 requires sebastian/cli-parser ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.2 requires sebastian/cli-parser ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.1 requires sebastian/cli-parser ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.0 requires sebastian/cli-parser ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.18 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.17 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.16 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.15 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.14 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.13 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.12 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.11 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.10 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.9 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.8 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.7 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.6 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.5 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.4 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.3 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.2 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.1 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.0 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.4.4 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.4.3 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.4.2 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.4.1 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.4.0 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.6 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.5 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.4 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.3 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.2 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.1 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.0 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.9 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.8 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.7 requires sebastian/cli-parser ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.6 requires sebastian/code-unit ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.5 requires sebastian/code-unit ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.4 requires sebastian/code-unit ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.3 requires sebastian/code-unit ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.2 requires sebastian/code-unit ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.1 requires sebastian/code-unit ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.0 requires sebastian/code-unit ([>= 3.0.0.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.1 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.0 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.4.4 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.4.3 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.4.2 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.4.1 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.4.0 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.6 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.5 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.4 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.3 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.2 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.1 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.3.0 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.9 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.8 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.7 requires sebastian/code-unit ([>= 3.0.1.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.13 requires sebastian/code-unit ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.12 requires sebastian/code-unit ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.11 requires sebastian/code-unit ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.10 requires sebastian/code-unit ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.9 requires sebastian/code-unit ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.8 requires sebastian/code-unit ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.7 requires sebastian/code-unit ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.6 requires sebastian/code-unit ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.5 requires sebastian/code-unit ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.4 requires sebastian/code-unit ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.3 requires sebastian/code-unit ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.2 requires sebastian/code-unit ([>= 3.0.2.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.18 requires sebastian/code-unit ([>= 3.0.3.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.17 requires sebastian/code-unit ([>= 3.0.3.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.16 requires sebastian/code-unit ([>= 3.0.3.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.15 requires sebastian/code-unit ([>= 3.0.3.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.5.14 requires sebastian/code-unit ([>= 3.0.3.0-dev < 4.0.0.0-dev]) phpunit/phpunit 11.2.6 requires sebastian/comparator ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.5 requires sebastian/comparator ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.4 requires sebastian/comparator ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.3 requires sebastian/comparator ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.2 requires sebastian/comparator ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.1 requires sebastian/comparator ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.0 requires sebastian/comparator ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.0 requires sebastian/comparator ([>= 6.0.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.9 requires sebastian/comparator ([>= 6.0.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.8 requires sebastian/comparator ([>= 6.0.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.7 requires sebastian/comparator ([>= 6.0.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.4 requires sebastian/comparator ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.3 requires sebastian/comparator ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.2 requires sebastian/comparator ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.1 requires sebastian/comparator ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.4.1 requires sebastian/comparator ([>= 6.1.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.4.0 requires sebastian/comparator ([>= 6.1.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.6 requires sebastian/comparator ([>= 6.1.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.5 requires sebastian/comparator ([>= 6.1.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.4.3 requires sebastian/comparator ([>= 6.1.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.4.2 requires sebastian/comparator ([>= 6.1.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.2 requires sebastian/comparator ([>= 6.2.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.1 requires sebastian/comparator ([>= 6.2.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.0 requires sebastian/comparator ([>= 6.2.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.4.4 requires sebastian/comparator ([>= 6.2.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.11 requires sebastian/comparator ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.10 requires sebastian/comparator ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.9 requires sebastian/comparator ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.8 requires sebastian/comparator ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.7 requires sebastian/comparator ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.6 requires sebastian/comparator ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.5 requires sebastian/comparator ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.4 requires sebastian/comparator ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.3 requires sebastian/comparator ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.18 requires sebastian/comparator ([>= 6.3.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.17 requires sebastian/comparator ([>= 6.3.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.16 requires sebastian/comparator ([>= 6.3.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.15 requires sebastian/comparator ([>= 6.3.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.14 requires sebastian/comparator ([>= 6.3.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.13 requires sebastian/comparator ([>= 6.3.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.12 requires sebastian/comparator ([>= 6.3.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.6 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.5 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.4 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.3 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.2 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.1 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.0 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.18 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.17 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.16 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.15 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.14 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.13 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.12 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.11 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.10 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.9 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.8 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.7 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.6 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.5 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.4 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.3 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.2 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.1 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.0 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.4.4 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.4.3 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.4.2 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.4.1 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.4.0 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.6 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.5 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.4 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.3 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.2 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.1 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.0 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.9 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.8 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.7 requires sebastian/diff ([>= 6.0.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.6 requires sebastian/environment ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.5 requires sebastian/environment ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.4 requires sebastian/environment ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.3 requires sebastian/environment ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.2 requires sebastian/environment ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.1 requires sebastian/environment ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.0 requires sebastian/environment ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.18 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.17 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.16 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.15 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.14 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.13 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.12 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.11 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.10 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.9 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.8 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.7 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.6 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.5 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.4 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.3 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.2 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.1 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.0 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.4.4 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.4.3 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.4.2 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.4.1 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.4.0 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.6 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.5 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.4 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.3 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.2 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.1 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.0 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.9 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.8 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.7 requires sebastian/environment ([>= 7.2.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.2 requires sebastian/exporter ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.1 requires sebastian/exporter ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.0 requires sebastian/exporter ([>= 6.0.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.6 requires sebastian/exporter ([>= 6.1.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.5 requires sebastian/exporter ([>= 6.1.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.4 requires sebastian/exporter ([>= 6.1.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.3 requires sebastian/exporter ([>= 6.1.2.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.4.4 requires sebastian/exporter ([>= 6.1.3.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.4.3 requires sebastian/exporter ([>= 6.1.3.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.4.2 requires sebastian/exporter ([>= 6.1.3.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.4.1 requires sebastian/exporter ([>= 6.1.3.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.4.0 requires sebastian/exporter ([>= 6.1.3.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.6 requires sebastian/exporter ([>= 6.1.3.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.5 requires sebastian/exporter ([>= 6.1.3.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.4 requires sebastian/exporter ([>= 6.1.3.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.3 requires sebastian/exporter ([>= 6.1.3.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.2 requires sebastian/exporter ([>= 6.1.3.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.1 requires sebastian/exporter ([>= 6.1.3.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.3.0 requires sebastian/exporter ([>= 6.1.3.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.9 requires sebastian/exporter ([>= 6.1.3.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.8 requires sebastian/exporter ([>= 6.1.3.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.7 requires sebastian/exporter ([>= 6.1.3.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.18 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.17 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.16 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.15 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.14 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.13 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.12 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.11 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.10 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.9 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.8 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.7 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.6 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.5 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.4 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.3 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.2 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.1 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.0 requires sebastian/exporter ([>= 6.3.0.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.2.6 requires sebastian/global-state ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.5 requires sebastian/global-state ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.4 requires sebastian/global-state ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.3 requires sebastian/global-state ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.2 requires sebastian/global-state ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.1 requires sebastian/global-state ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.0 requires sebastian/global-state ([>= 7.0.0.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.18 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0- dev]) phpunit/phpunit 11.5.17 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0- dev]) phpunit/phpunit 11.5.16 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0- dev]) phpunit/phpunit 11.5.15 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0- dev]) phpunit/phpunit 11.5.14 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0- dev]) phpunit/phpunit 11.5.13 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0- dev]) phpunit/phpunit 11.5.12 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0- dev]) phpunit/phpunit 11.5.11 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0- dev]) phpunit/phpunit 11.5.10 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0- dev]) phpunit/phpunit 11.5.9 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.8 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.7 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.6 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.5 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.4 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.3 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.2 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.1 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.5.0 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.4.4 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.4.3 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.4.2 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.4.1 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.4.0 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.6 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.5 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.4 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.3 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.2 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.1 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.3.0 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.9 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.8 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.7 requires sebastian/global-state ([>= 7.0.2.0-dev < 8.0.0.0-dev]) phpunit/phpunit 11.2.6 requires sebastian/object-enumerator ([>= 6.0.0.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.2.5 requires sebastian/object-enumerator ([>= 6.0.0.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.2.4 requires sebastian/object-enumerator ([>= 6.0.0.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.2.3 requires sebastian/object-enumerator ([>= 6.0.0.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.2.2 requires sebastian/object-enumerator ([>= 6.0.0.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.2.1 requires sebastian/object-enumerator ([>= 6.0.0.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.2.0 requires sebastian/object-enumerator ([>= 6.0.0.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.5.18 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.17 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.16 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.15 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.14 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.13 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.12 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.11 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.10 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0-dev]) phpunit/phpunit 11.5.9 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.5.8 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.5.7 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.5.6 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.5.5 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.5.4 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.5.3 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.5.2 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.5.1 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.5.0 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.4.4 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.4.3 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.4.2 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.4.1 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.4.0 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.3.6 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.3.5 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.3.4 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.3.3 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.3.2 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.3.1 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.3.0 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.2.9 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.2.8 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.2.7 requires sebastian/object-enumerator ([>= 6.0.1.0-dev < 7.0.0.0- dev]) phpunit/phpunit 11.2.6 requires sebastian/type ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.5 requires sebastian/type ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.4 requires sebastian/type ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.3 requires sebastian/type ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.2 requires sebastian/type ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.1 requires sebastian/type ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.0 requires sebastian/type ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.5 requires sebastian/type ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.4 requires sebastian/type ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.3 requires sebastian/type ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.2 requires sebastian/type ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.1 requires sebastian/type ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.0 requires sebastian/type ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.9 requires sebastian/type ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.8 requires sebastian/type ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.7 requires sebastian/type ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.12 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.11 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.10 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.9 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.8 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.7 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.6 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.5 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.4 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.3 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.2 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.1 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.0 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.4.4 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.4.3 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.4.2 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.4.1 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.4.0 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.6 requires sebastian/type ([>= 5.1.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.18 requires sebastian/type ([>= 5.1.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.17 requires sebastian/type ([>= 5.1.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.16 requires sebastian/type ([>= 5.1.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.15 requires sebastian/type ([>= 5.1.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.14 requires sebastian/type ([>= 5.1.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.13 requires sebastian/type ([>= 5.1.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.6 requires sebastian/version ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.5 requires sebastian/version ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.4 requires sebastian/version ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.3 requires sebastian/version ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.2 requires sebastian/version ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.1 requires sebastian/version ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.0 requires sebastian/version ([>= 5.0.0.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.4.1 requires sebastian/version ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.4.0 requires sebastian/version ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.6 requires sebastian/version ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.5 requires sebastian/version ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.4 requires sebastian/version ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.3 requires sebastian/version ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.2 requires sebastian/version ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.1 requires sebastian/version ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.3.0 requires sebastian/version ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.9 requires sebastian/version ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.8 requires sebastian/version ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.2.7 requires sebastian/version ([>= 5.0.1.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.18 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.17 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.16 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.15 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.14 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.13 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.12 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.11 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.10 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.9 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.8 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.7 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.6 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.5 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.4 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.3 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.2 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.1 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.0 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.4.4 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.4.3 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.4.2 requires sebastian/version ([>= 5.0.2.0-dev < 6.0.0.0-dev]) phpunit/phpunit 11.5.18 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.17 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.16 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.15 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.14 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.13 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.12 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.11 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.10 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.9 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.8 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.7 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.6 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.5 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.4 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.3 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.2 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.1 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) phpunit/phpunit 11.5.0 requires staabm/side-effects-detector ([>= 1.0.5.0-dev < 2.0.0.0-dev]) sebastian/cli-parser 3.0.2 requires php (>= 8.2.0.0-dev) sebastian/cli-parser 3.0.1 requires php (>= 8.2.0.0-dev) sebastian/cli-parser 3.0.0 requires php (>= 8.2.0.0-dev) sebastian/code-unit 3.0.3 requires php (>= 8.2.0.0-dev) sebastian/code-unit 3.0.2 requires php (>= 8.2.0.0-dev) sebastian/code-unit 3.0.1 requires php (>= 8.2.0.0-dev) sebastian/code-unit 3.0.0 requires php (>= 8.2.0.0-dev) sebastian/code-unit-reverse-lookup 4.0.1 requires php (>= 8.2.0.0-dev) sebastian/code-unit-reverse-lookup 4.0.0 requires php (>= 8.2.0.0-dev) sebastian/comparator 6.3.1 requires ext-dom (*) sebastian/comparator 6.3.0 requires ext-dom (*) sebastian/comparator 6.2.1 requires ext-dom (*) sebastian/comparator 6.2.0 requires ext-dom (*) sebastian/comparator 6.1.1 requires ext-dom (*) sebastian/comparator 6.1.0 requires ext-dom (*) sebastian/comparator 6.0.2 requires ext-dom (*) sebastian/comparator 6.0.1 requires ext-dom (*) sebastian/comparator 6.0.0 requires ext-dom (*) sebastian/comparator 6.3.1 requires ext-mbstring (*) sebastian/comparator 6.3.0 requires ext-mbstring (*) sebastian/comparator 6.2.1 requires ext-mbstring (*) sebastian/comparator 6.2.0 requires ext-mbstring (*) sebastian/comparator 6.1.1 requires ext-mbstring (*) sebastian/comparator 6.1.0 requires ext-mbstring (*) sebastian/comparator 6.0.2 requires ext-mbstring (*) sebastian/comparator 6.0.1 requires ext-mbstring (*) sebastian/comparator 6.0.0 requires ext-mbstring (*) sebastian/comparator 6.3.1 requires php (>= 8.2.0.0-dev) sebastian/comparator 6.3.0 requires php (>= 8.2.0.0-dev) sebastian/comparator 6.2.1 requires php (>= 8.2.0.0-dev) sebastian/comparator 6.2.0 requires php (>= 8.2.0.0-dev) sebastian/comparator 6.1.1 requires php (>= 8.2.0.0-dev) sebastian/comparator 6.1.0 requires php (>= 8.2.0.0-dev) sebastian/comparator 6.0.2 requires php (>= 8.2.0.0-dev) sebastian/comparator 6.0.1 requires php (>= 8.2.0.0-dev) sebastian/comparator 6.0.0 requires php (>= 8.2.0.0-dev) sebastian/comparator 6.3.1 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.3.0 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.2.1 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.2.0 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.1.1 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.1.0 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.0.2 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.0.1 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.0.0 requires sebastian/diff ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.3.1 requires sebastian/exporter ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.3.0 requires sebastian/exporter ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.2.1 requires sebastian/exporter ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.2.0 requires sebastian/exporter ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.1.1 requires sebastian/exporter ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.1.0 requires sebastian/exporter ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.0.2 requires sebastian/exporter ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.0.1 requires sebastian/exporter ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/comparator 6.0.0 requires sebastian/exporter ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/complexity 4.0.1 requires nikic/php-parser ([>= 5.0.0.0-dev < 6.0.0.0-dev]) sebastian/complexity 4.0.0 requires nikic/php-parser ([>= 5.0.0.0-dev < 6.0.0.0-dev]) sebastian/complexity 4.0.1 requires php (>= 8.2.0.0-dev) sebastian/complexity 4.0.0 requires php (>= 8.2.0.0-dev) sebastian/diff 6.0.2 requires php (>= 8.2.0.0-dev) sebastian/diff 6.0.1 requires php (>= 8.2.0.0-dev) sebastian/diff 6.0.0 requires php (>= 8.2.0.0-dev) sebastian/environment 7.2.0 requires php (>= 8.2.0.0-dev) sebastian/environment 7.1.0 requires php (>= 8.2.0.0-dev) sebastian/environment 7.0.0 requires php (>= 8.2.0.0-dev) sebastian/exporter 6.3.0 requires ext-mbstring (*) sebastian/exporter 6.2.0 requires ext-mbstring (*) sebastian/exporter 6.1.3 requires ext-mbstring (*) sebastian/exporter 6.1.2 requires ext-mbstring (*) sebastian/exporter 6.1.1 requires ext-mbstring (*) sebastian/exporter 6.1.0 requires ext-mbstring (*) sebastian/exporter 6.0.3 requires ext-mbstring (*) sebastian/exporter 6.0.1 requires ext-mbstring (*) sebastian/exporter 6.0.0 requires ext-mbstring (*) sebastian/exporter 6.3.0 requires php (>= 8.2.0.0-dev) sebastian/exporter 6.2.0 requires php (>= 8.2.0.0-dev) sebastian/exporter 6.1.3 requires php (>= 8.2.0.0-dev) sebastian/exporter 6.1.2 requires php (>= 8.2.0.0-dev) sebastian/exporter 6.1.1 requires php (>= 8.2.0.0-dev) sebastian/exporter 6.1.0 requires php (>= 8.2.0.0-dev) sebastian/exporter 6.0.3 requires php (>= 8.2.0.0-dev) sebastian/exporter 6.0.1 requires php (>= 8.2.0.0-dev) sebastian/exporter 6.0.0 requires php (>= 8.2.0.0-dev) sebastian/exporter 6.3.0 requires sebastian/recursion-context ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/exporter 6.2.0 requires sebastian/recursion-context ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/exporter 6.1.3 requires sebastian/recursion-context ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/exporter 6.1.2 requires sebastian/recursion-context ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/exporter 6.1.1 requires sebastian/recursion-context ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/exporter 6.1.0 requires sebastian/recursion-context ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/exporter 6.0.3 requires sebastian/recursion-context ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/exporter 6.0.1 requires sebastian/recursion-context ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/exporter 6.0.0 requires sebastian/recursion-context ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/global-state 7.0.2 requires php (>= 8.2.0.0-dev) sebastian/global-state 7.0.1 requires php (>= 8.2.0.0-dev) sebastian/global-state 7.0.0 requires php (>= 8.2.0.0-dev) sebastian/global-state 7.0.2 requires sebastian/object-reflector ([>= 4.0.0.0-dev < 5.0.0.0-dev]) sebastian/global-state 7.0.1 requires sebastian/object-reflector ([>= 4.0.0.0-dev < 5.0.0.0-dev]) sebastian/global-state 7.0.0 requires sebastian/object-reflector ([>= 4.0.0.0-dev < 5.0.0.0-dev]) sebastian/global-state 7.0.2 requires sebastian/recursion-context ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/global-state 7.0.1 requires sebastian/recursion-context ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/global-state 7.0.0 requires sebastian/recursion-context ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/lines-of-code 3.0.1 requires nikic/php-parser ([>= 5.0.0.0-dev < 6.0.0.0- dev]) sebastian/lines-of-code 3.0.0 requires nikic/php-parser ([>= 5.0.0.0-dev < 6.0.0.0- dev]) sebastian/lines-of-code 3.0.1 requires php (>= 8.2.0.0-dev) sebastian/lines-of-code 3.0.0 requires php (>= 8.2.0.0-dev) sebastian/object-enumerator 6.0.1 requires php (>= 8.2.0.0-dev) sebastian/object-enumerator 6.0.0 requires php (>= 8.2.0.0-dev) sebastian/object-enumerator 6.0.1 requires sebastian/object-reflector ([>= 4.0.0.0-dev < 5.0.0.0-dev]) sebastian/object-enumerator 6.0.0 requires sebastian/object-reflector ([>= 4.0.0.0-dev < 5.0.0.0-dev]) sebastian/object-enumerator 6.0.1 requires sebastian/recursion-context ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/object-enumerator 6.0.0 requires sebastian/recursion-context ([>= 6.0.0.0-dev < 7.0.0.0-dev]) sebastian/object-reflector 4.0.1 requires php (>= 8.2.0.0-dev) sebastian/object-reflector 4.0.0 requires php (>= 8.2.0.0-dev) sebastian/recursion-context 6.0.2 requires php (>= 8.2.0.0-dev) sebastian/recursion-context 6.0.1 requires php (>= 8.2.0.0-dev) sebastian/recursion-context 6.0.0 requires php (>= 8.2.0.0-dev) sebastian/type 5.1.2 requires php (>= 8.2.0.0-dev) sebastian/type 5.1.1 requires php (>= 8.2.0.0-dev) sebastian/type 5.1.0 requires php (>= 8.2.0.0-dev) sebastian/type 5.0.1 requires php (>= 8.2.0.0-dev) sebastian/type 5.0.0 requires php (>= 8.2.0.0-dev) sebastian/version 5.0.2 requires php (>= 8.2.0.0-dev) sebastian/version 5.0.1 requires php (>= 8.2.0.0-dev) sebastian/version 5.0.0 requires php (>= 8.2.0.0-dev) staabm/side-effects-detector 1.0.5 requires ext-tokenizer (*) staabm/side-effects-detector 1.0.5 requires php ([>= 7.4.0.0-dev < 9.0.0.0-dev]) theseer/tokenizer 1.2.3 requires ext-dom (*) theseer/tokenizer 1.2.2 requires ext-dom (*) theseer/tokenizer 1.2.1 requires ext-dom (*) theseer/tokenizer 1.2.0 requires ext-dom (*) theseer/tokenizer 1.2.3 requires ext-tokenizer (*) theseer/tokenizer 1.2.2 requires ext-tokenizer (*) theseer/tokenizer 1.2.1 requires ext-tokenizer (*) theseer/tokenizer 1.2.0 requires ext-tokenizer (*) theseer/tokenizer 1.2.3 requires ext-xmlwriter (*) theseer/tokenizer 1.2.2 requires ext-xmlwriter (*) theseer/tokenizer 1.2.1 requires ext-xmlwriter (*) theseer/tokenizer 1.2.0 requires ext-xmlwriter (*) theseer/tokenizer 1.2.3 requires php ([>= 7.2.0.0-dev < 9.0.0.0-dev]) theseer/tokenizer 1.2.2 requires php ([>= 7.2.0.0-dev < 9.0.0.0-dev]) theseer/tokenizer 1.2.1 requires php ([>= 7.2.0.0-dev < 9.0.0.0-dev]) theseer/tokenizer 1.2.0 requires php ([>= 7.2.0.0-dev < 9.0.0.0-dev])

Slide 75

Slide 75 text

組み合わせについて考えてみよう ここから、 
 すべての制約が「True」になる組み合わせを 
 見つけなければならない  75

Slide 76

Slide 76 text

組み合わせについて考えてみよう (愚直に列挙+検証するのは変そう)  76 『フカシギの数え方』 おねえさんといっしょ! みんなで数えてみよう 
 https://youtu.be/Q4gTV4r0zRs?si=yKHXECzDPPr3xq1p

Slide 77

Slide 77 text

Composerでの解決 SATソルバーという手法で解決する  77 \オマタセシマシタ/ \スゴイヤツ/

Slide 78

Slide 78 text

SATソルバー?  78 ChatGPT 4o(2025-06)

Slide 79

Slide 79 text

SATソルバー? いくつかのルール • PHPUnitは、^11.2を選択してください • PHPUnitは、複数のバージョンは選択できません • {間接依存パッケージ}の{x.x.x}〜{x.x.x}を入れてください • {間接依存パッケージ}は、複数のバージョンは選択できません  79 これらを全て 
 同時に満たすには?

Slide 80

Slide 80 text

SATソルバー? ちょっと具体的に 
 「問題を解く手順」を覗いてみましょう  80

Slide 81

Slide 81 text

SATソルバーによる問題解決の手順  81 問題を扱い易い形に分解・変換 影響関係のある部分をつなげ、 
 ネットワーク状に整理 1箇所だけ仮の値を代入し、 
 影響を確認・更新 値の組み合わせが矛盾したら出直し 最終的な値の組み合わせを決定

Slide 82

Slide 82 text

SATソルバーによる問題解決の手順 • 問題を解く過程では、 
 「パッケージ×バージョン」ごとに 
 「採用」「不採用」を決定していく • 最終的には 
 「採用リスト」が出来上がる ➡ composer.lockの内容  82 問題を扱い易い形に分解・変換 影響関係のある部分をつなげ、 
 ネットワーク状に整理 1箇所だけ仮の値を代入し、 
 影響を確認・更新 値の組み合わせが矛盾したら出直し 最終的な値の組み合わせを決定

Slide 83

Slide 83 text

SATソルバーによる問題解決の手順 まずは「変換」から 
 見ていきましょう  83 影響関係のある部分をつなげ、 
 ネットワーク状に整理 1箇所だけ仮の値を代入し、 
 影響を確認・更新 値の組み合わせが矛盾したら出直し 最終的な値の組み合わせを決定 問題を扱い易い形に分解・変換

Slide 84

Slide 84 text

Composerの世界で「問題」はどう表されるか 最初の形は  84 guzzlehttp/guzzle:^7.0.0

Slide 85

Slide 85 text

Composerの世界で「問題」はどう表されるか は幅指定なので、「列挙」に変換する  85 ^7.0.0 真・偽を 
 ハッキリさせやすく

Slide 86

Slide 86 text

7.9.3 7.9.2 7.9.1 7.9.0 7.8.2 7.8.1 7.8.0 7.7.1 7.7.0 7.6.1 7.6.0 7.5.3 7.5.2 7.5.1 7.5.0 7.4.5 7.4.4 7.4.3 7.4.2 7.4.1 7.4.0 7.3.0 7.2.0 7.1.1 7.1.0 7.0.1 7.0.0 guzzlehttp/guzzle:^7.0.0 バージョンの指定 対応するバージョン

Slide 87

Slide 87 text

guzzlehttp/guzzle:7.9.3 guzzlehttp/guzzle:7.9.2 guzzlehttp/guzzle:7.9.1 guzzlehttp/guzzle:7.9.0 guzzlehttp/guzzle:7.8.2 guzzlehttp/guzzle:7.8.1 guzzlehttp/guzzle:7.8.0 guzzlehttp/guzzle:7.7.1 guzzlehttp/guzzle:7.7.0 guzzlehttp/guzzle:7.6.1 guzzlehttp/guzzle:7.6.0 guzzlehttp/guzzle:7.5.3 guzzlehttp/guzzle:7.5.2 guzzlehttp/guzzle:7.5.1 guzzlehttp/guzzle:7.5.0 guzzlehttp/guzzle:7.4.5 guzzlehttp/guzzle:7.4.4 guzzlehttp/guzzle:7.4.3 guzzlehttp/guzzle:7.4.2 guzzlehttp/guzzle:7.4.1 guzzlehttp/guzzle:7,4.0 guzzlehttp/guzzle:7.3.0 guzzlehttp/guzzle:7.2.0 guzzlehttp/guzzle:7.1.1 guzzlehttp/guzzle:7.1.0 guzzlehttp/guzzle:7.0.1 guzzlehttp/guzzle:7.0.0 guzzlehttp/guzzle:^7.0.0 (→に並んでいる) 
 いずれかのパッケージを 
 1つだけインストールする

Slide 88

Slide 88 text

Composerの世界で「問題」はどう表されるか 指定範囲に含まれる 
 各バージョンが依存している 
 間接パッケージの情報を追加  88

Slide 89

Slide 89 text

guzzlehttp/promises:^1.5.3||^2.0.3 guzzlehttp/psr7:^2.7.0 psr/http-client:^1.0 symfony/deprecation-contracts:^2.2||^3.0 guzzlehttp/promises:^1.5.3||^2.0.3 guzzlehttp/psr7:^1.9.1||^2.6.3 psr/http-client:^1.0 symfony/deprecation-contracts:^2.2||^3.0 guzzlehttp/promises:^1.4 guzzlehttp/psr7:^1.7 psr/http-client:^1.0 symfony/deprecation-contracts:^2.2 guzzlehttp/guzzle:7.9.2 guzzlehttp/guzzle:7.9.1 guzzlehttp/guzzle:7.9.0 guzzlehttp/guzzle:7.8.1 guzzlehttp/guzzle:7.8.0 guzzlehttp/guzzle:7.7.1 guzzlehttp/guzzle:7.7.0 guzzlehttp/guzzle:7.6.1 guzzlehttp/guzzle:7.6.0 guzzlehttp/guzzle:7.5.3 guzzlehttp/guzzle:7.5.2 guzzlehttp/guzzle:7.5.1 guzzlehttp/guzzle:7.5.0 guzzlehttp/guzzle:7.4.5 guzzlehttp/guzzle:7.4.4 guzzlehttp/guzzle:7.4.3 guzzlehttp/guzzle:7.4.2 guzzlehttp/guzzle:7.4.1 guzzlehttp/guzzle:7,4.0 guzzlehttp/guzzle:7.3.0 guzzlehttp/guzzle:7.1.1 guzzlehttp/guzzle:7.1.0 guzzlehttp/guzzle:7.0.1 guzzlehttp/guzzle:7.0.0 guzzlehttp/guzzle:7.9.3 guzzlehttp/guzzle:7.8.2 guzzlehttp/guzzle:7.2.0

Slide 90

Slide 90 text

guzzlehttp/promises:^1.4 psr/http-client:^1.0 symfony/deprecation-contracts:^2.2 w   w   w   w   w   w   w   w   w   guzzlehttp/psr7: 1.8.0 guzzlehttp/psr7: 1.8.2 guzzlehttp/psr7: 1.8.3 guzzlehttp/psr7: 1.8.4 guzzlehttp/psr7: 1.8.5 guzzlehttp/psr7: 1.9.0 guzzlehttp/psr7: 1.9.1 guzzlehttp/psr7: 1.7.0 guzzlehttp/psr7:^1.7 psr/http-message:~1.0 guzzlehttp/psr7: 1.8.1 ralouphie/getallheaders: 
 ^2.0.5||^3.0.0

Slide 91

Slide 91 text

Composerの世界で「問題」はどう表されるか これを「命題」っぽい形式で書くと?  91

Slide 92

Slide 92 text

• guzzlehttp/guzzle 7.9.3 requires guzzlehttp/promises ^1.5.3 || ^2.0.3 
 satisfiable by 
 guzzlehttp/promises[1.5.3, 2.0.3, 2.0.4, 2.1.0, 2.2.0]. • guzzlehttp/guzzle 7.9.3 requires guzzlehttp/psr7 ^2.7.0 
 satisfiable by 
 guzzlehttp/psr7[2.7.0, 2.7.1]. • guzzlehttp/guzzle 7.9.2 requires guzzlehttp/promises ^1.5.3 || ^2.0.3 
 satisfiable by 
 guzzlehttp/promises[1.5.3, 2.0.3, 2.0.4, 2.1.0, 2.2.0]. • guzzlehttp/guzzle 7.9.2 requires guzzlehttp/psr7 ^2.7.0 
 satisfiable by 
 guzzlehttp/psr7[2.7.0, 2.7.1].

Slide 93

Slide 93 text

表現の簡素化 「A → (X-1 | X-2 | X-3)」形式に変換できる  93 guzzlehttp/guzzle 7.9.3 requires guzzlehttp/promises ^1.5.3 || ^2.0.3 
 satisfiable by 
 guzzlehttp/promises[1.5.3, 2.0.3, 2.0.4, 2.1.0, 2.2.0]. guzzlehttp/guzzle 7.9.3 requires ( 
 guzzlehttp/promises 1.5.3 OR guzzlehttp/promises 2.0.3 OR 
 guzzlehttp/promises 2.0.4 OR guzzlehttp/promises 2.1.0 OR 
 guzzlehttp/promises 2.2.0 )

Slide 94

Slide 94 text

CNF(連言標準形) 更に「not(A) | X-1 | X-2 | X-3」形式に置き換える  94 guzzlehttp/guzzle 7.9.3 requires ( 
 guzzlehttp/promises 1.5.3 OR guzzlehttp/promises 2.0.3 OR 
 guzzlehttp/promises 2.0.4 OR guzzlehttp/promises 2.1.0 OR 
 guzzlehttp/promises 2.2.0 ) !guzzlehttp/guzzle 7.9.3 | guzzlehttp/promises 1.5.3 
 | guzzlehttp/promises 2.0.3 | guzzlehttp/promises 2.0.4 
 | guzzlehttp/promises 2.1.0 | guzzlehttp/promises 2.2.0

Slide 95

Slide 95 text

CNF(連言標準形)  95 guzzlehttp/guzzle 7.9.3 requires ( 
 何だ?? 更に「not(A) | X-1 | X-2 | X-3」形式に置き換える

Slide 96

Slide 96 text

CNF(連言標準形) `A-v1 && G-v2` と同じ意味。 「A-v1があるなら、G-v2も あるべき」 <=> 
 「A-v1がないか、さもなく ばG-v2があるべき」。 `not(A-v1)||G-v2` の形にすることで、 
 処理を減らせる 
 (「偽」確定が早くなる)  96 PHP脳で考えると 
 分かりやすいかも。 NOT(Package-A:1.0.0) OR Package-G:2.0.0

Slide 97

Slide 97 text

Composerの世界で「問題」はどう表されるか Composerの世界では、 
 これらの「OKな組み合わせ」を 
 Ruleと呼ぶ @see \Composer\DependencyResolver\Rule  97 ※ 知識のある人は節/Clauseのことだと思ってもらって大丈夫です

Slide 98

Slide 98 text

Rule/Literal  98 REJECT guzzlehttp/guzzle 7.9.0.0 OR INSTALL guzzlehttp/promises 2.2.0.0 OR INSTALL guzzlehttp/promises 2.1.0.0 OR INSTALL guzzlehttp/promises 2.0.4.0 OR INSTALL guzzlehttp/promises 2.0.3.0 OR INSTALL guzzlehttp/promises 1.5.3.0 これで1つのRule

Slide 99

Slide 99 text

Rule/Literal  99 REJECT guzzlehttp/guzzle 7.9.0.0 個別の条件を 
 Literalと呼ぶ INSTALL guzzlehttp/promises 2.1.0.0 REJECT guzzlehttp/guzzle 7.9.0.0

Slide 100

Slide 100 text

SATソルバーによる問題解決の手順 ここからが 
 「総当たり」回避の肝! 問題の整理の方法を 
 見ていきます  100 1箇所だけ仮の値を代入し、 
 影響を確認・更新 値の組み合わせが矛盾したら出直し 最終的な値の組み合わせを決定 問題を扱い易い形に分解・変換 影響関係のある部分をつなげ、 
 ネットワーク状に整理

Slide 101

Slide 101 text

phpunit/phpunit 11.2.6 requires phar-io/manifest:^2.0.3 phpunit/phpunit 11.3.6 requires phar-io/manifest:^2.0.4 phpunit/phpunit 11.4.4 requires phar-io/manifest:^2.0.4 Rule/Literalの影響 依存関係を把握して 
 リンクを作る  101 
 phpunit/phpunit:11.2.6 
 phar-io/manifest: 2.0.3 
 phpunit/phpunit:11.4.4 
 phpunit/phpunit:11.3.6 
 phar-io/manifest:2.0.4

Slide 102

Slide 102 text

phpunit/phpunit:11.2.6 OR phpunit/phpunit:11.3.6 OR phpunit/phpunit:11.4.4 Rule/Literalの影響 競合関係も 
 把握しておく  102 
 phpunit/phpunit:11.2.6 
 11.3.6 
 11.4.4 
 phpunit/phpunit:11.3.6 
 11.4.4 
 11.2.6 
 11.2.6 
 11.3.6 
 phpunit/phpunit:11.4.4

Slide 103

Slide 103 text

SATソルバーによる問題解決の手順 いよいよ 
 正解の組み合わせを 
 探しに行きます!  103 値の組み合わせが矛盾したら出直し 最終的な値の組み合わせを決定 問題を扱い易い形に分解・変換 影響関係のある部分をつなげ、 
 ネットワーク状に整理 1箇所だけ仮の値を代入し、 
 影響を確認・更新

Slide 104

Slide 104 text

仮決めからスタート まずは、任意のノード(literal)を選んで 
 「true」にしてみる  104 
 phpunit/phpunit:11.2.6 
 phar-io/manifest: 2.0.3 
 phpunit/phpunit:11.4.4 
 phpunit/phpunit:11.3.6 
 phar-io/manifest:2.0.4 
 phpunit/phpunit:11.2.6 
 11.3.6 
 11.4.4 
 phpunit/phpunit:11.3.6 
 11.4.4 
 11.2.6 
 11.2.6 
 11.3.6 
 phpunit/phpunit:11.4.4

Slide 105

Slide 105 text

仮決めからスタート インストールするphpunit/phpunitのバージョンを 
 11.4.4に決めたとします  105 
 phpunit/phpunit:11.2.6 
 phar-io/manifest: 2.0.3 
 phpunit/phpunit:11.4.4 
 phpunit/phpunit:11.3.6 
 phar-io/manifest:2.0.4 
 phpunit/phpunit:11.2.6 
 11.3.6 
 11.4.4 
 phpunit/phpunit:11.3.6 
 11.4.4 
 11.2.6 
 11.2.6 
 11.3.6 
 phpunit/phpunit:11.4.4

Slide 106

Slide 106 text

影響関係先を探る phpunit:11.4.4とリンクしているのは?  106 
 phpunit/phpunit:11.2.6 
 phar-io/manifest: 2.0.3 
 phpunit/phpunit:11.4.4 
 phpunit/phpunit:11.3.6 
 phar-io/manifest:2.0.4 
 phpunit/phpunit:11.2.6 
 11.3.6 
 11.4.4 
 phpunit/phpunit:11.3.6 
 11.4.4 
 11.2.6 
 11.2.6 
 11.3.6 
 phpunit/phpunit:11.4.4

Slide 107

Slide 107 text


 11.2.6 
 11.3.6 影響関係先を探る phpunit:11.4.4と競合関係にあった 
 phpunit:11.2.6, 11.3.6がfalse確定  107 
 phpunit/phpunit:11.2.6 
 phar-io/manifest: 2.0.3 
 phpunit/phpunit:11.4.4 
 phpunit/phpunit:11.3.6 
 phar-io/manifest:2.0.4 
 phpunit/phpunit:11.2.6 
 11.3.6 
 11.4.4 
 phpunit/phpunit:11.3.6 
 11.4.4 
 11.2.6 
 phpunit/phpunit:11.4.4

Slide 108

Slide 108 text


 11.2.6 
 11.3.6 影響を伝播させる phpunit:11.2.6, 11.3.6とリンクしているのは? 
 見つけて、決定を伝播させていきたい  108 
 phpunit/phpunit:11.2.6 
 phar-io/manifest: 2.0.3 
 phpunit/phpunit:11.4.4 
 phpunit/phpunit:11.3.6 
 phar-io/manifest:2.0.4 
 phpunit/phpunit:11.2.6 
 11.3.6 
 11.4.4 
 phpunit/phpunit:11.3.6 
 11.4.4 
 11.2.6 
 phpunit/phpunit:11.4.4

Slide 109

Slide 109 text


 11.2.6 
 11.3.6 影響を伝播させる ピックアップした  109 
 phpunit/phpunit:11.2.6 
 phar-io/manifest: 2.0.3 
 phpunit/phpunit:11.4.4 
 phpunit/phpunit:11.3.6 
 phar-io/manifest:2.0.4 
 phpunit/phpunit:11.2.6 
 11.3.6 
 11.4.4 
 phpunit/phpunit:11.3.6 
 11.4.4 
 11.2.6 
 phpunit/phpunit:11.4.4

Slide 110

Slide 110 text


 11.2.6 
 11.3.6 成り立たなくなったRuleの削除 左辺にあるLiteral1,2を削除してしまう  110 
 phar-io/manifest: 2.0.3 
 phpunit/phpunit:11.4.4 
 phar-io/manifest:2.0.4 
 11.3.6 
 11.4.4 
 11.4.4 
 phpunit/phpunit:11.4.4

Slide 111

Slide 111 text


 11.2.6 
 11.3.6 成り立たなくなったRuleの削除 浮いたルールが発生した  111 
 phar-io/manifest: 2.0.3 
 phpunit/phpunit:11.4.4 
 phar-io/manifest:2.0.4 
 11.3.6 
 11.4.4 
 11.4.4 
 phpunit/phpunit:11.4.4

Slide 112

Slide 112 text

成り立たなくなったRuleの削除 削除する  112 
 phpunit/phpunit:11.4.4 
 phar-io/manifest:2.0.4 
 11.2.6 
 11.3.6 
 phpunit/phpunit:11.4.4

Slide 113

Slide 113 text

全ての解が確定 Literal3,5だけが残った 
 (すべての曖昧な決定がない状態)  113 
 phpunit/phpunit:11.4.4 
 phar-io/manifest:2.0.4 
 phpunit/phpunit:11.4.4

Slide 114

Slide 114 text

全ての解が確定 パッケージごとの 
 詳細なバージョンが決定🎉  114 
 phpunit/phpunit:11.4.4 
 phar-io/manifest:2.0.4

Slide 115

Slide 115 text

SATソルバーによる問題解決の手順 「仮置き」の値で 
 一発正解できない時も 
 諦める必要は 
 ありませんよ  115 値の組み合わせが矛盾したら出直し 最終的な値の組み合わせを決定 問題を扱い易い形に分解・変換 影響関係のある部分をつなげ、 
 ネットワーク状に整理 1箇所だけ仮の値を代入し、 
 影響を確認・更新

Slide 116

Slide 116 text

こんな例  116 sugoi/sdk:^2.0 ROOT_PJ anteino/router: ^1.5 2.1.0 2.0.1 sugoi/sdk:2.0.0 php:^8.4 php:^8.2 8.2 8.3 php:8.4 anteino/http-request:^1.0 anteino/router: 1.5.0 anteino/http-request:1.0.0 php:8.3.*

Slide 117

Slide 117 text

こんな例  117 sugoi/sdk:^2.0 ROOT_PJ anteino/router: ^1.5 2.1.0 2.0.1 sugoi/sdk:2.0.0 php:^8.4 php:^8.2 8.2 8.3 php:8.4 anteino/http-request:^1.0 anteino/router: 1.5.0 anteino/http-request:1.0.0 php:8.3.* [要点] - sugoi/sdkの最新版は、PHP8.4が必要 - 間接依存anteino/http-request v1はPHP8.3系が必要  部分的に矛盾が発生する

Slide 118

Slide 118 text

ルールの整理  118 
 sugoi/sdk:2.0.0 
 sugoi/sdk:2.0.1 
 sugoi/sdk:2.1.0 
 anteino/router:1.5.0 
 anteino/http-request:1.0.0 
 php:8.4 
 php:8.3 
 php:8.2 
 ROOT PJ

Slide 119

Slide 119 text

ルールの整理(CNF)  119 !ROOT PJ | sugoi/sdk:2.1.0 | sugoi/sdk:2.0.1 | sugoi/sdk:2.0.0 !ROOT PJ | anteino/router:1.5.0 !sugoi/sdk:2.1.0 | php:8.4 !sugoi/sdk:2.0.1 | php:8.3 | php:8.2 !sugoi/sdk:2.0.0 | php:8.3 | php:8.2 !anteino/router:1.5.0 | anteino/http-request:1.0.0 !anteino/http-request:1.0.0 | php:8.3

Slide 120

Slide 120 text

ルールの整理 ルールを解析するときに「レベル」の概念がある  直接依存は「レベル1」、 
 間接度が上がる度にレベルを上げる  120

Slide 121

Slide 121 text

ルールの整理(CNF)  121 !ROOT PJ | sugoi/sdk:2.1.0 | sugoi/sdk:2.0.1 | sugoi/sdk:2.0.0 !ROOT PJ | anteino/router:1.5.0 !sugoi/sdk:2.1.0 | php:8.4 !sugoi/sdk:2.0.1 | php:8.3 | php:8.2 !sugoi/sdk:2.0.0 | php:8.3 | php:8.2 !anteino/router:1.5.0 | anteino/http-request:1.0.0 !anteino/http-request:1.0.0 | php:8.3

Slide 122

Slide 122 text

Lv1  122 !ROOT PJ | sugoi/sdk:2.1.0 | sugoi/sdk:2.0.1 | sugoi/sdk:2.0.0 !ROOT PJ | anteino/router:1.5.0 まずはLv1から見ていく

Slide 123

Slide 123 text

Lv1  123 !ROOT PJ | sugoi/sdk:2.1.0 | sugoi/sdk:2.0.1 | sugoi/sdk:2.0.0 !ROOT PJ | anteino/router:1.5.0 ROOT PJは確実に必要なので、 
 trueとして扱う

Slide 124

Slide 124 text

Lv1  124 sugoi/sdk:2.1.0 | sugoi/sdk:2.0.1 | sugoi/sdk:2.0.0 anteino/router:1.5.0 確定したので削除 ∵ ROOT PJ=trueなので、!(ROOT PJ)は 
 節全体をtrueにする可能性がなくなった。 
 別のLiteralだけに注目する

Slide 125

Slide 125 text

Lv1  125 
 sugoi/sdk:2.0.0 
 sugoi/sdk:2.0.1 
 sugoi/sdk:2.1.0 
 anteino/router:1.5.0 
 anteino/http-request:1.0.0 
 php:8.4 
 php:8.3 
 php:8.2 
 ROOT PJ 
 php:8.3

Slide 126

Slide 126 text

上から見てみる Lv1-1  126 sugoi/sdk:2.1.0 | sugoi/sdk:2.0.1 | sugoi/sdk:2.0.0 anteino/router:1.5.0

Slide 127

Slide 127 text

sugoi/sdk:2.1.0=trueを仮に置く Lv1-1  127 sugoi/sdk:2.1.0 | sugoi/sdk:2.0.1 | sugoi/sdk:2.0.0

Slide 128

Slide 128 text

sugoi/sdk:2.1.0 | sugoi/sdk:2.0.1 | sugoi/sdk:2.0.0 節全体がtrueになったので 
 他のLiteralを削除 Lv1-1  128 sugoi/sdk:2.1.0

Slide 129

Slide 129 text

Lv1-1  129 
 anteino/router:1.5.0 
 anteino/http-request:1.0.0 
 php:8.4 
 php:8.3 
 php:8.2 
 ROOT PJ 
 php:8.3 
 sugoi/sdk:2.0.0 
 sugoi/sdk:2.0.1 
 sugoi/sdk:2.1.0

Slide 130

Slide 130 text

Lv1-1  130 sugoi/sdk:2.1.0 anteino/router:1.5.0 !sugoi/sdk:2.1.0 | php:8.4 !sugoi/sdk:2.0.1 | php:8.3 | php:8.2 !sugoi/sdk:2.0.0 | php:8.3 | php:8.2 !anteino/router:1.5.0 | anteino/http-request:1.0.0 !anteino/http-request:1.0.0 | php:8.3 sugoi/sdkの 
 影響は?

Slide 131

Slide 131 text

Lv1-1  131 sugoi/sdk:2.1.0 anteino/router:1.5.0 !sugoi/sdk:2.1.0 | php:8.4 !sugoi/sdk:2.0.1 | php:8.3 | php:8.2 !sugoi/sdk:2.0.0 | php:8.3 | php:8.2 !anteino/router:1.5.0 | anteino/http-request:1.0.0 !anteino/http-request:1.0.0 | php:8.3 伝播が 
 ありそう

Slide 132

Slide 132 text

Lv1-1  132 sugoi/sdk:2.1.0 anteino/router:1.5.0 !sugoi/sdk:2.1.0 | php:8.4 !sugoi/sdk:2.0.1 | php:8.3 | php:8.2 !sugoi/sdk:2.0.0 | php:8.3 | php:8.2 !anteino/router:1.5.0 | anteino/http-request:1.0.0 !anteino/http-request:1.0.0 | php:8.3 節がtrueになった ので消す

Slide 133

Slide 133 text

Lv2  133 sugoi/sdk:2.1.0 anteino/router:1.5.0 !sugoi/sdk:2.1.0 | php:8.4 !sugoi/sdk:2.0.1 | php:8.3 | php:8.2 !sugoi/sdk:2.0.0 | php:8.3 | php:8.2 !anteino/router:1.5.0 | anteino/http-request:1.0.0 !anteino/http-request:1.0.0 | php:8.3 PHPが8.4で 
 (仮)確定

Slide 134

Slide 134 text

Lv2  134 
 sugoi/sdk:2.0.0 
 sugoi/sdk:2.0.1 
 sugoi/sdk:2.1.0 
 anteino/router:1.5.0 
 anteino/http-request:1.0.0 
 php:8.4 
 php:8.3 
 php:8.2 
 ROOT PJ 
 php:8.3

Slide 135

Slide 135 text

伝播→伝播→伝播  135 sugoi/sdk:2.1.0 anteino/router:1.5.0 !sugoi/sdk:2.1.0 | php:8.4 !sugoi/sdk:2.0.1 | php:8.3 | php:8.2 !sugoi/sdk:2.0.0 | php:8.3 | php:8.2 !anteino/router:1.5.0 | anteino/http-request:1.0.0 !anteino/http-request:1.0.0 | php:8.3 PHPが決まった 
 影響は?

Slide 136

Slide 136 text

伝播→伝播→伝播  136 sugoi/sdk:2.1.0 anteino/router:1.5.0 !sugoi/sdk:2.1.0 | php:8.4 !sugoi/sdk:2.0.1 | php:8.3 | php:8.2 !sugoi/sdk:2.0.0 | php:8.3 | php:8.2 !anteino/router:1.5.0 | anteino/http-request:1.0.0 !anteino/http-request:1.0.0 | php:8.3 💥

Slide 137

Slide 137 text

仮ぎめ→伝播→問題発生 sugoi/sdkを2.1.0に仮決定しましたが、 
 その影響でPHPの問題が解決できなくなりました!  137

Slide 138

Slide 138 text

仮ぎめ→伝播→問題発生→バックトラッキング 問題が発生したら、 
 最も直近の「仮ぎめ」地点まで戻って、覆します  138

Slide 139

Slide 139 text

Lv2  139 
 sugoi/sdk:2.0.0 
 sugoi/sdk:2.0.1 
 sugoi/sdk:2.1.0 
 anteino/router:1.5.0 
 anteino/http-request:1.0.0 
 php:8.4 
 php:8.3 
 php:8.2 
 ROOT PJ 
 php:8.3 これが問題

Slide 140

Slide 140 text

Lv2  140 
 sugoi/sdk:2.0.0 
 sugoi/sdk:2.0.1 
 sugoi/sdk:2.1.0 
 anteino/router:1.5.0 
 anteino/http-request:1.0.0 
 php:8.4 
 php:8.3 
 php:8.2 
 ROOT PJ 
 php:8.3 直近の判断

Slide 141

Slide 141 text

Lv2  141 
 sugoi/sdk:2.0.0 
 sugoi/sdk:2.0.1 
 sugoi/sdk:2.1.0 
 anteino/router:1.5.0 
 anteino/http-request:1.0.0 
 php:8.4 
 php:8.3 
 php:8.2 
 ROOT PJ 
 php:8.3 ここからやり直し

Slide 142

Slide 142 text

ここに問題があった Lv1-1(2回目)  142 sugoi/sdk:2.1.0 | sugoi/sdk:2.0.1 | sugoi/sdk:2.0.0

Slide 143

Slide 143 text

ので、falseにする Lv1-1(2回目)  143 sugoi/sdk:2.1.0 | sugoi/sdk:2.0.1 | sugoi/sdk:2.0.0

Slide 144

Slide 144 text

代わりに、 
 2.0.1 = trueにしてみる Lv1-1(2回目)  144 sugoi/sdk:2.1.0 | sugoi/sdk:2.0.1 | sugoi/sdk:2.0.0

Slide 145

Slide 145 text

Lv1-1(2回目)  145 
 sugoi/sdk:2.0.0 
 sugoi/sdk:2.1.0 
 anteino/router:1.5.0 
 anteino/http-request:1.0.0 
 php:8.4 
 php:8.3 
 php:8.2 
 ROOT PJ 
 php:8.3 
 sugoi/sdk:2.0.1

Slide 146

Slide 146 text

Lv1-1(2回目)  146 sugoi/sdk:2.0.1 anteino/router:1.5.0 !sugoi/sdk:2.1.0 | php:8.4 !sugoi/sdk:2.0.1 | php:8.3 | php:8.2 !sugoi/sdk:2.0.0 | php:8.3 | php:8.2 !anteino/router:1.5.0 | anteino/http-request:1.0.0 !anteino/http-request:1.0.0 | php:8.3 sugoi/sdkの 
 影響は?

Slide 147

Slide 147 text

Lv1-1(2回目)  147 sugoi/sdk:2.0.1 anteino/router:1.5.0 !sugoi/sdk:2.1.0 | php:8.4 !sugoi/sdk:2.0.1 | php:8.3 | php:8.2 !sugoi/sdk:2.0.0 | php:8.3 | php:8.2 !anteino/router:1.5.0 | anteino/http-request:1.0.0 !anteino/http-request:1.0.0 | php:8.3 伝播が 
 ありそう

Slide 148

Slide 148 text

Lv1-1(2回目)  148 sugoi/sdk:2.0.1 anteino/router:1.5.0 !sugoi/sdk:2.1.0 | php:8.4 !sugoi/sdk:2.0.1 | php:8.3 | php:8.2 !sugoi/sdk:2.0.0 | php:8.3 | php:8.2 !anteino/router:1.5.0 | anteino/http-request:1.0.0 !anteino/http-request:1.0.0 | php:8.3 すっきり

Slide 149

Slide 149 text

Lv2(2回目)  149 !sugoi/sdk:2.0.1 | php:8.3 | php:8.2 PHPのバージョン選択になった。 


Slide 150

Slide 150 text

Lv2(2回目)  150 !sugoi/sdk:2.0.1 | php:8.3 | php:8.2 PHPのバージョン選択になった。 
 8.3に仮ぎめする

Slide 151

Slide 151 text

Lv2(2回目)  151 
 sugoi/sdk:2.0.0 
 sugoi/sdk:2.1.0 
 anteino/router:1.5.0 
 anteino/http-request:1.0.0 
 php:8.4 
 php:8.2 
 ROOT PJ 
 php:8.3 
 sugoi/sdk:2.0.1 
 php:8.3

Slide 152

Slide 152 text

Fixed  152 
 sugoi/sdk:2.0.0 
 sugoi/sdk:2.1.0 
 anteino/router:1.5.0 
 anteino/http-request:1.0.0 
 php:8.4 
 php:8.2 
 ROOT PJ 
 php:8.3 
 sugoi/sdk:2.0.1 
 php:8.3 気がつくと、 
 リンクする(=影響を及ぼす)Literalが 
 無くなっている

Slide 153

Slide 153 text

SATソルバーによる問題解決の手順 「失敗から学ぶ」方式の 
 "Conflict-Driven Clause Learning" で 
 最終解  153 値の組み合わせが矛盾したら出直し 最終的な値の組み合わせを決定 問題を扱い易い形に分解・変換 影響関係のある部分をつなげ、 
 ネットワーク状に整理 1箇所だけ仮の値を代入し、 
 影響を確認・更新

Slide 154

Slide 154 text

FINAL 全てのRuleを 
 trueにする組み合わせ  154

Slide 155

Slide 155 text

A. ネットワーク越しのやり取りを軽くする工夫 B. 膨大な問題を効率よく解決する工夫 C. 限られたメモリやCPUを大事に使う工夫 D. まとめ

Slide 156

Slide 156 text

この章で出てくる課題は─── 「(利便性のためにも)メモリやCPUを節約したい」を 
 どうするか?の話  156

Slide 157

Slide 157 text

<①> 「変更を伝播」させていく相手の見つけ方

Slide 158

Slide 158 text

Two Watched Literal • 「どっかで値が変わった」のに際して 
 「全てのRuleがfixしていないかな?」を調べ尽くすのは効率が悪い • そのために、「Watch対象」を別途管理している • 例えば「PHPのバージョンが絞られた」→「誰が関心を持っている?」のマップ が作られている  158

Slide 159

Slide 159 text

Two Watched Literal 節ごとに2つのリテラルを監視している • 「A or B or C or D or E」という節があったら • 例えば「AとBを監視」しておく • もし、「AかBがtrueになった」ら、節全体がtrue • もし、「AもBもfalseになった」ら、節の中から別のリテラルを再選択 • もし、「AやB以外がtrueになった」ら、無視しておく • 最終的には「全てのRuleがtrueになる組み合わせ」を見つける  159

Slide 160

Slide 160 text

<②> 無駄な可能性を排除しておく

Slide 161

Slide 161 text

Pool Optimizer • かき集めたPackage情報を管理しておくクラスがPool • Package情報の数 = Literalの数に等しい • Packageが多いほど、Ruleも増える • 「実際には使われる訳もない」ようなPackageも入ってくる  161

Slide 162

Slide 162 text

Pool Optimizer 「明らかに無駄」なデータを破棄するのがPoolOptimizer • .lock由来で入ってきた指定内容により、falseを確定できるPackage • (依存関係から)同一とみなされるパッケージを1つだけ残して消す  162

Slide 163

Slide 163 text

実際のComposerで確認できる 
 最適化の実行の様子  163

Slide 164

Slide 164 text

実際のComposerで確認できる 
 最適化の実行の様子  164

Slide 165

Slide 165 text

<③> mapのキーを簡素化して便利に

Slide 166

Slide 166 text

PoolのPackage管理 = ID(int)で管理 • PoolにPackageを追加する時に、IDを振っている • 「パッケージ名+バージョン」や「パッケージ名のハッシュ値」をキーにしない • IDベースで、用事のあるPackage二管理する • これによって、 • メモリの節約にもなりそう • 「0始まりの連番」でpoolされるので、listとして管理できる • 出現順に数字を振っていく  166

Slide 167

Slide 167 text

PoolのPackage管理 = ID(int)で管理 • 整数での管理によって・・・ • 「INSTALL」を+に、「REJECT(NOT INSTALL)」を-に、という表現も可能に • 非常に軽量で自明な表現  167

Slide 168

Slide 168 text

実装イメージ • 特に面白い(?)のは 
 `literalToPackage()` • Rule中のリテラル表現を 
 abs()して使うことで 
 Packageにアクセスする  168

Slide 169

Slide 169 text

<④> 効率的なメモリ操作

Slide 170

Slide 170 text

SplDoubleLinkedList • 「監視」対象のLiteralを扱うのがRuleWatchChainクラス • 頻繁に書き込み・削除が発生する • RuleWatchChainは、 
 SplDoubleLinkedList(双方向リンクリスト)を継承している • 任意の位置での削除や挿入、イテレーションに強い  170

Slide 171

Slide 171 text

<⑤> GCの発生抑制

Slide 172

Slide 172 text

gc_disable • 実際のコード(\Composer\Installer) • `gc_disable()` を呼んでいる  172

Slide 173

Slide 173 text

gc_disable 書いてあるコメントの内容 • 依存関係解決中に数十万のPHPオブジェクトが生成される • GCが参照ツリーを巡回して回収可能なオブジェクトを探す処理が頻繁 に実行される • 実際には回収できるものがほとんどない状況でCPUサイクルを消費 • パフォーマンスが劇的に低下する  173

Slide 174

Slide 174 text

A. ネットワーク越しのやり取りを軽くする工夫 B. 膨大な問題を効率よく解決する工夫 C. 限られたメモリやCPUを大事に使う工夫 D. まとめ

Slide 175

Slide 175 text

まとめ 相も変わらず、 
 PHP8時代もComposerが面白い!  175

Slide 176

Slide 176 text

まとめ 「ネットワーク」も「メモリ」も「CPU」も 
 激しく使うようなツール  176

Slide 177

Slide 177 text

まとめ 身近な存在でありながら、 
 ガッツリと設計や実装の基礎に触れる場になる  177

Slide 178

Slide 178 text

まとめ  178 力強く、優雅に泳げるように なりたいですね!

Slide 179

Slide 179 text

おしまい! お付き合いいただき ありがとうございました!!

Slide 180

Slide 180 text

Appendix

Slide 181

Slide 181 text

Composer関連

Slide 182

Slide 182 text

自身による過去発表資料 • Composerって何?どう動くの?読んでみました!Speaker Deck https://speakerdeck.com/o0h/lets-read-composer • Composer 2.0って何?どう変わるの?読んでみました!Speaker Deck 
 https://speakerdeck.com/o0h/lets-read-composer2 • 作って理解するComposer <クイックコース> 
 https://zenn.dev/o0h/books/phpcon-2024-composer-ws  182

Slide 183

Slide 183 text

Composerを眺めるための資料 • Composerを速くするために必要だったもの 
 https://speakerdeck.com/hirak/composer-keynote • V1時代のものですが、ツールとしてみた時にどんな問題が発生し得るのか?を理解していくのは 面白いことです • Composer's SAT Solver 
 https://naderman.de/slippy/src/?file=2012-06-07-Composers-SAT-Solver.html • Composerの中の人本人による資料 • Composer 2 (SymfonyWorld Online 2020) 
 https://naderman.de/slippy/slides/2020-12-04-SymfonyWorld-Online-2020- Composer-2.pdf • Composerの中の人本人による発表(資料単独よりアーカイブ動画が良さそう)  183

Slide 184

Slide 184 text

SAT Solver関連

Slide 185

Slide 185 text

基礎理解を助ける動画 • CS228 Lectures 10-12 SAT Solving - YouTube 
 https://www.youtube.com/playlist? list=PLbLuy9jaJwu2fzNfV6f_2BYdfBAxxhZ3Y • SAT Solverに関する基本的な講義シリーズ(翻訳を使って視聴しました) • A Peek Inside SAT Solvers - Jon Smock - YouTube 
 https://www.youtube.com/watch?v=d76e4hV1iJY • 他にも「自作してみた」「問題を解いてみた」系の取り組みも多く公 開されており、よく拝見しました  185