在哪里为Magento2创建自定义扩展?


9

一些文章鼓励在中创建自定义扩展,app/code而另一些文章鼓励在中创建自定义扩展vendor。这两种方法都行吗?

如果要覆盖其中的模块vendor怎么办?我是否还需要在vendor文件夹或中写入自定义模块app/code

它们是否像Magento 1.x一样充当代码池?

请任何人阐明每个目录的用途。


据我说,我们需要在应用程序/代码中制作它。
Arjun

Answers:


7

您可以将文件夹app/codevendorM1中的代码池看做,但它们并不是真正的代码池。
M1中没有“代码池”概念。

  • vendor文件夹用于您通过作曲家下载的模块。您不应在该文件夹中编写代码。
  • app/code是你的游乐场。在此处添加您自己的扩展程序。

如果您需要重写/扩展vendor文件夹中的某些内容,可以在app/code文件夹中进行。只需确保在module.xml模块的中指定了软依赖关系,就如同在app/etc/modules/Namespace_Module.xml文件的M1中进行指定一样。
唯一的区别是在m2中它们实际上不是依赖项。它们是序列。
这样,您的模块将在vendor文件夹中的模块之后加载


并非完全正确。如果您app/code是通过github安装的不是M2,则不是游乐场;)
Digital Pianism的Raphael在

@Marius:非常感谢。它清除了我的疑问。如果要覆盖XM供应商模块中的L文件,是否还需要提及中的依赖项module.xml
Sukeshini

@RaphaelatDigitalPianism。是的,没有。app/code在这种情况下,您可以获得核心模块,但是仍然可以添加自己的模块。您应该通过github安装m2的唯一原因是尝试使用它和/或为它做贡献。因此,从技术上讲,这仍然是app/code您的游乐场。
马吕斯

@Sukeshini。不确定,但我认为您应该这样做。
马里乌斯

@Marius同意w /您刚才说的所有内容app/code/Vendor都是您的游乐场,所以没有风险破坏核心内容
Digital Pianism的Raphael

2

app/code 绝对是您projet模块的正确位置。

绝对不要在其中编写代码vendor(此目录不会被忽略到源代码管理中),因为它仅由composer管理,并且专用于第三方模块或要重用的模块(并且已在packagist或您自己的satis存储库中发布)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.