Je suis un développeur PHP depuis plus de 13 ans, j'ai une connaissance approfondie de PHP lui-même aussi longtemps que d'autres projets populaires comme WordPress. Je n'ai aucune expérience avec Magento.
J'ai maintenant un travail à plein temps pour une entreprise qui utilise Magento, tout mon travail de développement sera à peu près sur Magento maintenant.
Mes premières pensées après avoir regardé Magento pour la première fois sont: wow dans quoi je me suis embarqué maintenant? Mais alors le développeur expérimenté en moi sort et se souvient, c'est juste PHP.
J'ai donc quelques questions de base sur Magento auxquelles j'apprécierais vraiment des réponses de développeurs Magento plus expérimentés ...
- Quels sont les meilleurs endroits les plus utiles pour en savoir plus sur le développement de magento à côté de ce site?
- Les extensions / plugins sont pour moi très déroutants jusqu'à présent. D'autres plateformes comme WordPress vous permettent de placer un plugin dans son propre dossier et tous ses fichiers vivront sous ce dossier. D'après ce que j'ai vu jusqu'à présent, un plugin peut être dispersé dans plusieurs dossiers dans Magento, est-ce correct?
- J'ai appris à contourner la fonctionnalité Core. Donc, si un fichier dans le noyau se trouve ici,
/app/code/core/Mage/SitemapModel/Resource/Catalog
je peux le contourner en créant le fichier à cet emplacement,/app/code/local/Mage/SitemapModel/Resource/Catalog
alors comment cela fonctionne-t-il avec une extension / un plugin? Si je crée un plugin qui doit remplacer les fonctionnalités de base, alors je dois avoir mes fichiers partout pour que cette extension fonctionne? - Avez-vous d'autres informations que vous souhaiteriez connaître en commençant par magento?
Merci pour tout aperçu, je sais que c'est une question en plusieurs parties mais je pense que l'une des réponses serait utile pour moi et pour les autres, je ferai ce wiki public si je le dois aussi.
la source
Réponses:
Je vais me concentrer sur la première partie de votre question - " comment puis-je apprendre / par où commencer? "
En tant qu'ancien développeur de Zend Framework, la plus grande aide que j'ai apportée au développement de Magento a été l'explosion de l'apprentissage en ligne que Magento U a apportée au cours des 2 dernières années. Mis à part l'apprentissage formel - j'apprends surtout en faisant , et je "fais" Magento depuis plus de 5 ans maintenant.
Quelques ressources d'apprentissage concrètes:
Mis à part les outils d'apprentissage, pour moi, le plus grand outil d'apprentissage a été d'examiner les modules Magento tiers. J'ai lu le code à fond et j'en tire des leçons. Vous pouvez faire de même en apprenant des modules Core.
Quelques sites qui vous seront utiles dans votre parcours d'apprentissage:
http://magento-quickies.tumblr.com/
http://alanstorm.com/
http://colin.mollenhour.com/
http://magentotherightway.com/
Quelques développeurs épiques à suivre:
Alistair Stead: https://github.com/alistairstead
Fabrizio Branca: https://github.com/fbrnc/
Vinai Kopp: https://github.com/Vinai
Impliquez-vous socialement - rencontrez certains des développeurs «rockstar» et commencez à les suivre sur Twitter. Contactez des personnes spécifiques lorsque vous avez besoin d'aide; cette communauté est incroyablement accessible. Utilisez la communauté à votre avantage.
Quelques listes Twitter:
https://twitter.com/inchoo/magento
https://twitter.com/kkoepke/magento
https://twitter.com/eHubSystem/magento-imagine-2013
https://twitter.com/GingerWarriorX/magento-peeps
Enfin - faites le trek l'année prochaine à Magento Imaginez l'année prochaine et appuyez sur la chair. Retrouvez-nous, posez-nous des questions. Sortez à vos rencontres locales. S'il n'y a pas de rencontre dans votre région - commencez-en une . Être persistant. Ne laissez pas votre manque de connaissances vous empêcher de réseauter et de rencontrer des gens. Vos relations dans la communauté porteront leurs fruits.
la source
Mes 2 cents à la réponse brillante de @ philwinkle.
Il y a deux PDF officiels
1) Guide du développeur d'extension Magento
80 pages sur la façon de créer une extension personnalisée à partir de zéro, étape par étape. Le module "News" est développé à partir de zéro - il vous montrera la structure des fichiers et des dossiers du module, les fichiers de configuration, les contrôleurs, les modèles, les blocs.
2) Le guide du concepteur de Magento peut être trouvé ici http://www.magentocommerce.com/resources/magento-user-guide
60 pages sur l'organisation et la création de vos propres thèmes, packages selon les meilleures pratiques.
Il y a aussi un nouveau livre spécialement pour ceux qui ont des antécédents en PHP et qui commencent avec Magento - Guide du développeur PHP Magento par Allan McGregor et il a de très bonnes critiques des développeurs Magento sur Amazon et divers blogs
Chaînes vidéo: chaîne YouTube Magento Commerce
Découvrez les vidéos des conférences Magento
Autres bons 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/
la source
Excellentes réponses jusqu'ici tout autour. En ce qui concerne
La terminologie dans Magento devient un peu confuse. Le développement précoce de la plateforme a été impitoyablement rapide et il y a de nombreuses fois où vous verrez des concepts qui se chevauchent à partir de faux départs et de changements de direction. Extensions / plugins / modules / Je suis un développeur et je veux ajouter mon code au système est l'un de ces domaines.
Une extension Magento Connect est simplement un ensemble de fichiers qui peuvent être installés dans un système Magento. Il est complètement découplé de tout autre sous-système de programmation de Magento.
Les modules de code Magento sont plus proches de ce à quoi vous êtes habitué . En gros, un module de code est une collection de fichiers PHP que Magento considère comme une seule unité. Les modules sont situés dans l'un des trois dossiers
Lorsque vous souhaitez personnaliser Magento ou ajouter de nouvelles fonctionnalités, vous commencerez presque toujours par un module de code. En fait, Magento lui-même est construit sur environ 60 à 70 modules de code. Par exemple, le
Mage_Cms
module decontient le code qui fait fonctionner les fonctionnalités CMS de Magento. Si vous deviez créer un module qui a ajouté des chats minou à Magento, vous pourriez créer un module nommé
Jasondavis_Kitties
et le placer dansRe:
core
,community
etlocal
- le premier est pour les développeurs de Magento, ne touchez pas. La seconde concerne les extensions destinées à être distribuées à la communauté. La dernière concerne les extensions destinées à être développées localement, pour un système spécifique.La dernière confusion concerne les packages de conception . Le code que Magento utilise pour rendre et gérer son HTML est un système complètement séparé. C'est pourquoi les
phtml
fichiers sont situés séparément des fichiers de module de code . Vous pouvez trouver ces fichiers dans ledossier.
La plupart des extensions professionnelles bien écrites sont distribuées sous forme d' extensions Magento Connect qui installent un ou plusieurs modules de code Magento et contiennent un certain nombre de
phtml
modèles personnalisés et de fichiers XML de mise en page installés dans lebase
package de conception .Les choses spécifiques que vous pouvez faire avec les modules de code sont innombrables, et plus que n'importe quelle réponse Stack Exchange peut couvrir. J'ai écrit une série d'articles qui, bien qu'un peu datés, sont toujours une introduction solide aux concepts de codage de Magento.
Enfin, Re:
Je suis un peu biaisé sur celui-ci, mais je vends une extension de débogage Magento appelée Commerce Bug (cliquez sur le petit lien de débogage). Cela recueille et affiche toutes les informations qu'un développeur doit connaître lorsqu'il travaille avec Magento. C'est une aide énorme lorsque vous apprenez le système (je l'ai construit pour m'aider à réapprendre le système quand), et reste utile lorsque vous travaillez au jour le jour sur un système Magento. Si vous facturez toutes les heures pour votre travail, vous rembourserez le prix d'achat sur votre premier projet.
la source
En plus de la réponse de @ philwinkle, je veux répondre à votre déclaration concernant la substitution des classes utilisant la priorité de chemin d'inclusion PHP.
Considérez qu'il s'agit d'une solution d'urgence s'il n'y a pas d'autre moyen d'accomplir ce que vous voulez. Souvent, vous pouvez spécifier la classe à utiliser via un paramètre XML de configuration ou à l'aide d'une réécriture de classe (également spécifiée dans config XML).
Les inconvénients du hack de chemin d'accès inclus sont:
la source
Tout d'abord, vous ne devriez pas penser à réécrire ou étendre les modules ou la classe de base. Vous devez apprendre l'architecture Magento, écrire son propre module / extension de test avec peu de fonctionnalités qui n'ont pas nettoyé Magento, les concepts EAV, la hiérarchie de la disposition, le thème Magento et le flux de conception. Je renvoie ce lien: Modern Magento 1.X Workflow and Development Tools . Bonne chance
la source