ホームページ >バックエンド開発 >PHPチュートリアル >Magento 用のカスタム モジュールを開発する
Magento カスタム モジュール開発は、どの段階でも独自の機能/モジュールを既存の Magento プロジェクトに統合する必要があるため、Magento 開発または Magento プロジェクトの中核部分です。
このシリーズでは、Magento のカスタム モジュール開発の詳細について説明します。
Magento をさらに開発したい場合は、Envato Market でさまざまな便利な Magento 拡張機能をチェックしてください。
このシリーズでは、カスタム バージョンではありますが、Magento Community Edition 1.7 について言及しています。 モジュール構造は Magento のすべてのバージョンで同じです。実際のモジュール開発を始める前に、Magento の基本構造を簡単に理解しましょう。
新しい Magento をインストールすると、次の Magento ディレクトリ構造に気づくでしょう:
Joomla、CakePHP、CodeIgniter などの他の主要なフレームワークと同様に、Magento も MVC ベースのアーキテクチャに従いますが、コアの PHP MVC アーキテクチャとは若干異なります。ここでは単純な PHP MVC アーキテクチャと比較しながら、Magento アーキテクチャの違いを説明します。
典型的な MVC パターンでは、アプリケーションのフローは次のようになります:
index.php
)。そこからアプリケーション ルーティング メカニズム全体が決定されます。 Magento の MVC アーキテクチャは MVC パターンにいくつかのレイヤーを追加しますが、アプリケーションの基本的な制御フローは次のとおりです:
index.php
)。そこからアプリケーション全体が初期化されます。 これには追加のレイヤーがいくつか含まれているため、最初は理解するのが難しいかもしれません。制御フローをさらに理解するために、カスタムの「Hello World」モジュールを開発してみましょう。
Magento には、Magento のすべてのカスタム モジュールとコア モジュールが存在する 3 種類のコード プールが含まれています。
したがって、プールにはコミュニティ プールとローカル プールの 2 つのオプションがあります。独自のプロジェクトを開発しているため、コミュニティ プールの使用に制限はありませんが、ローカル プールを使用します。
###構造###Magento モジュールは次のコンポーネントで構成されます:
__ の 2 つの部分で構成されます。 Magento モジュールに名前を付けるベスト プラクティスは、作者名または会社名として を選択し、実際のモジュール名として <namespace></namespace>
を選択することです。 <module><p> これらの命名規則に基づいて、モジュールに <b>Chiragdodia_Mymodule</b> という名前を付けました。このシリーズではこの名前を参照します。 </p>
<h3>コードのセットアップと構成</h3>
<p> 上記の構造に基づいてディレクトリを作成しましょう。 Magento のインストール ディレクトリに移動し、<code class="inline">app/code/local
に移動して、以下に示すようにディレクトリを作成します。
次に、設定ファイル Chiragdodia_Mymodule.xml を
app/etc/modules directory ## に作成します。 # モジュールを設定してアクティブ化します。
このディレクトリには、すべてのモジュールの構成ファイルが含まれています。
リーリー
active タグで
true を指定してモジュールを有効にします。これまでのところすべてが正しい場合は、
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
または
を呼び出すことで、Magento はモジュール コントローラーのインデックス アクション ファイルを検索します。 。したがって、コントローラー ファイルを作成する必要があります。
app/code/local/Chiragdodia/Mymodule/controllers
に移動し、ファイル IndexController.php
を作成します。
以下の内容が含まれます。
Magento では、各ファイル名とクラス名は大文字と小文字が区別されることに注意してください。ファイルやクラスを作成するときは、名前の付け方に注意することが重要です。
リーリー
次に、URL
を開きます。「Hello tuts World」と出力されます。
素晴らしい - 最初の hello world モジュールがついに完成しました。
コントローラーのスケジューリング
ここでは、クラス
を拡張します。このクラスには、URL ルーティングで使用されるすべてのメソッドが含まれています。 Magento のクラス名は、クラス ファイルの場所を反映しています。したがって、クラス Mage_Core_Controller_Front_Action
は、場所 Mage > Core > Controller > Front > Action.php
にあります。
コントローラーのクラス名 (Chiragdodia_Mymodule_IndexController) を確認してください。 Magento コントローラーは、
タグ)_(アクション コントローラー名)(キーワード コントローラー). を反映する方法で名前を付ける必要があります。
<module>
</module>
操作 コントローラ名 b> = インデックスController
キーワードこのパターンによると、コントローラーの名前は
Chiragdodia_Mymodule_IndexControllerルーティング パターンに従う URL パターンを表示します
根据此网址模式,我们模块的网址为 yoursite.com/index.php/mymodule/index/index
。您还可以使用 yoursite.com/index.php/mymodule
访问它,因为只要您未指定 actionController
或 actionmethod
名称,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。 如前所述
这就是控制器在 Magento 中的工作原理。
一开始,一次理解所有内容可能很困难,因此我已将所有源代码包含到此模块中,以便您可以在将其用作指南的同时查看它并实现自己的工作。
在下一部分中,我们将通过创建布局和块文件来填充模块中的一些布局。我们将了解布局文件在 Magento 中如何工作以及块在 Magento 上下文中扮演什么角色。
在此之前,请创建您自己的模块,并让我知道任何给您带来麻烦的事情。
以上がMagento 用のカスタム モジュールを開発するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。