Sou desenvolvedor PHP há mais de 13 anos, tenho amplo conhecimento do próprio PHP desde que outros projetos populares como o WordPress. Não tenho experiência com Magento.
Agora tenho um emprego em período integral trabalhando para uma empresa que usa Magento, todo o meu trabalho de desenvolvimento estará no Magento praticamente agora.
Meus pensamentos iniciais depois de olhar para Magento pela primeira vez são: uau, no que eu me meti agora? Mas então o desenvolvedor experiente em mim sai e lembra, é apenas PHP.
Então, eu tenho algumas perguntas básicas sobre Magento e gostaria muito de receber respostas de desenvolvedores mais experientes de Magento ...
- Quais são os melhores lugares mais úteis para aprender sobre o desenvolvimento de magento ao lado deste site?
- Extensões / plugins são muito confusos até agora para mim. Outras plataformas como o WordPress permitem que você coloque um plug-in em sua própria pasta e todos os seus arquivos estarão nessa pasta. Pelo que vi até agora, um plug-in pode estar espalhado por várias pastas no Magento, está correto?
- Eu aprendi sobre como substituir a funcionalidade do Core. Portanto, se um arquivo no núcleo estiver localizado aqui
/app/code/core/Mage/SitemapModel/Resource/Catalog
, eu posso substituí-lo criando o arquivo neste local./app/code/local/Mage/SitemapModel/Resource/Catalog
Como isso funciona com uma extensão / plugin? Se eu criar um plug-in que precise substituir a funcionalidade principal, devo ter meus arquivos em todo o lugar para que essa extensão funcione? - Alguma outra informação que você gostaria de conhecer começando com magento?
Obrigado por qualquer insight, eu sei que essa é uma pergunta em várias partes, mas eu sinto que qualquer uma das respostas seria útil para mim e para outras pessoas que estão começando.
fonte
Respostas:
Vou focar na primeira parte da sua pergunta - " como eu aprendo / onde eu começo? "
Como ex-desenvolvedor do Zend Framework, a maior ajuda para mim no desenvolvimento do Magento foi a explosão no aprendizado on-line que o Magento U trouxe nos últimos 2 anos. Além do aprendizado formal - eu aprendo principalmente fazendo , e estou "fazendo" o Magento há mais de 5 anos.
Alguns recursos concretos de aprendizado:
Além das ferramentas de aprendizado, para mim a maior ferramenta de aprendizado foi examinar os módulos Magento de terceiros. Eu li o código completamente e aprendi com ele. Você pode fazer o mesmo aprendendo com os módulos principais.
Alguns sites que serão úteis para você em sua jornada de aprendizado:
http://magento-quickies.tumblr.com/
http://alanstorm.com/
http://colin.mollenhour.com/
http://magentotherightway.com/
Alguns desenvolvedores épicos a seguir:
Alistair Stead: https://github.com/alistairstead
Fabrizio Branca: https://github.com/fbrnc/
Vinai Kopp: https://github.com/Vinai
Participe socialmente - conheça alguns dos desenvolvedores 'rockstar' e comece a segui-los no Twitter. Entre em contato com pessoas específicas quando precisar de ajuda; esta comunidade é incrivelmente acessível. Use a comunidade para sua vantagem.
Algumas listas do 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 - faça a caminhada no próximo ano para o Magento Imagine no próximo ano e pressione a carne. Encontre-nos, faça perguntas. Saia para os seus encontros locais. Se não houver uma reunião na sua área, inicie uma . Seja persistente. Não deixe sua falta de conhecimento impedi-lo de fazer contatos e conhecer pessoas. Seus relacionamentos na comunidade renderão dividendos.
fonte
Meus 2 centavos a resposta brilhante @ philwinkle.
Existem dois PDFs oficiais
1) Guia do desenvolvedor de extensão Magento
80 páginas sobre como criar uma extensão personalizada do zero, passo a passo. O módulo "Notícias" é desenvolvido a partir do zero - ele mostra a estrutura de arquivos e pastas do módulo, arquivos de configuração, controladores, modelos, blocos.
2) O Guia do Designer para Magento pode ser encontrado aqui http://www.magentocommerce.com/resources/magento-user-guide
60 páginas sobre como organizar e criar seus próprios temas, pacotes de acordo com as melhores práticas.
Há também um novo livro especificamente para quem tem experiência com PHP e começa com Magento - Guia do desenvolvedor do Magento PHP, de Allan McGregor, e tem ótimas críticas dos desenvolvedores do Magento na Amazon e em vários blogs
Canais de vídeo: canal do Magento Commerce no YouTube
Conheça os vídeos das conferências Magento
Outros 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/
fonte
Ótimas respostas aqui até agora. A respeito de
A terminologia no Magento fica um pouco confusa. O desenvolvimento inicial da plataforma foi implacavelmente rápido e há muitas vezes em que você verá conceitos sobrepostos, desde falsos começos e mudanças de direção. Extensões / plugins / módulos / Eu sou um desenvolvedor e quero adicionar meu código ao sistema é uma dessas áreas.
Uma extensão Magento Connect é simplesmente um pacote de arquivos que podem ser instalados em um sistema Magento. É completamente dissociado de qualquer outro subsistema programático do Magento.
Mais perto do que você está acostumado, porém, estão os Módulos de Código Magento . Grosso modo, um módulo de código é uma coleção de arquivos PHP que o Magento vê como uma única unidade. Os módulos estão localizados em uma das três pastas
Quando você deseja personalizar o Magento ou adicionar novos recursos, quase sempre começa com um módulo de código. De fato, o próprio Magento é construído sobre 60 - 70 módulos de código. Por exemplo, o
Mage_Cms
módulo emcontém o código que faz com que os recursos CMS do Magento funcionem. Se você estava indo para criar um módulo que adicionou gatinhos ao Magento, você pode criar um módulo chamado
Jasondavis_Kitties
e colocá-lo emRe:
core
,community
elocal
- o primeiro é para desenvolvedores Magento, por isso não se tocam. O segundo é para extensões que devem ser distribuídas à comunidade. O último é para extensões que devem ser desenvolvidas localmente, para um sistema específico.O último pouco de confusão é sobre pacotes de design . O código que o Magento usa para renderizar e gerenciar seu HTML é um sistema completamente separado. É por isso que os
phtml
arquivos estão localizados separados dos arquivos do módulo de código . Você pode encontrar esses arquivos nopasta.
As extensões profissionais mais bem escritas são distribuídas como Extensões do Magento Connect, que instalam um ou muitos Módulos de Código Magento , e contêm vários
phtml
modelos personalizados e arquivos XML de Layout instalados nobase
pacote de design .As coisas específicas que você pode fazer com os módulos de código são inúmeras e mais do que qualquer resposta do Stack Exchange pode cobrir. Escrevi uma série de artigos que, embora um pouco datados, ainda são uma introdução sólida aos conceitos de codificação do Magento.
Finalmente, Re:
Sou um pouco tendencioso com este, mas vendo uma extensão de depuração Magento chamada Commerce Bug (clique no pequeno link de depuração). Isso coleta e exibe todas as informações que um desenvolvedor precisa saber ao trabalhar com o Magento. É uma grande ajuda quando você está aprendendo o sistema (eu o construí para me ajudar a aprender o sistema quando), e continua sendo útil quando você trabalha no dia-a-dia em um sistema Magento. Se você estiver cobrando a cada hora pelo seu trabalho, você recuperará o preço de compra no seu primeiro projeto.
fonte
Além da resposta da @ philwinkle, quero responder à sua declaração sobre a substituição de classes usando o PHP include priority path.
Considere uma solução de emergência se não houver outra maneira de realizar o que você deseja. Geralmente, você pode especificar qual classe usar por meio de uma configuração XML de configuração ou usando uma reescrita de classe (também especificada em XML de configuração).
As desvantagens do hack do caminho de inclusão são:
fonte
Antes de tudo, você não deve reescrever ou estender módulos ou classes principais. Você deve aprender a arquitetura Magento, escrever seu próprio módulo / extensão de teste com pouca funcionalidade que não limpe os conceitos Magento, EAV, hierarquia de layout, tema Magento e fluxo de design. Refiro-me a este link: Modern Magento 1.X Workflow e Ferramentas de Desenvolvimento . Boa sorte
fonte