Magento 2 Enterprise: Створіть новий модуль у каталозі постачальників


17

Я спробував створити новий модуль у vendorкаталозі в Magento Enterprise 2.0.0. Не вдалося завантажити модуль після того, як я запустив Magento setup:upgrade.

Якщо я переміщу свої файли в app/codeкаталог, модуль буде налаштований успішно.

У Magento 2 Enterprise Edition всі модулі знаходяться в 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 у каталозі постачальників?
Валерій Статічний

Вибачте, я не розумію, що ви маєте на увазі, тому що я завантажив пакунок Magento 2 Enterprise і всі модулі зберігалися у каталозі постачальників, незалежно від того, що це основний модуль або модуль Enterprise. Навіть рамки Magento зберігаються у каталозі постачальників. У оригінальному пакеті не існувало жодного каталогу додатків / кодів.
Джейсон Йіп

Чи можу я запитати, що робить елемент "psr-4" у вашому composer.json? Ми використовуємо упаковку, але у нас є власний GitLab, тому нам також потрібно кодувати постачальника, проте мій код не розпізнається. Я можу інстанціювати свій клас з основних модулів Magento, але Cron не працює. Я думаю, що це стосується автозавантаження, мої файли не читаються. У мене є клас Company\Reviews\Cron\Checkфайлів, /vendor/company/Reviews/Cron/Check.phpі у мене є cronjob like, Company\Reviews\Cron\Checkале в базі даних cron_scheduleпросто написано "Компанія класів \ Відгуки \ Cron \ Check не існує"
Жак

Відповіді:


11

Спеціальні модулі не повинні розроблятися в vendorкаталозі. Скопіюйте вміст з vendor/magento/magento2-baseкореня проекту, створіть власні, .gitignoreяк описано тут, та ініціалізуйте нове сховище git. Потім розробіть спеціальний модуль під app/code/VendorName/ModuleName.

Пізніше, коли ви вирішите поширити модуль, його доведеться упакувати та опублікувати . Коли хтось придбає / встановить ваш модуль, його буде автоматично встановлено композитором в vendorкаталог свого проекту.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.