He sido desarrollador de PHP por más de 13 años, tengo un amplio conocimiento de PHP en sí mismo, mientras que otros proyectos populares como WordPress. No tengo experiencia con Magento.
Ahora tengo un trabajo de tiempo completo trabajando para una compañía que usa Magento, todo mi trabajo de desarrollo estará en Magento más o menos ahora.
Mis pensamientos iniciales después de mirar a Magento por primera vez son: wow, ¿en qué me he metido ahora? Pero entonces el desarrollador experimentado en mí sale y recuerda, es solo PHP.
Así que tengo algunas preguntas básicas de Magento que realmente agradecería algunas respuestas de desarrolladores de Magento más experimentados ...
- ¿Cuáles son los mejores lugares más útiles para aprender sobre el desarrollo de magento junto a este sitio?
- Las extensiones / complementos son muy confusos hasta ahora para mí. Otras plataformas como WordPress le permiten colocar un complemento en su propia carpeta y todos sus archivos vivirán debajo de esa carpeta. Por lo que he visto hasta ahora, un complemento puede estar disperso en varias carpetas en Magento, ¿es esto correcto?
- He aprendido sobre cómo anular la funcionalidad Core. Entonces, si un archivo en el núcleo se encuentra aquí,
/app/code/core/Mage/SitemapModel/Resource/Catalog
entonces puedo anularlo creando el archivo en esta ubicación,/app/code/local/Mage/SitemapModel/Resource/Catalog
¿cómo funciona esto con una extensión / complemento? Si creo un complemento que necesita anular la funcionalidad principal, ¿debo tener mis archivos por todas partes para que esa extensión funcione? - ¿Alguna otra información que desearía saber comenzando con magento?
Gracias por cualquier idea, sé que esta es una pregunta de varias partes, pero creo que cualquiera de las respuestas sería útil para mí y para otros, comenzaré este wiki público si debo hacerlo también.
fuente
Respuestas:
Me centraré en la primera parte de su pregunta: " ¿Cómo aprendo / dónde empiezo? "
Como antiguo desarrollador de Zend Framework, la mayor ayuda para mí en el desarrollo de Magento ha sido la explosión en el aprendizaje en línea que Magento U ha traído en los últimos 2 años. Además del aprendizaje formal, aprendo principalmente haciendo , y he estado "haciendo" Magento durante más de 5 años.
Algunos recursos de aprendizaje concretos:
Además de las herramientas de aprendizaje, para mí la herramienta de aprendizaje más grande ha sido el examen de módulos de Magento de terceros. Leo el código a fondo y aprendo de él. Puede hacer lo mismo aprendiendo de los módulos principales.
Algunos sitios que serán útiles para usted en su viaje de aprendizaje:
http://magento-quickies.tumblr.com/
http://alanstorm.com/
http://colin.mollenhour.com/
http://magentotherightway.com/
Algunos desarrolladores épicos a seguir:
Alistair Stead: https://github.com/alistairstead
Fabrizio Branca: https://github.com/fbrnc/
Vinai Kopp: https://github.com/Vinai
Participe socialmente : conozca a algunos de los desarrolladores 'rockstar' y comience a seguirlos en Twitter. Comuníquese con personas específicas cuando necesite ayuda; Esta comunidad es increíblemente accesible. Use la comunidad para su ventaja.
Algunas listas de Twitter:
https://twitter.com/inchoo/magento
https://twitter.com/kkoepke/magento
https://twitter.com/eHubSystem/magento-imagine-2013
https://twitter.com/GingerWarriorX/magento-peeps
Finalmente, haga la caminata el próximo año a Magento Imagine el próximo año y presione la carne. Rastrearnos, hacernos preguntas. Ve a tus reuniones locales. Si no existe una reunión en su área, comience una . Se persistente. No permita que su falta de conocimiento le impida establecer contactos y conocer gente. Sus relaciones en la comunidad darán sus frutos en dividendos.
fuente
Mis 2 centavos a la brillante respuesta de @ philwinkle.
Hay dos archivos PDF oficiales.
1) Guía del desarrollador de Magento Extension
80 páginas sobre cómo crear una extensión personalizada desde cero paso a paso. El módulo "Noticias" se desarrolla desde cero: le mostrará la estructura de los archivos y carpetas de los módulos, los archivos de configuración, los controladores, los modelos y los bloques.
2) La Guía del diseñador de Magento se puede encontrar aquí http://www.magentocommerce.com/resources/magento-user-guide
60 páginas sobre cómo organizar y crear sus propios temas, paquetes de acuerdo con las mejores prácticas.
También hay un nuevo libro específicamente para aquellos que tienen experiencia en PHP y comienzan con Magento: Magento PHP Developer's Guide de Allan McGregor y tiene muy buenas críticas de los desarrolladores de Magento en Amazon y varios blogs.
Canales de video: canal de YouTube Magento Commerce
Conoce los videos de las conferencias de Magento
Otros buenos 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/
fuente
Grandes respuestas aquí hasta ahora por todos lados. Respecto a
La terminología en Magento se vuelve un poco confusa. El desarrollo inicial de la plataforma fue implacablemente rápido y hay muchas veces en las que verá conceptos superpuestos desde comienzos falsos y cambios de dirección. Extensiones / complementos / módulos / Soy-un-desarrollador-y-quiero-agregar-mi-código-al-sistema es una de estas áreas.
Una extensión de Magento Connect es simplemente un paquete de archivos que pueden instalarse en un sistema Magento. Está completamente desacoplado de cualquiera de los otros subsistemas programáticos de Magento.
Sin embargo, más cerca de lo que estás acostumbrado son los módulos de código de Magento . En términos generales, un módulo de código es una colección de archivos PHP que Magento ve como una sola unidad. Los módulos están ubicados en una de las tres carpetas.
Cuando desee personalizar Magento o agregar nuevas funciones, casi siempre comenzará con un módulo de código. De hecho, Magento está construido sobre unos 60 a 70 módulos de código. Por ejemplo, el
Mage_Cms
módulo encontiene el código que hace que las funciones CMS de Magento funcionen. Si iba a crear un módulo que agregara gatitos a Magento, podría crear un módulo llamado
Jasondavis_Kitties
y colocarlo enRe:
core
,community
ylocal
- el primero es para los desarrolladores de Magento, por lo que no toque. El segundo es para extensiones que están destinadas a ser distribuidas a la comunidad. El último es para extensiones que están destinadas a ser desarrolladas localmente, para un sistema específico.El último bit de confusión está relacionado con los paquetes de diseño . El código que Magento usa para representar y administrar su HTML es un sistema completamente separado. Es por eso que los
phtml
archivos se encuentran separados de los archivos del módulo de código . Puede encontrar estos archivos en elcarpeta.
La mayoría de las extensiones profesionales bien escritas se distribuyen como extensiones de Magento Connect que instalan uno o varios módulos de código de Magento y contienen una serie de
phtml
plantillas personalizadas y archivos XML de diseño instalados en elbase
paquete de diseño .Las cosas específicas que puede hacer con los módulos de código son innumerables, y más de lo que cualquier respuesta de Stack Exchange puede cubrir. Escribí una serie de artículos que, aunque un poco anticuados, siguen siendo una introducción sólida a los conceptos de codificación de Magento.
Finalmente, re:
Estoy un poco sesgado en este caso, pero vendo una extensión de depuración de Magento llamada Commerce Bug (haga clic en el pequeño enlace de depuración). Esto recopila y muestra toda la información que un desarrollador necesita saber cuando trabaja con Magento. Es una gran ayuda cuando estás aprendiendo el sistema (lo construí para ayudarme a aprender el sistema en el pasado), y sigue siendo útil cuando trabajas día a día en un sistema Magento. Si está cobrando por su trabajo por hora, recuperará el precio de compra en su primer proyecto.
fuente
Además de la respuesta de @ philwinkle, quiero responder a su declaración sobre la anulación de clases usando la prioridad de ruta de inclusión PHP.
Considere que es una solución de emergencia si no hay otra forma de lograr lo que desea. A menudo puede especificar qué clase usar a través de una configuración XML de configuración, o usando una reescritura de clase (también especificada en config XML).
Las desventajas del hack de ruta de inclusión son:
fuente
En primer lugar, no debe pensar en reescribir o extender módulos o clases principales. Debe aprender la arquitectura de Magento, escribir su propio módulo / extensión de prueba con poca funcionalidad que no haya limpiado Magento, conceptos EAV, jerarquía de diseño, tema de Magento y flujo de diseño. Me refiero a este enlace: Modern Magento 1.X Workflow y herramientas de desarrollo . Buena suerte
fuente