Magento 2 Enterprise:ベンダーディレクトリに新しいモジュールを作成


17

vendorMagento Enterprise 2.0.0のディレクトリに新しいモジュールを作成しようとしました。Magentoを実行した後、モジュールをロードできませんでしたsetup:upgrade

ファイルをapp/codeディレクトリに移動すると、モジュールが正常にセットアップされます。

Magento 2 Enterpriseエディションの場合、すべてのモジュールはvendorディレクトリにありますが、Communityエディションは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>

エンタープライズモジュールをベンダーディレクトリに保持する必要がありますか?
ヴァレリーStatichnyi

申し訳ありませんが、Magento 2 Enterpriseパッケージをダウンロードし、コアモジュールまたはエンタープライズモジュールに関係なく、すべてのモジュールがベンダーディレクトリに保存されていたため、意味がわかりません。Magentoフレームワークもベンダーディレクトリに保存されます。元のパッケージにapp / codeディレクトリが存在しませんでした。
ジェイソンイップ

composer.jsonの「psr-4」アイテムは何をしているのでしょうか?パッケージを使用しますが、独自のGitLabがあるため、ベンダーでもコーディングする必要がありますが、私のコードは認識されません。Magentoコアモジュールからクラスをインスタンス化できますが、Cronは機能しません。私はそれが自動読み込みに関係していると思います、私のファイルは読まれていません。Company\Reviews\Cron\Checkファイルにクラス/vendor/company/Reviews/Cron/Check.phpがあり、cronjob Company\Reviews\Cron\Checkがありますが、データベースcron_scheduleには「Class Company \ Reviews \ Cron \ Check does not exist」と表示されます
ジャック

回答:


11

カスタムモジュールはvendorディレクトリで開発しないでください。vendor/magento/magento2-baseプロジェクトのルートからコンテンツをコピーし、ここ.gitignore説明するようにカスタムを作成し、新しいgitリポジトリを初期化します。次に、カスタムモジュールを開発します。app/code/VendorName/ModuleName

後で、モジュールを配布することにした場合、パッケージ化して公開する必要があります。誰かがあなたのモジュールを購入/インストールすると、作曲家によってvendorプロジェクトのディレクトリに自動的にインストールされます。

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