Ich habe versucht, vendor
in Magento Enterprise 2.0.0 ein neues Modul im Verzeichnis zu erstellen . Das Modul konnte nicht geladen werden, nachdem ich das Magento ausgeführt habe setup:upgrade
.
Wenn ich meine Dateien in das app/code
Verzeichnis verschiebe, wird das Modul erfolgreich eingerichtet.
In der Magento 2 Enterprise Edition befinden sich alle Module im vendor
Verzeichnis, in der Community Edition wird jedoch das app/code
Verzeichnis verwendet. Ich frage mich, ob es möglich ist, benutzerdefinierte Module im vendor
Verzeichnis zu erstellen . Wenn ja, was sind die Unterschiede zwischen dem Erstellen eines benutzerdefinierten Moduls in app/code
und 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>
quelle
Company\Reviews\Cron\Check
in der Datei/vendor/company/Reviews/Cron/Check.php
und ich habe einen Cronjob wie,Company\Reviews\Cron\Check
aber in der Datenbank heißtcron_schedule
es nur "Class Company \ Reviews \ Cron \ Check existiert nicht"Antworten:
Benutzerdefinierte Module sollten nicht im
vendor
Verzeichnis entwickelt werden. Kopieren Sie den Inhaltvendor/magento/magento2-base
in das Stammverzeichnis des Projekts und erstellen Sie eine benutzerdefinierte Datei.gitignore
wie hier beschrieben , und initialisieren Sie das neue Git-Repository. Dann entwickeln Sie ein benutzerdefiniertes Modul unterapp/code/VendorName/ModuleName
.Wenn Sie das Modul später vertreiben möchten, muss es gepackt und veröffentlicht werden . Wenn jemand Ihr Modul kauft / installiert, wird es vom Komponisten automatisch in das
vendor
Verzeichnis seines Projekts installiert .quelle