Magento Eklenti Geliştirmeyi Öğrenme


30

13+ yıldır PHP geliştiricisiyim, WordPress gibi diğer popüler projelerden beri PHP'nin kapsamlı bilgisine sahibim. Magento ile hiç bir tecrübem yok.

Şimdi Magento'yu kullanan bir şirkette çalışan tam zamanlı bir işim var, tüm geliştirme işim hemen şimdi Magento'da olacak.

Magento'ya ilk defa baktıktan sonra ilk düşüncelerim şu, kendimi şimdi neyin içine soktum? Ama sonra içimdeki deneyimli geliştirici çıkıyor ve hatırlıyor, sadece PHP.

Bu yüzden bazı Magento sorularım var, daha tecrübeli Magento Geliştiricilerinden bazı cevaplar için minnettar olacağım ...

  1. Bu sitenin yanında magento gelişimi hakkında bilgi edinmek için en iyi yerler neresidir?
  2. Eklentiler / eklentiler bana şu ana kadar kafa karıştırıcı. WordPress gibi diğer platformlar bir eklentiyi kendi klasörüne yerleştirmenize izin verir ve tüm dosyaları bu klasörün altında yaşar. Şimdiye kadar gördüğüm kadarıyla, bir eklenti Magento'daki birkaç klasöre dağılmış olabilir, bu doğru mu?
  3. Core fonksiyonelliğini aşmayı öğrendim. Eğer çekirdekteki bir dosya burada bulunursa /app/code/core/Mage/SitemapModel/Resource/Catalog, bu konumda dosyayı oluşturarak onu aşırı hızlandırabilirim, bu /app/code/local/Mage/SitemapModel/Resource/Catalogyüzden bu bir Extension / eklenti ile nasıl çalışır? Çekirdek işlevselliğini aşması gereken bir eklenti oluşturursam, bu uzantının çalışması için dosyalarımı her yerde bulundurmam gerekir mi?
  4. Magento'dan başlamak istediğin başka bir bilgi var mı?

Herhangi bir fikir için teşekkürler, bunun çok parçalı bir soru olduğunu biliyorum, ancak cevapların herhangi birinin kendime ve diğer işe başlamalara yardımcı olacağını hissediyorum, eğer gerekiyorsa bu genel wiki'yi yapacağım.


1
Stackexchange'te bir yapışkan gibi bir şey olsaydı, bu soru-cevap bir olurdu! Bu nasıl bir kaynak oldu :)
McNab

@McNab Yapışkan bir özellik yoktur, ancak en çok oy alan soru genellikle daha üst sıralarda yer alır ve daha sık görülür. Ayrıca bu sayfa magento.stackexchange.com/?tab=month şu anda bu soruyu 2 numara olarak gösteriyor, bu yüzden bir çeşit Yapışkan, ancak "Ay" yazıyor, bu yüzden ne kadar yapışkan kalacağından emin değilim. Bunun büyük bir kaynağa dönüştüğü konusunda hemfikirim ve gelecekte kolay erişim için iyice tercih edildim. BTW lütfen bu topluluğu arkadaşlarınızla paylaşın, böylece kalıcı bir ev olacağınızdan ve Beta döneminden sonra ölmeyeceğinden emin olun
JasonDavis

Yanıtlar:


24

Sorunuzun ilk bölümüne odaklanacağım - " nasıl öğrenirim / nereden başlarım? "

Eski bir Zend Framework geliştiricisi olarak, Magento'yu geliştirmede bana en büyük yardım, Magento U'nun son 2 yılda getirdiği çevrimiçi öğrenmedeki patlama oldu. Resmi öğrenmenin yanı sıra - çoğunlukla yaparak öğrenirim ve şu anda 5 yıldan beri Magento'yu "yapıyorum".

Bazı somut öğrenme kaynakları:

Öğrenme araçlarının yanı sıra, benim için en büyük öğrenme aracı 3. parti Magento modüllerini incelemek oldu. Kodu iyice okudum ve ondan öğrendim. Çekirdek modüllerinden öğrenerek aynı şeyi yapabilirsiniz.

Öğrenme yolculuğunuzda size yardımcı olacak bazı siteler:

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

http://alanstorm.com/

http://colin.mollenhour.com/

http://magentotherightway.com/

İzlenecek bazı epik geliştiriciler:

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

Fabrizio Branca: https://github.com/fbrnc/

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

Sosyal olarak katılın - 'rockstar' geliştiricilerinden bazılarıyla tanışın ve onları Twitter'da takip etmeye başlayın. Yardıma ihtiyacınız olduğunda belirli insanlara ulaşın; Bu topluluğa inanılmaz bir şekilde ulaşılabilir. Topluluğu avantajınız için kullanın.

Bazı Twitter listeleri:

https://twitter.com/inchoo/magento

https://twitter.com/kkoepke/magento

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

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

Sonunda - seneye Magento Imagine'ye seneye trek at ve cilde bas. Bizi takip et, bize sorular sor. Yerel buluşmalarınıza gidin. Bölgenizde bir buluşma yoksa - birini başlatın . Kalıcı ol. Bilgi eksikliğinin sizi ağ kurmaktan ve insanlarla tanışmaktan alıkoymasına izin vermeyin. Topluluktaki ilişkilerin temettülerle ödenecek.


14

Benim 2 sent bril @ philwinkle'nin cevabına.

İki tane resmi PDF var

1) Magento Uzatma Geliştirici Kılavuzu

Adım adım sıfırdan özel bir uzantı oluşturma hakkında 80 sayfa. Modül "Haberler" sıfırdan geliştirilmiştir - modülün dosya ve klasörlerinin yapısını, yapılandırma dosyalarını, kontrol cihazlarını, modelleri, blokları gösterir.

2) Magento için Tasarımcı Kılavuzu burada bulunabilir http://www.magentocommerce.com/resources/magento-user-guide

Kendi temalarınızı nasıl düzenleyeceğiniz ve yaratacağınızla ilgili 60 sayfa, en iyi uygulamalara göre paketler.

Ayrıca PHP geçmişi olan ve Magento ile başlayanlar için yeni bir kitap var . Allan McGregor'dan Magento PHP Geliştirici Kılavuzu ve Amazon'daki Magento geliştiricilerinden ve çeşitli bloglardan çok iyi değerlendirmeleri var.

Video kanalları: Magento Ticaret YouTube kanalı

Magento konferansları videolarıyla tanışın

Diğer iyi bloglar:

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
Bu harika - harika kaynaklar!
Philwinkle

8

Buraya kadar her yerde harika cevaplar. ilişkin

Eklentiler / eklentiler bana şu ana kadar kafa karıştırıcı. WordPress gibi diğer platformlar bir eklentiyi kendi klasörüne yerleştirmenize izin verir ve tüm dosyaları bu klasörün altında yaşar. Şimdiye kadar gördüğüm kadarıyla, bir eklenti Magento'da birkaç klasöre dağılmış olabilir, bu doğru mu?

Magento'daki terminoloji biraz kafa karıştırıcı oluyor. Platformun erken gelişimi acımasız bir şekilde hızlıydı ve örtüşen kavramları yanlış başlangıçlardan ve yön değişikliklerinden göreceğiniz birçok kez var. Uzantılar / eklentiler / modüller / sisteme kod ekleyen / geliştiricisiyim ve istemek istediğim bu alanlardan biridir.

Bir Magento Bağlan Uzatma sadece Magento sisteme yüklenmiş olabilir dosyaların bir pakettir. Tamamen Magento'nun diğer programlı alt sistemlerinden tamamen ayrıldı.

Alışkın olduğunuz şeye daha çok Magento Kod Modülleri geliyor . Kabaca konuşmak gerekirse, bir kod modülü, Magento'nun tek birim olarak gördüğü bir PHP dosyaları koleksiyonudur. Modüller üç klasörden birinde bulunur

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

Magento'yu özelleştirmek veya yeni özellikler eklemek istediğinizde, neredeyse her zaman bir kod modülüyle başlarsınız. Aslında, Magento'nun kendisi yaklaşık 60 - 70 kod modülünün üzerine inşa edilmiştir. Örneğin, Mage_Cmsmodül

app/code/core/Mage/Cms

Magento'nun CMS özelliklerini çalıştıran kodu içerir. Magento'ya yavru kediler ekleyen bir modül oluşturacaksanız, adında bir modül oluşturabilir Jasondavis_Kittiesve içine yerleştirebilirsiniz.

app/code/community/Jasondavis/Kitties

Re: core,, communityve local- ilki Magento geliştiricileri içindir, o yüzden dokunma. İkincisi, topluma dağıtılması amaçlanan uzantılar içindir. Sonuncusu, belirli bir sistem için yerel olarak geliştirilmesi amaçlanan uzantılar içindir.

Son karışıklık, tasarım paketleriyle ilgilidir . Magento'nun HTML'sini oluşturmak ve yönetmek için kullandığı kod tamamen ayrı bir sistemdir. Bu yüzden phtmldosyalar kod modülü dosyalarından ayrı bulunur . Bu dosyaları

app/design

Klasör.

En iyi yazılmış, profesyonel uzantılar , bir veya daha fazla Magento Kod Modülü yükleyen ve tasarım paketinde yüklü bir dizi özel şablon ve Mizanpaj XML dosyaları içeren Magento Bağlantı Uzantıları olarak dağıtılır .phtmlbase

Kod modülleriyle yapabileceğiniz şeyler sayısızdır ve herhangi bir Stack Exchange cevabından daha fazlasını kapsayabilir. Biraz tarihli olmasına rağmen hala Magento'nun kodlama kavramlarına sağlam bir giriş niteliğinde olan bir dizi makale yazdım .

Sonunda, Re:

Magento'dan başlamak istediğin başka bir bilgi var mı?

Bu konuda biraz önyargılıyım, ancak Commerce Bug adlı bir Magento hata ayıklama uzantısı satıyorum (küçük hata ayıklama bağlantısını tıklayın). Bu, bir geliştiricinin Magento ile çalışırken bilmesi gereken tüm bilgileri toplar ve görüntüler. Sistemi öğrenirken çok büyük bir yardım (onu ne zaman sistemi öğrenmeme yardımcı olmak için yaptım) ve Magento sisteminde günden güne çalışırken yardımcı olmaya devam ediyor. İşiniz için saatlik ücret alıyorsanız, ilk projenizdeki satın alma fiyatını geri alacaksınız.


7

@ Philwinkle'nin cevabına ek olarak, PHP'yi kullanarak yol önceliği olan sınıfları geçersiz kılma hakkındaki ifadenize cevap vermek istiyorum.

İstediğinizi başarmanın başka bir yolu yoksa, acil bir çözüm olarak düşünün. Genellikle, hangi sınıfın bir yapılandırma XML ayarı ile veya bir sınıf yeniden yazma kullanarak (yapılandırma XML'de belirtildiği) kullanılacağını belirleyebilirsiniz.
Dahil yolu kesmek dezavantajları şunlardır:

  • Kontrolörler için çalışmıyor
  • PHP sınıfları dışında hiçbir şey için çalışmaz (örneğin config.xml dosyaları)
  • Magento'yu yükseltirken değişiklikleri yerel kopyalarınızda birleştirmek zorunda kalacaksınız
  • Çoğu Magento geliştiricisi, temel kod havuzunda yaşamak için Mage ad alanından Modülleri varsaydığı için hata ayıklamak kafa karıştırıcıdır.

1
Kesinlikle doğru. Ayrı bir cevap olmadan bunun nasıl yapılacağından emin değildim.
Philwinkle

Ayrı tutmanın iyi bir fikir olduğunu düşünüyorum.
Vinai

Bilmek güzel, "doğru" görünmediğini biliyordum ama başka bir yol olup olmadığından emin değildim, bu yüzden hala öğrenecek çok şeyim var
JasonDavis

4

Her şeyden önce çekirdek modülleri veya sınıfı yeniden yazmak veya genişletmek hakkında düşünmemelisiniz. Magento mimarisini öğrenmeli, Magento, EAV kavramları, düzen hiyerarşisi, Magento teması ve tasarım akışını temizlemeyen küçük işlevselliğe sahip kendi test modülünü / uzantısını yazmalısınız. Bu bağlantıya atıfta bulunuyorum: Modern Magento 1.X İş Akışı ve Geliştirme Araçları . İyi şanslar

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.