Ich bin seit über 13 Jahren PHP-Entwickler und verfüge über umfangreiche PHP-Kenntnisse, solange ich noch andere beliebte Projekte wie WordPress betreibe. Ich habe keine Erfahrung mit Magento.
Ich habe jetzt eine Vollzeitbeschäftigung bei einem Unternehmen, das Magento verwendet. Meine gesamte Entwicklungsarbeit wird jetzt so ziemlich auf Magento konzentriert sein.
Meine ersten Gedanken nach dem ersten Blick auf Magento sind: Wow, worauf habe ich mich jetzt eingelassen? Aber dann kommt der erfahrene Entwickler in mir heraus und erinnert sich, es ist nur PHP.
Ich habe also einige grundlegende Fragen zu Magento. Ich würde mich sehr über Antworten von erfahrenen Magento-Entwicklern freuen.
- Was ist neben dieser Site der beste Ort, um mehr über die Entwicklung von Magento zu erfahren?
- Erweiterungen / Plugins sind für mich bisher sehr verwirrend. Auf anderen Plattformen wie WordPress können Sie ein Plugin in einem eigenen Ordner ablegen, und alle darin enthaltenen Dateien werden in diesem Ordner gespeichert. Nach dem, was ich bisher gesehen habe, könnte ein Plugin auf mehrere Ordner in Magento verteilt sein. Ist das richtig?
- Ich habe gelernt, wie man die Kernfunktionalität außer Kraft setzt. Wenn sich hier also eine Datei im Core befindet,
/app/code/core/Mage/SitemapModel/Resource/Catalog
kann ich sie überschreiben, indem ich die Datei an diesem Speicherort erstelle./app/code/local/Mage/SitemapModel/Resource/Catalog
Wie funktioniert das mit einer Erweiterung / einem Plugin? Wenn ich ein Plugin erstelle, das die Kernfunktionalität überschreiben muss, muss ich meine Dateien überall haben, damit diese Erweiterung funktioniert? - Haben Sie weitere Informationen, von denen Sie sich wünschen, dass Sie sie bereits mit Magento kennen?
Vielen Dank für jede Einsicht, ich weiß, dass dies eine mehrteilige Frage ist, aber ich denke, dass jede der Antworten für mich und andere hilfreich wäre. Ich werde dieses öffentliche Wiki veröffentlichen, wenn ich muss.
quelle
Antworten:
Ich werde mich auf den ersten Teil Ihrer Frage konzentrieren: " Wie lerne ich / wo fange ich an ? "
Als ehemaliger Zend Framework-Entwickler war die größte Hilfe für mich bei der Entwicklung von Magento die Explosion des Online-Lernens, die Magento U in den letzten zwei Jahren gebracht hat. Abgesehen vom formalen Lernen lerne ich hauptsächlich durch das Tun und mache seit über 5 Jahren Magento.
Einige konkrete Lernressourcen:
Abgesehen von Lernwerkzeugen bestand das größte Lernwerkzeug für mich darin, Magento-Module von Drittanbietern zu untersuchen. Ich lese den Code gründlich und lerne daraus. Sie können dasselbe tun, indem Sie von den Core-Modulen lernen.
Einige Websites, die Ihnen auf Ihrer Lernreise hilfreich sein werden:
http://magento-quickies.tumblr.com/
http://alanstorm.com/
http://colin.mollenhour.com/
http://magentotherightway.com/
Einige epische Entwickler, denen Sie folgen sollten:
Alistair Stead: https://github.com/alistairstead
Fabrizio Branca: https://github.com/fbrnc/
Vinai Kopp: https://github.com/Vinai
Engagieren Sie sich sozial - lernen Sie einige der 'Rockstar'-Entwickler kennen und folgen Sie ihnen auf Twitter. Wenden Sie sich an bestimmte Personen, wenn Sie Hilfe benötigen. Diese Community ist unglaublich zugänglich. Nutzen Sie die Community zu Ihrem Vorteil.
Einige Twitter-Listen:
https://twitter.com/inchoo/magento
https://twitter.com/kkoepke/magento
https://twitter.com/eHubSystem/magento-imagine-2013
https://twitter.com/GingerWarriorX/magento-peeps
Schließlich - machen Sie den Trek nächstes Jahr zu Magento Imagine nächstes Jahr und drücken Sie das Fleisch. Spüren Sie uns auf, stellen Sie uns Fragen. Gehen Sie zu Ihren lokalen Meetups. Wenn es in Ihrer Nähe kein Meetup gibt, starten Sie eines . Hartnäckig sein. Lassen Sie sich nicht von Ihrem Mangel an Wissen davon abhalten, sich zu vernetzen und Leute zu treffen. Ihre Beziehungen in der Gemeinschaft werden sich in Dividenden auszahlen.
quelle
Meine 2 Cent an brilliant @ philwinkle's Antwort.
Es gibt zwei offizielle PDFs
1) Magento Extension Entwicklerhandbuch
80 Seiten, auf denen Schritt für Schritt erklärt wird, wie Sie eine benutzerdefinierte Erweiterung von Grund auf neu erstellen. Das Modul "News" wurde von Grund auf neu entwickelt - es zeigt die Struktur der Dateien und Ordner des Moduls, Konfigurationsdateien, Controller, Modelle und Blöcke.
2) Designer's Guide für Magento finden Sie hier http://www.magentocommerce.com/resources/magento-user-guide
60 Seiten zum Organisieren und Erstellen eigener Themen, Pakete nach bewährten Methoden.
Es gibt auch ein neues Buch speziell für diejenigen, die PHP-Hintergrund haben und mit Magento beginnen - Magento PHP Developer's Guide von Allan McGregor. Es enthält sehr gute Rezensionen von Magento-Entwicklern auf Amazon und verschiedenen Blogs
Videokanäle: Magento Commerce YouTube-Kanal
Treffen Sie Videos zu Magento-Konferenzen
Andere gute Blogs:
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/
quelle
Großartige Antworten hier bisher. Bezüglich
Die Terminologie in Magento wird etwas verwirrend. Die frühe Entwicklung der Plattform war rücksichtslos schnell und es gibt viele Male, bei denen sich überlappende Konzepte aufgrund von Fehlstarts und Richtungsänderungen auftreten. Erweiterungen / Plugins / Module / Ich bin ein Entwickler und möchte meinen Code zum System hinzufügen.
Eine Magento Connect-Erweiterung ist einfach ein Paket von Dateien, die auf einem Magento-System installiert werden können. Es ist vollständig von allen anderen programmatischen Subsystemen von Magento entkoppelt.
Näher an dem, was Sie gewohnt sind, sind Magento-Codemodule . Grob gesagt ist ein Codemodul eine Sammlung von PHP-Dateien, die Magento als eine Einheit ansieht. Die Module befinden sich in einem von drei Ordnern
Wenn Sie Magento anpassen oder neue Funktionen hinzufügen möchten, beginnen Sie fast immer mit einem Codemodul. Tatsächlich basiert Magento selbst auf rund 60 - 70 Codemodulen. Zum Beispiel das
Mage_Cms
Modul inEnthält den Code, mit dem die CMS-Funktionen von Magento funktionieren. Wenn Sie ein Modul erstellen möchten, mit dem KittyCats zu Magento hinzugefügt wurden, können Sie ein Modul mit dem Namen erstellen
Jasondavis_Kitties
und in dieses einfügenRe:
core
,community
undlocal
- die erste für Magento - Entwickler ist, berühren so nicht. Die zweite ist für Erweiterungen gedacht, die an die Community verteilt werden sollen. Die letzte ist für Erweiterungen gedacht, die lokal für ein bestimmtes System entwickelt werden sollen.Die letzte Verwirrung betrifft Designpakete . Der Code, mit dem Magento HTML rendert und verwaltet, ist ein völlig separates System. Aus diesem Grund
phtml
befinden sich Dateien getrennt von Codemoduldateien . Sie finden diese Dateien imMappe.
Am besten geschriebene professionelle Erweiterungen werden als Magento Connect-Erweiterungen vertrieben, die ein oder mehrere Magento-Codemodule installieren und eine Reihe von benutzerdefinierten
phtml
Vorlagen und Layout-XML-Dateien enthalten, die imbase
Design-Paket installiert sind .Die spezifischen Dinge, die Sie mit Codemodulen tun können, sind unzählig, und mehr als eine Stack Exchange-Antwort kann dies abdecken. Ich habe eine Reihe von Artikeln geschrieben , die, obwohl ein wenig veraltet, immer noch eine solide Einführung in die Codierungskonzepte von Magento darstellen.
Schließlich Re:
Ich bin ein bisschen voreingenommen, aber ich verkaufe eine Magento-Debug-Erweiterung namens Commerce Bug (klicke auf den kleinen Debug-Link). Dadurch werden alle Informationen gesammelt und angezeigt, die ein Entwickler für die Arbeit mit Magento benötigt. Es ist eine große Hilfe beim Erlernen des Systems (ich habe es so aufgebaut, dass ich das System in der Vergangenheit besser kennenlernen kann) und bleibt hilfreich, wenn Sie täglich an einem Magento-System arbeiten. Wenn Sie Ihre Arbeit stündlich abrechnen, erhalten Sie den Kaufpreis für Ihr erstes Projekt zurück.
quelle
Zusätzlich zur Antwort von @ philwinkle möchte ich auf Ihre Aussage zum Überschreiben von Klassen mit der PHP-Include-Pfadpriorität antworten.
Betrachten Sie dies als eine Notfalllösung, wenn es keinen anderen Weg gibt, das zu erreichen, was Sie wollen. Häufig können Sie die zu verwendende Klasse über eine XML-Konfigurationseinstellung oder über ein Umschreiben der Klasse angeben (auch in der XML-Konfiguration angegeben).
Die Nachteile des Include-Pfad-Hack sind:
quelle
Zuallererst sollten Sie nicht daran denken, Kernmodule oder Klassen neu zu schreiben oder zu erweitern. Sie müssen die Magento-Architektur erlernen, ein eigenes Testmodul / eine eigene Erweiterung mit wenig Funktionalität schreiben, die Magento, EAV-Konzepte, Layouthierarchie, Magento-Thema und Designfluss nicht bereinigt. Ich verweise auf diesen Link: Moderne Magento 1.X Workflow- und Entwicklungstools . Viel Glück
quelle