Magentoカスタムモジュール:Magento2で作成するためのステップバイステップ

公開: 2020-11-11

Magentoカスタムモジュールは、Magento開発者にとって重要な開発プロセスです。 ご存知のように、ある時点で、開発者は自分の機能またはモジュールを統合する必要があるかもしれません。 今日のこのブログ投稿では、Magento2でカスタムモジュールを開発するためのステップバイステップのガイドを提供します

最新のアップデート: Claue Multipurpose Magento 2テーマのバージョン2.0をリリースしました。これには、多数のパフォーマンスの向上と独自の機能が含まれています。 このテーマを今すぐチェックしてください:Claue Magento Theme 2. 0

claue2_edited(1)

ライブデモ

Claue –クリーンで最小限のMagento 2&1テーマは、40以上のホームページレイアウトと、ショップ、ブログ、ポートフォリオ、店舗検索レイアウト、その他の便利なページのオプションを備えた、モダンでクリーンなeコマースストアの優れたテンプレートです。 Claueバージョン2.0には、次のような多数の専用機能が付属しています。

  • ルマのテーマに基づいています。
  • Magentoテーマのすべての基準を満たす
  • 大幅なパフォーマンスの向上
  • ほとんどのサードパーティの拡張機能と互換性があります。
  • Magento2.4.xと完全に互換性があります

この2番目の高度なバージョンは、以前のバージョンとは完全に異なります。 したがって、Claueバージョン1を使用していて、Claueバージョン2に更新する場合は、古いバージョンから更新するのではなく、新しいWebサイトを再構築することしかできません。 それでは、メイントピックに戻りましょう。

Magentoは非常に用途の広いプラットフォームであり、多くの便利な機能が付属しており、無料モジュールと有料モジュールの両方をサポートしています。 オンラインでインストールできるだけでなく、クライアントのニーズに合わせてカスタマイズできるモジュールを提供します。 カスタマイズはモジュールを生成することで実現され、PHP言語の力を利用して選択に応じて変更できます。 たとえば、当社のWebサイトに、市場に一般的ではない特定の機能または一連の機能または要件がある場合、モジュールがそのギャップを埋めることができます。

Magentoには、カスタムモジュールとコアモジュールが存在する3種類のコードプール(コード、コア、ローカル)が付属しています。 ローカルプール(フォルダー)は、すべてのカスタムモジュールが存在するか、配置する必要がある場所です。 以下に、モジュールに含める必要のあるコンポーネントを示します。

  • ブロック–ここでは、テンプレートにデータを表示するために使用される機能を提供する必要があります。
  • モデル–すべてのビジネスロジックがここに含まれています。
  • リソース–モデルには、データベースの相互作用に使用される関数が含まれています。
  • コントローラ–ページレイアウトを定義し、ファイルをブロックし、URLが要求されたときにロードされます。
  • etc –モジュールが持つファイルの数とモジュールがどのように相互作用するかをMagentoに示すXML形式の構成ファイルが含まれます。
  • ヘルパー–一般的なビジネスロジック(画像のサイズ変更、検証など)を定義するために使用される関数が含まれています。 これらの関数は、Magentoアプリケーション全体のどこでも使用できます
  • sql – SQLテーブルを作成、変更、または削除するためのSQLスクリプトが含まれています。

Magentoカスタムモジュールを作成するにはどうすればよいですか?

Magento2で簡単なモジュールを作成します

Magento2で単純なモジュールを生成するのは簡単です。 次のタスクを実行する必要があります。

  • モジュール用の新しいディレクトリを作成します
  • registration.phpスクリプトを作成します
  • etc/module.xml情報ファイルを作成します
  • 新しいモジュールをインストールします

モジュール用の新しいディレクトリを作成します

新しいディレクトリの位置を選択するための2つのオプションがあります

  • app/code/{vendor}/
  • vendor/{vendor}/

モジュールが作業中の特定のオンラインストアを対象としている場合は、最初のオプションを選択できます。 ただし、さまざまなWebサイトで使用する目的でモジュールを生成する場合は、2番目のオプションを選択する方が適切です。 次に、この例の最初のオプションを使用します。

まず、 EndPoint (ベンダー名)という名前のディレクトリを作成し、その中にサブディレクトリMyModuleを作成する必要があります。

 cd {website_root} mkdir -p app/code/EndPoint/MyModule

Registration.phpスクリプトを作成します

このファイルのregistration.phpは、Magentoに特定の名前と場所で新しいモジュールを登録するように指示します。

以下のコードを使用して、 app/code/EndPoint/MyModule/registration.phpという名前のファイルを生成します

<?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'EndPoint_MyModule' , __DIR__ );

etc /module.xml情報ファイルを作成します

このステップでは、モジュール情報ファイルを作成する必要があります。ここで、モジュールのバージョン番号を指定します。 まず、 app/code/EndPoint/MyModule内のetcディレクトリを生成する必要があります。

 mkdir app/code/EndPoint/MyModule/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 = "EndPoint_MyModule" setup_version = "1.0.0" > </ module > </ config >

新しいモジュールをインストールします

次に、新しいモジュールをインストールして有効にする必要があります。したがって、Webサイトのルートから、コマンドを実行する必要があります。

 php bin/magento setup:upgrade

Magentoはモジュール名と構成の更新のリストを取得し、新しいモジュールEndPoint_MyModuleがそのリストにリストされている必要があります

モジュールにカスタムルートを追加します

これで、機能する有効なモジュールができましたが、まだ何も実行されていません。 モジュールが有効になっていることを確認する簡単な方法は何ですか? カスタムルートを設定してみましょうhttps://{our_website}/mymodule/test/helloworldのようなURLにアクセスすると、コントローラーからカスタム応答を返すことができます。

カスタムルートを作成するには、それ自体でいくつかの手順が必要になります。

  • コントローラ用の新しいディレクトリを作成します
  • etc/routes.xmlファイルを作成します
  • コントローラを作成する
  • 新しいモジュールをアップグレードします

コントローラ用の新しいディレクトリを作成します

まず、カスタムルート用の新しいPHPコントローラーが存在する新しいディレクトリを作成する必要があります。 新しいディレクトリパスは次のようになります。

app/code/EndPoint/MyModule/Controller

必要なパスに基づいて、必要な数のディレクトリレベルを生成できます。 たとえば、 app/code/EndPoint/MyModule/ControllerIndexという名前のクラスを生成する場合、このコントローラーにルーティングされるURLはhttps://{our_website}/mymodule/indexになります(「コントローラー」ディレクトリは無視されます)。

購入app/code/EndPoint/MyModule/Controller/TestHelloWorldという名前のクラスを生成すると、結果のURLはhttps://{our_website}/mymodule/test/helloworldになります。

etc /routes.xmlファイルを作成します

routes.xmlは、モジュールに使用されるベースURLをMagentoに通知します。 まず、routes.xmlファイルを配置する必要がある「フロントエンド」ディレクトリを作成する必要があります。

 mkdir app/code/EndPoint/MyModule/etc/frontend

ベースURLをMyModuleにする必要がある場合は、新しいディレクトリ内にXMLファイルを生成する必要があります。このファイルは、指定されたURLに対して行われたすべてのリクエストをモジュールコントローラーにルーティングします。

 <?xml version="1.0" ?> < config xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation = "urn:magento:framework:App/etc/routes.xsd" > < router id = "standard" > < route frontName = "mymodule" id = "mymodule" > < module name = "EndPoint_MyModule" /> </ route > </ router > </ config >

コントローラを作成する

https://{our_website}/mymodule/test/helloworldのリクエストに応答する場合は、ベースのControllerディレクトリとTestサブディレクトリを生成する必要があります。

 mkdir -p app/code/EndPoint/MyModule/Controller/Test

このディレクトリの下に、カスタムMagentoコントローラーを生成する必要があります。 すべてのルートコントローラーは、 \Magento\Framework\App\Action\Actionを拡張する必要があります。 また、コンテキストを祖先に渡すためのパブリックconstruct()メソッドと、URLがヒットしたときに呼び出されるexecute()関数も必要です。

 <?php namespace EndPoint \ MyModule \ Controller \ Test ; class HelloWorld extends \ Magento \ Framework \ App \ Action \ Action { public function __construct ( \Magento\Framework\App\Action\Context $context ) { parent ::__construct( $context ); } public function execute () { echo "Hello world!" ; } }

新しいモジュールをアップグレードします

このステップでは、Magentoのセットアップをアップグレードする必要があります。 ただし、依存性注入からパラメーターを取得する新しいコントローラーを構成に含めたためです。 また、依存性注入エンジン(ファクトリ、プロキシ、インターセプタなど)をコンパイルする必要があります。 最後に、キャッシュをクリアして、カスタムURLから新しいコンテンツが提供されるようにする必要があります。

 php bin/magento setup:upgrade php bin/magento setup:di:compile php bin/magento cache:flush

以上です。 ブラウザで/ helloworld / index / index URLを開くと、次のように表示されます。これは、モジュールが機能していることを意味します。

magentoカスタムモジュール

チュートリアルはこれで終わりです。Magentoカスタムモジュール:Magento2で作成するためのステップバイステップ。これがあなたにとって有用なブログであることを願っています。 Magentoについて詳しく知りたい場合は、Magentoプラットフォームの記事を読んで詳細を確認してください。また、WebサイトをサポートするためのMagento2拡張機能とMagento2テーマも確認してください。