Magento のディレクトリとファイルの構造

Magento 2 のファイルとフォルダの構造が複雑でわかりにくいと感じている方のために、この記事を用意しました。Magento 2.Xでは、すべてのファイルに何が保存されていて、どのように表示されるのかを正確に説明します。

1.Magentoのフォルダ構造

Magento 2 のフォルダ構造は、Magento 1 のものとはかなり異なります。Magento 2 のルートディレクトリをたどっていくと、以下のようなフォルダ構造になっています。

app : Magento 2のコアファイルを収録しています。

デフォルトでは、3つのサブディレクトリーがあります: designi18n and etc

  • design/frontend: ストアフロントテーマ用
  • design/adminhtml: 管理テーマ用
  • i18n: 言語パッケージを保存する
  • etc: di.xml設定ファイルを含む

また、app/codeディレクトリを作成して、カスタムモジュールを格納することもできますが、その理由は後ほど説明します。

bin: Magento CLI 実行可能スクリプトが含まれています。CLI スクリプトは、キャッシュの有効化/無効化、モジュールの有効化/無効化、インデクサーの実行などに使用できる Magento のコマンドを有効にします。

dev: 自動化された機能テストや、開発者のためのいくつかのツールがここに格納されています。

lib: internal 及び web 含む

  • internal: サーバーサイドのライブラリといくつかのフォントファイルが含まれています。
  • web: クライアントサイド(JavaScript)のライブラリ、jquery、modernizr、requirejs、prototype、scriptaculousが含まれています。

phpserver: Router.phpファイルを持っています。これは、PHPのビルトインサーバーを実装するために使用することができます。このファイルを扱うことは、サイトに潜在的なセキュリティホールを引き起こす可能性があるため、お勧めできません。

pub: index.phpコントローラとすべての公開されたアクセス可能なファイルが含まれています。お使いのサーバーのウェブルートに設定してください。

setup: Magento のインストール設定に関連するファイルで構成されています。

var: 生のキャッシュファイル、ログ、セッション、レポートなどが含まれます。

vendor:このディレクトリは、composerがcomposer.jsonファイルを使って生成します。composer.jsonファイルで定義されたパッケージが含まれます。

2. コンポーネントファイルの構造

コンポーネントは、<Magento install directory>/app に置くことが推奨されます。<Magento root dir>/vendor ディレクトリにインストールした場合、Magento はそれらを<Magento install directory>/.gitignoreファイルに追加します。

必要なファイル

これらのファイルは、インストールされたすべてのコンポーネントに必要です。

registration.php: コンポーネントはこのファイルでMagentoに登録されます。また、コンポーネントのルートディレクトリ名がコンポーネント名として使用されます。

etc/module.xml: コンポーネントの依存関係やバージョン番号など、コンポーネントの基本的な情報を定義します。

composer.json: コンポーネントが実行時に必要とする依存関係を定義します。

3. モジュールのファイル構成

ここでは、典型的なMagento 2モジュールのファイル構造を紹介します。

一般的なディレクトリー

一般的なモジュールのディレクトリは以下の通り:

Block: モデル・ビュー・コントローラ(MVC)の垂直実装の一部であるPHPビュークラスが含まれています。

Controller: PHPのコントローラクラスがあります

etc: 設定ファイル、特にmodule.xml(必須)から構成されています。

Model: PHPのモデルクラスを含む。

Setup: モジュールのデータベース構造とデータのセットアップのためのクラスがあります。このデータは、インストールやアップグレードの際に呼び出されます。

追加ディレクトリ

以下のような追加フォルダを挿入することができます。

Api: API に公開されている PHP クラスを格納します。

Console:CLIコマンドを格納します。

Cron:cronのジョブ定義を格納します。

CustomerData:セクションファイルを含みます。

Helper:集約された機能が格納されています。

i18n: ローカライゼーションファイルが含まれています。

Observer:リスナーからのコマンドを実行するためのファイルが格納されています。

Plugin:必要なプラグインが格納されています。

UI:データ生成ファイルが含まれています。

view:スタティックビューファイル、デザインテンプレート、メールテンプレート、レイアウトファイルなどのビューファイルが含まれます。

4. テーマのファイル構造

典型的なテーマのファイル構造は次のようになります。

├── composer.json
├── etc
│   └── view.xml
├── i18n
│   └── en_US.csv
├── LICENSE_AFL.txt
├── LICENSE.txt
├── media
│   └── preview.jpg
├── registration.php
└── web
    ├── css
    │   ├── email.less
    │   ├── print.less
    │   ├── source
    │   │   ├── _actions-toolbar.less
    │   │   ├── _breadcrumbs.less
    │   │   ├── _buttons.less
    │   │   ├── components
    │   │   │   └── _modals_extend.less
    │   │   ├── _icons.less
    │   │   ├── _layout.less
    │   │   ├── _theme.less
    │   │   ├── _tooltips.less
    │   │   ├── _typography.less
    │   │   └── _variables.less
    │   ├── _styles.less
    │   ├── styles-l.less
    │   └── styles-m.less
    ├── images
    │   └── logo.svg
    └── js
        ├── navigation-menu.js
        └── theme.js

共通のディレクトリ

etc:すべての画像とサムネイルの画像設定を含むview.xmlファイルなどの設定ファイルを含みます。

i18n: 翻訳辞書です。

media: テーマのプレビュー画像はここに保存できます。

web: 任意のディレクトリで、以下のサブディレクトリに整理された静的ファイルを含みます。

  • css/source: Magento UI ライブラリからグローバル要素のためのミックスインを呼び出すテーマの less 設定ファイルと、デフォルトの変数値をオーバーライドする theme.less ファイルが含まれます。
  • css/source/lib: lib/web/css/source/libに格納されているUIライブラリファイルをオーバーライドするビューファイルが含まれています。
  • fonts: テーマ用の各種フォントを格納するフォルダ。
  • images: 静止画像のフォルダ
  • js: JavaScriptファイル用のフォルダ

5. 言語パッケージのファイル構成

これは、2つの言語パッケージの典型的なディレクトリ構造です。

├── de_DE
│   ├── composer.json
│   ├── language.xml
│   ├── LICENSE_AFL.txt
│   ├── LICENSE.txt
│   └── registration.php
├── en_US
│   ├── composer.json
│   ├── language.xml
│   ├── LICENSE_AFL.txt
│   ├── LICENSE.txt
│   └── registration.php

言語パッケージではトップレベルのディレクトリが必要です。ロケールを識別するために、ディレクトリ名はISOコードと一致させることが推奨されています。

以上がMagento 2のファイル構造です。構造や各フォルダの構成を理解しておくと、新しいエクステンションのインストールやカスタムコードの実装の際に役立ちます。

デモを申し込む

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

►►►サービスについて