コアMagentoコードを使用するたびに手動でモジュールを確認し、require:...行をcomposer.jsonに追加する必要がありますか?
はい、コードでコアモジュールの何かを使用するたびに、それを作曲家の要求に追加する必要があります。ロードの順序をコアモジュールの後にしたいと思うのでmodule.xml
、シーケンスセクションのファイルに追加することをお勧めします。
それとも私のためにそれを行うことができる自動化ツールはありますか?
まだ出会っていません。あれば教えてください。かなり洗練されたツールである必要があり、かなりのテストカバレッジを必要とする可能性が高く、さまざまなバージョンのマトリックスを実行してワーキングセットを作成します。
composer.jsonに含めるバージョンを指定するにはどうすればよいですか?それは私が開発した特定のモジュールバージョンである必要がありますか?それとも、何らかのワイルドカードが必要ですか?または、トレードオフに基づいて決定する必要がありますか?もしそうなら、バージョン指定の各スタイルに関連するトレードオフは何ですか?
バージョン番号を定義するオプション
100.0.2
この特定のバージョンの場合にのみ機能します
100.0.*
*
ワイルドカードであり、任意のバージョン番号に置き換えることができ
100.0.0
、100.0.1
、...
、100.0.120
~100.0.2
2だけなので上がることができ、ワイルドカードになり100.0.2
、100.0.3
、 ...
、100.0.120
^100.0.2
いずれかが101まで解放することができますので100.0.2
、100.0.3
、...
、100.1.0
、100.2.5
オプション2〜4の場合、安定性設定で許可されていれば、次のようなバージョンも含まれます。 100.0.1-beta
実用
オプション1.)は最も注意深いものです。開発したバージョンがわかっていて、この特定のバージョンでの作業のみを受け入れます。モジュールは、そのバージョンの特定のモジュールと一緒にのみインストールできます。他のすべてのインストール/アップグレードの試みは失敗し、コンポーネントのインストール可能なセットが見つからないことを示すcomposerメッセージが表示されます。
オプション2.)オプション3.でカバーされているのと同じように、オプションではないと考えることができると思います。 ~100.0.0
オプション3.)新しい機能が導入されない限り互換性がある
オプション4.)重大な変更が導入されていない限り互換性がある
トレードオフ
1拡張機能はMagentoモジュールの1つのバージョンでのみ機能します(技術的にはモジュールに変更がない場合、バージョン番号は増加せず、理論的には複数のMagento Projectバージョンが同じバージョンの同じMagentoコアモジュールを含む可能性があります。これを見たことがないので、Magento側でプロセスを変更する必要があるようです(こちらを参照)。Magentoコアモジュールの1つのバージョンと密接に結びついているため、互換性を維持したい場合は、多くのリリースと独自の拡張機能のバージョンが必要になります。
3-4拡張はMagentoの複数のバージョンで動作し、Magentoが新しいバージョンをリリースするたびに拡張の異なるバージョンをリリースする必要はありません。ここでの欠点は、自分のコードと互換性のない変更がMagentoに導入されたとしても、互換性を主張することです。Magentoの独自のモジュールリリースのセマンティックバージョニングの定義は、範囲が限定された@api
注釈(このGitHubの問題の詳細)でマークされたものにのみ拡張されるため、このリスクは本当です。
tl; dr; セマンティックバージョニングがどのように機能するか
100.0.2
を維持するために、多くのリリースを安全にプレイし
^100.0.2
てください@api
。認可されたクラスとメソッドを使用して100%の拡張がある場合、これは当然の選択です。