我试图vendor
在Magento Enterprise 2.0.0的目录中创建新模块。我运行了Magento后无法加载该模块setup:upgrade
。
如果将文件移动到app/code
目录中,则模块将成功建立。
对于Magento 2企业版,所有模块都在vendor
目录中,而社区版使用app/code
目录。我想知道是否可以在vendor
目录中创建自定义模块。如果是,则在app/code
和中创建自定义模块有什么区别vendor
。
vendor/Test/Testing/registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Test_Testing',
__DIR__ );
vendor/Test/Testing/composer.json
{ "name": "test/testing", "description": "Testing", "require": {
"php": "~5.5.0|~5.6.0|~7.0.0",
"magento/framework": "100.0.*" }, "type": "magento2-module", "version": "0.1.0", "license": [
"proprietary" ], "autoload": {
"files": [ "registration.php" ],
"psr-4": {
"Test\\Testing\\": ""
} } }
vendor/Test/Testing/etc/module.xml
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Test_Testing" setup_version="0.1.0">
</module> </config>
您确定需要将Enterprise模块保留在供应商目录中吗?
—
Valery Statichnyi 2015年
抱歉,我不明白您的意思,因为我下载了Magento 2 Enterprise软件包,并且所有模块都存储在供应商目录中,无论是核心模块还是Enterprise模块。甚至Magento框架都存储在供应商目录中。原始软件包中没有app / code目录。
—
Jason Yip
我可能会问composer.json中的“ psr-4”项是做什么的?我们使用包装,但是我们有自己的GitLab,因此我们也必须在供应商中进行编码,但是我的代码未被识别。我可以从Magento核心模块实例化我的课程,但Cron无法正常工作。我认为这与自动加载有关,未读取我的文件。我
—
Jacques
Company\Reviews\Cron\Check
在文件中有一个类,/vendor/company/Reviews/Cron/Check.php
并且有一个cronjob,Company\Reviews\Cron\Check
但是在数据库中cron_schedule
它只是说“ Class Company \ Reviews \ Cron \ Check不存在”