Magento2のカスタム拡張機能はどこに作成しますか?


9

いくつかの記事はでカスタム拡張app/codeを作成することを奨励し、他の記事はでそれらを作成することを奨励していますvendor。これら2つの方法はどちらも問題ありませんか?

でモジュールをオーバーライドしたい場合はどうなりますvendorか?vendorフォルダ内にもカスタムモジュールを記述する必要がありますかapp/code

Magento 1.xのようにコードプールとして機能しますか?

各ディレクトリの目的を明確にしてください。


私によると、アプリ/コードで作成する必要があります。
アルジュン2016

回答:


7

M1のフォルダーapp/codevendorコードプールを見ることができますが、実際にはコードプールではありません。
M1には「コードプール」の概念はありません。

  • vendorフォルダは、composerを介してダウンロードするモジュール用です。そのフォルダーにはコードを記述しないでください。
  • app/codeあなたの遊び場です。ここに独自の拡張機能を追加します。

vendorフォルダー内の何かを書き換え/拡張する必要がある場合は、フォルダー内で実行できapp/codeます。ファイルのmodule.xmlM1で行ったのと同じ方法で、モジュールのにソフト依存関係を指定していることを確認してくださいapp/etc/modules/Namespace_Module.xml
唯一の違いは、m2では実際には依存関係ではないということです。それらはシーケンスです。
このようにして、モジュールはvendorフォルダからのモジュールの後にロードされます


完全に真実ではありません。githubを介してM2をインストールした場合app/codeは、遊び場ではありません;)
Raphael at Digital Pianism '13 / 07/13

@Marius:どうもありがとう。それは私が持っていた疑いをクリアしました。XMベンダーモジュールのLファイルをオーバーライドする場合でも、依存関係について言及する必要がありmodule.xml ますか?
すけしに2016

@RaphaelatDigitalPianism はいといいえ。app/codeその場合、コアモジュールを取得しますが、独自のモジュールを追加することもできます。そして、github経由でm2をインストールする必要がある唯一の理由は、それをいじったり、貢献したりするためです。したがって、これは技術的にはまだapp/code遊び場になります。
マリウス

@すけしに。よくわかりませんが、そうすべきだと思います。
マリウス

@マリウスは同意した。あなたが言ったすべてapp/code/Vendorはあなたの遊び場なので、核となるものを壊すリスクはない
Digital PianismのRaphael

2

app/code あなたのプロジェクトのモジュールにとって間違いなく正しい場所です。

コードvendorは作成しないでください(このディレクトリはソース管理では無視されません)。これは、コードがcomposerによってのみ管理され、サードパーティのモジュールまたは再利用するモジュール専用である(そして、packagistまたは独自のsatisリポジトリで公開している)ためです。 )。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.