検索
ホームページバックエンド開発PHPチュートリアルMagento 用のカスタム モジュールを開発する

Magento カスタム モジュール開発は、どの段階でも独自の機能/モジュールを既存の Magento プロジェクトに統合する必要があるため、Magento 開発または Magento プロジェクトの中核部分です。

このシリーズでは、Magento のカスタム モジュール開発の詳細について説明します。

Magento をさらに開発したい場合は、Envato Market でさまざまな便利な Magento 拡張機能をチェックしてください。

为 Magento 开发自定义模块

このシリーズでは、カスタム バージョンではありますが、Magento Community Edition 1.7 について言及しています。 モジュール構造は Magento のすべてのバージョンで同じです。実際のモジュール開発を始める前に、Magento の基本構造を簡単に理解しましょう。

新しい Magento をインストールすると、次の Magento ディレクトリ構造に気づくでしょう:

为 Magento 开发自定义模块

Magento MVC 構造の紹介

Joomla、CakePHP、CodeIgniter などの他の主要なフレームワークと同様に、Magento も MVC ベースのアーキテクチャに従いますが、コアの PHP MVC アーキテクチャとは若干異なります。ここでは単純な PHP MVC アーキテクチャと比較しながら、Magento アーキテクチャの違いを説明します。

PHP MVC アーキテクチャ

典型的な MVC パターンでは、アプリケーションのフローは次のようになります:

  1. メイン エントリ ポイントが 1 つあります (index.php)。そこからアプリケーション ルーティング メカニズム全体が決定されます。
  2. このルーティング メカニズムと要求された URL パターンに基づいて、アプリは適切なコントローラーを呼び出します。
  3. その後、コントローラーは適切なビューを呼び出します。
  4. 最後に、ビュー ファイルはモデル ファイルからデータを収集し、データを表示します。

Magento MVC アーキテクチャ

Magento の MVC アーキテクチャは MVC パターンにいくつかのレイヤーを追加しますが、アプリケーションの基本的な制御フローは次のとおりです:

  1. メイン エントリ ポイントが 1 つあります (index.php)。そこからアプリケーション全体が初期化されます。
  2. 要求された URL に基づいて、適切なコントローラーが呼び出されます。
  3. コントローラーはページを定義し、これらのページのレイアウト ファイルを読み込みます。
  4. レイアウト ファイルは、どのブロック ファイルを使用するかをコントローラーに指示します。
  5. ブロック ファイルはモデル ファイルとヘルパー ファイルからデータを収集し、それをテンプレート ファイルに渡します。
  6. テンプレート ファイルはデータを受け取り、HTML をレンダリングします。

これには追加のレイヤーがいくつか含まれているため、最初は理解するのが難しいかもしれません。制御フローをさらに理解するために、カスタムの「Hello World」モジュールを開発してみましょう。

モジュールの使用を開始する前に

  • すでにバージョン 1.7 または Magento 1.7 の作業用コピーをお持ちだと思います (そうでない場合、この段階ではバージョンは関係ありません)
  • キャッシュを無効にします。 キャッシュを無効にするには、Magento 管理パネル > システム > キャッシュ管理 > 左側のチェックボックスからすべてのキャッシュ タイプを選択 > 右上のドロップダウンから [アクション: 無効にする] を選択 > [送信] をクリックします。

Magento モジュールの構造

コードプール

Magento には、Magento のすべてのカスタム モジュールとコア モジュールが存在する 3 種類のコード プールが含まれています。

  1. コア プールには、Magento のインストールにデフォルトで付属するすべてのコア モジュールが含まれています。これらのモジュールは Magento 開発者によって作成されています。 Magento インストールをアップグレードするたびに、すべてのコア モジュールが上書きされ、変更内容が失われるため、これらのモジュールを変更しないことをお勧めします。
  2. コミュニティ プールには、サードパーティ プログラマーによって開発され、Magento Connect を通じてインストールされたすべてのモジュール (カスタム モジュールなど) が含まれています。これらのモジュールは通常、コア モジュールを拡張し、Magento のどこでも使用できる独自の機能を提供します。
  3. ローカル プールには、特定のプロジェクトで使用されるが、Magento Connect では読み取られないすべてのカスタム モジュールが含まれています

したがって、プールにはコミュニティ プールとローカル プールの 2 つのオプションがあります。独自のプロジェクトを開発しているため、コミュニティ プールの使用に制限はありませんが、ローカル プールを使用します。

###構造###

Magento モジュールは次のコンポーネントで構成されます:

    Block
  • テンプレート内のデータを表示するための関数が含まれています。
  • Model
  • モジュールのビジネス ロジックが含まれます。
  • リソース モデル
  • データベース対話用の関数が含まれています。
  • Controller
  • ページ レイアウトを定義し、ファイルをブロックし、URL が要求されたときにそれをロードします。
  • etc
  • モジュールに含まれるファイルの数とモジュールがどのように対話するかを Magento に伝える XML 形式の設定ファイルが含まれています。
  • ヘルパー
  • 一般的なビジネス ロジックを定義するための関数 (画像のサイズ変更、検証など) が含まれています。これらの関数は、Magento アプリケーションのどこでも使用できます
  • sql
  • SQL テーブルを作成、変更、削除するための SQL スクリプトが含まれています。
  • モジュールの名前

モジュールに名前を付ける必要があります。一般に、Magento モジュール名は

__ の 2 つの部分で構成されます。 Magento モジュールに名前を付けるベスト プラクティスは、作者名または会社名として を選択し、実際のモジュール名として <namespace></namespace> を選択することです。 <module><p> これらの命名規則に基づいて、モジュールに <b>Chiragdodia_Mymodule</b> という名前を付けました。このシリーズではこの名前を参照します。 </p> <h3 id="コードのセットアップと構成">コードのセットアップと構成</h3> <p> 上記の構造に基づいてディレクトリを作成しましょう。 Magento のインストール ディレクトリに移動し、<code class="inline">app/code/local に移動して、以下に示すようにディレクトリを作成します。

为 Magento 开发自定义模块

次に、設定ファイル Chiragdodia_Mymodule.xml を app/etc/modules directory ## に作成します。 # モジュールを設定してアクティブ化します。 このディレクトリには、すべてのモジュールの構成ファイルが含まれています。 リーリー

このファイルは、Magento にモジュールの場所を伝えます。

active タグで true を指定してモジュールを有効にします。これまでのところすべてが正しい場合は、Magento 管理パネル > システム > 構成 > 詳細 > 詳細 > モジュール出力の無効化 リストにモジュールが表示されます。ここからモジュールを有効または無効にすることができます。

はじめに: 開発

次にモジュール構成ファイルを作成します。このファイルは、モジュールに関するすべての情報を Magento に伝えます。これには、モジュールに含まれるファイルの数、ファイルの種類 (モデル、ヘルパー、データベース クラス) などが含まれます。

app/code/local/Chiragdodia/Mymodule/etc に移動し、config.xml # を作成します。 ## ファイルには次の内容が含まれます リーリー 各タグを 1 行ずつ見てみましょう。ここで、最初のタグは

<module></module> で、モジュールの名前とバージョンが含まれています。バージョン番号は、モジュールを更新するときに非常に重要です。

タグは、スケジュールされたコントローラーに関する情報を Magento に伝えます。 <frontend></frontend> タグ内で、ルーティング メカニズムを通じてコン​​トローラーにアクセスする方法を Magento に指示する <frontend></frontend> を定義します。 <routers> </routers>

タグでは、<mymodule></mymodule><module></module> # タグ内にあります。 # にはフロントエンド名が含まれます。フロントエンド名を使用して、フロントエンド上のモジュールにアクセスできます (例: yoursitename.com/index.php/mymodule/index<frontname>)。 </frontname> yoursitename.com/index.php/mymodule または

yoursitename.com/index.php/mymodule/index

を呼び出すことで、Magento はモジュール コントローラーのインデックス アクション ファイルを検索します。 。したがって、コントローラー ファイルを作成する必要があります。 app/code/local/Chiragdodia/Mymodule/controllers

に移動し、ファイル IndexController.php を作成します。 以下の内容が含まれます。 Magento では、各ファイル名とクラス名は大文字と小文字が区別されることに注意してください。ファイルやクラスを作成するときは、名前の付け方に注意することが重要です。 リーリー 次に、URL

yoursite.com/index.php/mymodule/index

を開きます。「Hello tuts World」と出力されます。 素晴らしい - 最初の hello world モジュールがついに完成しました。 コントローラーのスケジューリング ここでは、クラス

Mage_Core_Controller_Front_Action

を拡張します。このクラスには、URL ルーティングで使用されるすべてのメソッドが含まれています。 Magento のクラス名は、クラス ファイルの場所を反映しています。したがって、クラス Mage_Core_Controller_Front_Action は、場所 Mage > Core > Controller > Front > Action.php にあります。 コントローラーのクラス名 (Chiragdodia_Mymodule_IndexController) を確認してください。 Magento コントローラーは、

(

タグ)_(アク​​ション コントローラー名)(キーワード コントローラー). を反映する方法で名前を付ける必要があります。 <module> </module>

    tag =
  • Chiragdodia_Mymodule (このタグは config.xml で定義しました) 操作 コントローラ名 b> = インデックス
  • オペレーション コントローラーの後に Controller キーワード
  • が続きます
  • このパターンによると、コントローラーの名前は Chiragdodia_Mymodule_IndexController
です。

ルーティング パターンに従う URL パターンを表示します

yoursite.com/index.php/frontendname/actionControllername/actionmethod

  • 前端名称 = mymodule
  • actionControllername = 索引
  • actionmethodname = 索引

根据此网址模式,我们模块的网址为 yoursite.com/index.php/mymodule/index/index。您还可以使用 yoursite.com/index.php/mymodule 访问它,因为只要您未指定 actionControlleractionmethod 名称,Magento 就会加载默认情况下的索引控制器和索引操作。

现在让我们再创建一个操作:testAction 。

<?php
class Chiragdodia_Mymodule_IndexController extends Mage_Core_Controller_Front_Action
{
    public function indexAction()
    {
        echo "Hello tuts+ World";
    }
    public function testAction()
    {
        echo "test action";
    }
}

我们可以使用 URL yoursite.com/index.php/mymodule/index/test 访问 testAction。 如前所述

  • 前端名称 = mymodule
  • actionControllername = 索引
  • actionmethodname = 测试

这就是控制器在 Magento 中的工作原理。

一开始,一次理解所有内容可能很困难,因此我已将所有源代码包含到此模块中,以便您可以在将其用作指南的同时查看它并实现自己的工作。

下一步是什么?

在下一部分中,我们将通过创建布局和块文件来填充模块中的一些布局。我们将了解布局文件在 Magento 中如何工作以及块在 Magento 上下文中扮演什么角色。

在此之前,请创建您自己的模块,并让我知道任何给您带来麻烦的事情。

以上がMagento 用のカスタム モジュールを開発するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの現在のステータス:Web開発動向を見てくださいPHPの現在のステータス:Web開発動向を見てくださいApr 13, 2025 am 12:20 AM

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHP対その他の言語:比較PHP対その他の言語:比較Apr 13, 2025 am 12:19 AM

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHP対Python:コア機能と機能PHP対Python:コア機能と機能Apr 13, 2025 am 12:16 AM

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHP:Web開発の重要な言語PHP:Web開発の重要な言語Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHP:多くのウェブサイトの基礎PHP:多くのウェブサイトの基礎Apr 13, 2025 am 12:07 AM

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

誇大広告を超えて:今日のPHPの役割の評価誇大広告を超えて:今日のPHPの役割の評価Apr 12, 2025 am 12:17 AM

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPの弱い参照は何ですか、そしていつ有用ですか?PHPの弱い参照は何ですか、そしていつ有用ですか?Apr 12, 2025 am 12:13 AM

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

PHPで__invoke Magicメソッドを説明してください。PHPで__invoke Magicメソッドを説明してください。Apr 12, 2025 am 12:07 AM

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール