Magentoプラグイン開発の学習


30

私は13年以上PHP開発者であり、WordPressのような他の人気のあるプロジェクトに限り、PHP自体に関する広範な知識を持っています。Magentoの経験はありません。

私は現在、Magentoを使用している会社でフルタイムの仕事をしていますが、私の開発作業はすべてMagentoで行われる予定です。

Magentoを初めて見た後の私の最初の考えは、すごいものになりました。しかし、その後、私の経験豊富な開発者が出てきて、それがただのPHPであることを思い出します。

ですから、Magentoの基本的な質問がいくつかあります。Magentoの経験豊富な開発者からの回答に感謝します。

  1. このサイトの横にあるmagento開発について学ぶための最も便利な場所は何ですか?
  2. これまでのところ、拡張機能/プラグインは非常に混乱しています。WordPressのような他のプラットフォームでは、プラグインを独自のフォルダーに配置することができ、すべてのファイルはそのフォルダーの下に保存されます。これまで見てきたことから、プラグインはMagentoのいくつかのフォルダに散らばっているかもしれませんが、これは正しいですか?
  3. コア機能をオーバーライドする方法について学びました。コア内のファイルがここにある場合、/app/code/core/Mage/SitemapModel/Resource/Catalogこの場所にファイルを作成することでオーバーライドできます。これ/app/code/local/Mage/SitemapModel/Resource/Catalogは拡張機能/プラグインでどのように機能しますか?コア機能をオーバーライドする必要があるプラグインを作成する場合、その拡張機能が機能するためにファイルをいたるところに配置する必要がありますか?
  4. magentoを始めて知ってほしい他の情報はありますか?

洞察力のおかげで、これは複数の部分からなる質問であることはわかっていますが、答えは自分自身や他の人にとって役立つと思います。必要に応じてこの公開ウィキを作成します


1
stackexchangeでスティッキーなものがあれば、このQ&Aは1つになります!これがどのようなリソースになったか:)
McNab

@McNabスティッキー機能はありませんが、投票数が最も多い質問は一般的に上位にランクされ、より頻繁に表示されます。また、このページmagento.stackexchange.com/?tab=monthでは、この質問を現在2番として表示しています。これはスティッキーですが、「月」と表示されるため、どのくらいの期間スティッキー性を保持するかわかりません。私はこれが素晴らしいリソースになったことに同意し、将来のアクセスを容易にするためにそれを好意的に評価しました。ところで、このコミュニティを友達と共有してください。そうすれば、恒久的な家になり、ベータ期間後に死ぬことはありません
JasonDavis

回答:


24

私はあなたの質問の最初の部分に焦点を当てるつもりです-「どうやって学ぶか/どこから始めればいいですか?

元Zend Frameworkの開発者として、Magentoを開発する上での最大の助けは、Magento Uが過去2年間にもたらしたオンライン学習の爆発的増加です。正式な学習とは別に、私は主にやることによって学びます。そして、5年以上もMagentoを「やって」います。

いくつかの具体的な学習リソース:

学習ツールとは別に、私にとって最大の学習ツールは、サードパーティのMagentoモジュールを調べることです。私はコードを徹底的に読み、そこから学びます。Coreモジュールから学習することで同じことができます。

学習の旅に役立つサイト:

http://magento-quickies.tumblr.com/

http://alanstorm.com/

http://colin.mollenhour.com/

http://magentotherightway.com/

フォローする壮大な開発者:

Alistair Stead:https : //github.com/alistairstead

ファブリツィオ・ブランカ:https : //github.com/fbrnc/

Vinai Kopp:https : //github.com/Vinai

社会的に関与します -「ロックスター」開発者に会い、Twitterでフォローし始めます。あなたが助けを必要とするとき、特定の人々に手を差し伸べます; このコミュニティは驚くほど親しみやすいです。コミュニティを活用してください。

いくつかのTwitterリスト:

https://twitter.com/inchoo/magento

https://twitter.com/kkoepke/magento

https://twitter.com/eHubSystem/magento-imagine-2013

https://twitter.com/GingerWarriorX/magento-peeps

最後に- 来年、Magento Imagineにトレッキングをして、肉を押してください。私たちを追跡し、質問してください。地元の交流会に出かけましょう。ミートは、お住まいの地域に存在しない場合は- 1を起動します。しつこい。知識の不足が、人脈作りや人との出会いを妨げないようにしてください。コミュニティでのあなたの関係は、配当で報われます。


14

素晴らしい@philwinkleの答えに対する私の2セント。

2つの公式PDFがあります

1)Magento Extension開発者ガイド

ゼロからカスタム拡張機能を作成する方法に関するステップバイステップの80ページ。モジュール「News」はゼロから開発されました-モジュールのファイルとフォルダーの構造、構成ファイル、コントローラー、モデル、ブロックが表示されます。

2)Magentoのデザイナーズガイドは、http://www.magentocommerce.com/resources/magento-user-guideにあります。

独自のテーマ、ベストプラクティスに基づくパッケージを整理および作成する方法に関する60ページ。

そこに新しい本は、PHPの背景を持っているし、Magentoので始まる人のために特別にもある- MagentoのPHP開発者ガイドをアラン・マクレガーことで 、それには、Amazonや様々なブログでMagentoの開発者から非常に良いレビューを持っています

ビデオチャンネル: Magento Commerce YouTubeチャンネル

Magentoカンファレンスのビデオをご覧ください

他の良いブログ:

http://magebase.com/
http://inchoo.net/blog/
http://www.kingletas.com/
http://blog.belvg.com/category/magento-news/developer-certification http:/ /fbrnc.net/tag:Magento
http://www.demacmedia.com/category/magento-commerce/


1
これは素晴らしい-素晴らしいリソースです!
philwinkle

8

これまでのところ、ここで素晴らしい答えがあります。について

これまでのところ、拡張機能/プラグインは非常に混乱しています。WordPressのような他のプラットフォームでは、プラグインを独自のフォルダーに配置することができ、すべてのファイルはそのフォルダーの下に保存されます。これまで見てきたことから、プラグインはMagentoのいくつかのフォルダに散らばっているかもしれませんが、これは正しいですか?

Magentoの用語は少しわかりにくいです。プラットフォームの初期の開発は容赦なく急速であり、誤った開始や方向の変化から重複する概念を目にすることが何度もあります。Extensions / plugins / modules / I'm-a-developer-and-want-to-add-my-code-to-the-systemはこれらの領域の1つです。

Magentoの接続拡張は、単にMagentoのシステムにインストールすることができるファイルのパッケージです。これは、Magentoの他のプログラムサブシステムから完全に切り離されています。

慣れ親しんだものに近いのがMagentoコードモジュールです。大まかに言って、コードモジュールは、Magentoが単一のユニットと見なすPHPファイルのコレクションです。モジュールは3つのフォルダーのいずれかにあります

app/code/core
app/code/community
app/code/local

Magentoをカスタマイズしたり、新しい機能を追加したりする場合は、ほとんどの場合、コードモジュールから始めます。実際、Magento自体は約60〜70のコードモジュールの上に構築されています。たとえばMage_Cms

app/code/core/Mage/Cms

MagentoのCMS機能を動作させるコードが含まれています。kitty catsをMagentoに追加するモジュールを作成する場合は、という名前のモジュールを作成しJasondavis_Kittiesて、

app/code/community/Jasondavis/Kitties

再:corecommunity、およびlocal-最初のMagentoの開発者のためのものですので、触れないでください。2つ目は、コミュニティに配布することを目的とした拡張機能です。最後は、特定のシステム向けにローカルで開発することを目的とした拡張機能用です。

最後の混乱は、デザインパッケージに関するものです。MagentoがHTMLのレンダリングと管理に使用するコードは、完全に独立したシステムです。そのため、phtmlファイルはコードモジュールファイルとは別に配置されます。これらのファイルは

app/design

フォルダ。

最もよく書かれたプロフェッショナルな拡張機能は、1つまたは複数のMagentoコードモジュールをインストールするMagento Connect Extensionsとして配布され、デザインパッケージにインストールされた多数のカスタムテンプレートとレイアウトXMLファイルを含みますphtmlbase

コードモジュールで実行できる特定の処理は無数にあり、Stack Exchangeの答えが1つ以上に対応できます。少し古くなっていますが、Magentoのコーディングコンセプトの基礎をしっかりと紹介する一連の記事を書きまし

最後に、Re:

magentoを始めて知ってほしい他の情報はありますか?

私はこれに少し偏っていますが、Commerce Bugと呼ばれるMagentoデバッグ拡張機能を販売しています(小さなデバッグリンクをクリックします)。これにより、Magentoを使用する際に開発者が知る必要のあるすべての情報が収集および表示されます。システムを学習する際に非常に役立ちます(システムをいつまでも学習できるように構築しました)。また、Magentoシステムで日々作業しているときにも役立ちます。作業に1時間ごとに課金する場合、最初のプロジェクトで購入価格を取り戻します。


7

@philwinkleの答えに加えて、PHPインクルードパスの優先度を使用してクラスをオーバーライドすることに関するステートメントに返信したいと思います。

あなたが望むことを達成する他の方法がない場合、緊急の解決策を検討してください。多くの場合、使用するクラスを構成XML設定を介して、またはクラス書き換え(構成XMLでも指定)を使用して指定できます。インクルードパスハック
の欠点は次のとおりです。

  • コントローラーでは機能しません
  • PHPクラス(config.xmlファイルなど)以外では機能しません
  • Magentoをアップグレードするときに、ローカルコピーに変更をマージする必要があります。
  • ほとんどのMagento開発者は、Mage名前空間のモジュールがコアコードプールに存在すると単純に想定しているため、デバッグが混乱します。

1
まったく正しい。個別の回答がなければ、これをどのように使用するかは本当にわかりませんでした。
-philwinkle

それを分離しておくのは良い考えだと思います。
ヴィナイ

知るには良い、私はそれが「正しい」見ていない知っていたが、別の方法があった場合、私はまだ感謝学ぶべきことがたくさん得たので、私は確認されませんでした
JasonDavis

4

まず第一に、コアモジュールまたはクラスを書き換えたり拡張したりすることを考えるべきではありません。Magentoのアーキテクチャを学習し、Magento、EAVの概念、レイアウト階層、Magentoのテーマ、デザインフローをきれいにした機能がほとんどない独自のテストモジュール/拡張機能を作成する必要があります。このリンクを参照してください:Modern Magento 1.X Workflow and Development Tools。がんばろう

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.