Magento 2 エリアとモジュールの比較

エリアとは、リクエストの処理を最適化するためにコードを整理するのに役立つ論理的なコンポーネントと理解できます。エリアは通常、ウェブサービスの呼び出しを効率化するために使用されます。これは、特定のエリアに依存するコードのみをロードすることで実現できます。Magento で定義されているデフォルトのエリアには、URL やリクエストを処理するための全く異なるコードが含まれています。たとえば、REST ウェブサービスを呼び出すときには、REST 呼び出しに対応するためのコードをロードする別のエリアを指定できます。

6種類のMagentoのエリアタイプ

1. Magento Admin: adminhtml

index.phpまたはpub/index.phpは、管理画面への入り口です。ストアの管理に必要なすべてのコードは、この管理パネルエリアに含まれます。管理画面での作業中に表示されるコンポーネントのすべてのコードを見たい場合は、/app/design/adminhtmlディレクトリにアクセスすることができます。

2. Storefront: frontend

ストアフロントエリアのエントリーポイントは、index.phpまたはpub/index.phpです。ストアフロントの外観を定義するには、このエリアにテンプレートとレイアウトファイルがあります。

3. Basic: base

Basicは、adminhtmlやfrontendエリアに存在しないファイルの代替として使用できます。

4. Cron: crontab

crontabエリアは、cron.phpに含まれる\Magento\Framework\App\Cron によって常にロードされます。

5. Web API REST

Web API REST(webapi_rest)エリアに入るには、index.phpまたはpub/index.phpがエントリーポイントとなります。このエリアには、REST ベースの URL を検索するための方法を理解するフロントコントローラがあります。

6. Web API SOAP: webapi_soap

Web API SOAPエリアのエントリーポイントは、index.phpまたはpub/index.phpです。

エリアとモジュール

あるエリアで表示され、アクセス可能なリソースとエリアの動作は、モジュールによって定義されます。複数のエリアが同じモジュールの影響を受けることがあります。例えば、RMAモジュールの一部は、adminhtmlとfrontendのエリアで表現されます。

モジュールが複数のエリアで動作する場合は、各エリアに個別の動作やビュー・コンポーネントが必要であることを確認してください。

それぞれのエリアは、モジュールの中で自分自身を宣言します。その上、エリアのためのすべてのリソースも同じモジュール内に配置されます。

さらに、モジュール内のエリアを有効にしたり無効にしたりすることもできます。モジュールが有効になると、アプリケーションの一般的なルーティング処理にエリアのルーターが注入されます。逆に、モジュールが無効になると、エリアのルーターはロードされません。その結果、エリアのリソースや特定の機能が利用できなくなります。

事実:

  • モジュールの他の領域がモジュールに影響を与えてはいけません。
  • ある領域を無効にしても、その領域に関連するモジュールが無効になることはありません。
  • 領域は、Dependency Injection framework di.xmlというファイルに登録されます。

フロントエンドエリアの例

このガイドでは、フロントエンドエリアとしてフロントエンドテーマを作成する方法をご紹介します。

テーマ フォルダ構成

app/design/frontend/smartosc/
├── ultimate/
│   ├── etc/
│   │   ├── view.xml
│   ├── web/
│   │   ├── images
│   │   │   ├── logo.svg
│   ├── registration.php
│   ├── theme.xml
│   ├── composer.json

app/design/frontend/smartosc/theme.xmlファイルを以下のように作成します。

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../lib/internal/Magento/Framework/Config/etc/theme.xsd">
  <title>smartosc Ultimate</title>
  <parent>Magento/blank</parent>
</theme>

テーマの宣言

ここで、app/design/frontend/smartosc/ultimateというフォルダができたので、次のようなテーマの基本情報を定義するtheme.xmlというファイルを作成します。名前、親テーマ(テーマが既存のテーマを継承する場合)、プレビュー画像

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
     <title>smartosc Ultimate</title> <!-- your theme's name -->
     <parent>Magento/blank</parent> <!-- the parent theme, in case your theme inherits from an existing theme -->
     <media>
         <preview_image>media/preview.jpg</preview_image> <!-- the path to your theme's preview image -->
     </media>
 </theme>

登録ファイルの作成

Magento 2のテーマであるregistration.phpに以下の内容を追加することができます。

ファイル:app/design/frontend/smartosc/registration.php

<?php

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::THEME,
    'frontend/smartosc/ultimate',
    __DIR__
);

 

デモを申し込む

弊社の専門家は最適なソリューションをサポートさせて頂きます。

►►►サービスについて