Я являюсь разработчиком PHP более 13 лет, обладаю обширными знаниями самого PHP, как и некоторые другие популярные проекты, такие как WordPress. У меня нет опыта работы с Magento.
Теперь у меня есть работа на полную ставку в компании, которая использует Magento, все мои работы по разработке будут в основном на Magento.
Мои первоначальные мысли после того, как я впервые посмотрел на Magento: вау, во что я ввязался? Но потом выходит опытный разработчик и вспоминает, что это просто PHP.
Итак, у меня есть несколько основных вопросов по Magento, на которые я бы очень хотел получить ответы от более опытных разработчиков Magento ...
- Как лучше всего узнать о разработке magento рядом с этим сайтом?
- Расширения / плагины очень сбивают меня с толку. Другие платформы, такие как WordPress, позволяют размещать плагин в его собственной папке, и все его файлы будут жить в этой папке. Из того, что я видел до сих пор, плагин может быть разбросан по нескольким папкам в Magento, это правильно?
- Я узнал о том, как превзойти функциональность Core. Так что, если файл в ядре находится здесь,
/app/code/core/Mage/SitemapModel/Resource/Catalog
я могу переопределить его, создав файл в этом месте,/app/code/local/Mage/SitemapModel/Resource/Catalog
так как это работает с расширением / плагином? Если я создаю плагин, который должен перекрывать основные функции, то мне нужно, чтобы мои файлы были повсюду, чтобы это расширение работало? - Любая другая информация, которую вы хотели бы знать, начиная с magento?
Спасибо за любое понимание, я знаю, что это многокомпонентный вопрос, но я чувствую, что любой из ответов будет полезен для меня и для других, я сделаю эту публичную вики, если я должен, также.
источник
Ответы:
Я собираюсь сосредоточиться на первой части вашего вопроса - « как мне узнать / с чего мне начать? »
Как бывший разработчик Zend Framework, самой большой помощью для меня в разработке Magento был взрыв в онлайн-обучении, который Magento U принес за последние 2 года. Помимо формального обучения - я учусь в основном на практике , и я «делаю» Magento уже более 5 лет.
Некоторые конкретные учебные ресурсы:
Помимо средств обучения, для меня самым большим инструментом обучения было изучение модулей Magento сторонних производителей. Я прочитал код полностью и учиться на нем. Вы можете сделать то же самое, изучив основные модули.
Некоторые сайты, которые будут вам полезны в процессе обучения:
http://magento-quickies.tumblr.com/
http://alanstorm.com/
http://colin.mollenhour.com/
http://magentotherightway.com/
Некоторые эпические разработчики, чтобы следовать:
Алистер Стед: https://github.com/alistairstead
Фабрицио Бранка: https://github.com/fbrnc/
Винай Копп: https://github.com/Vinai
Вступите в социальную жизнь - познакомьтесь с разработчиками «рок-звезды» и начните следить за ними в Twitter. Обращайтесь к конкретным людям, когда вам нужна помощь; это сообщество удивительно доступно. Используйте сообщество в ваших интересах.
Некоторые списки Twitter:
https://twitter.com/inchoo/magento
https://twitter.com/kkoepke/magento
https://twitter.com/eHubSystem/magento-imagine-2013
https://twitter.com/GingerWarriorX/magento-peeps
Наконец - сделайте поход в следующем году в Magento Imagine в следующем году и нажмите плоть. Отследите нас, задайте нам вопросы. Выйти на местные встречи. Если встреча не существует в вашем районе - начните . Будьте настойчивы. Не позволяйте отсутствию знаний удерживать вас от общения и общения с людьми. Ваши отношения в обществе окупятся в виде дивидендов.
источник
Мои 2 цента на блестящий ответ @ philwinkle.
Есть два официальных PDF
1) Руководство разработчика расширений Magento
80 страниц о том, как создать собственное расширение с нуля, шаг за шагом. Модуль «Новости» разработан с нуля - он покажет вам структуру файлов и папок модуля, конфигурационные файлы, контроллеры, модели, блоки.
2) Руководство дизайнера по Magento можно найти здесь http://www.magentocommerce.com/resources/magento-user-guide.
60 страниц о том, как организовать и создать свои собственные темы, пакеты в соответствии с лучшими практиками.
Также есть новая книга, специально предназначенная для тех, кто имеет опыт работы с PHP и начинает с Magento - Руководство разработчика PHP-приложений для Magento от Аллана МакГрегора, и в ней есть очень хорошие отзывы от разработчиков Magento на Amazon и различных блогов.
Видеоканалы: канал Magento Commerce на YouTube
Познакомьтесь с видео конференций Magento
Другие хорошие блоги:
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/
источник
Отличные ответы здесь пока что везде. относительно
Терминология в Magento становится немного запутанной. Раннее развитие платформы было безжалостно быстрым, и во многих случаях вы будете видеть пересекающиеся концепции с фальстарта и изменений в направлении. Расширения / плагины / модули / я-разработчик-и-хочу-добавить-мой-код-в-систему - одна из этих областей.
Расширение Magento Connect - это просто пакет файлов, которые могут быть установлены в систему Magento. Он полностью отделен от любой другой программной подсистемы Magento.
Ближе к тому, что вы привыкли, являются модули кода Magento . Грубо говоря, модуль кода представляет собой набор файлов PHP, которые Magento видит как единое целое. Модули расположены в одной из трех папок
Если вы хотите настроить Magento или добавить новые функции, вы почти всегда начинаете с модуля кода. Фактически, сам Magento построен на основе около 60 - 70 модулей кода. Например,
Mage_Cms
модуль всодержит код, который заставляет работать функции CMS Magento. Если вы собираетесь создать модуль, который добавляет кошек котенка в Magento, вы можете создать модуль с именем
Jasondavis_Kitties
и поместить его вRe:
core
,community
иlocal
- первый для разработчиков Magento, поэтому не трогают. Второй - для расширений, которые предназначены для распространения среди сообщества. Последний предназначен для расширений, которые предназначены для локальной разработки, для конкретной системы.Последнее недоразумение связано с дизайном пакетов . Код, который Magento использует для визуализации и управления своим HTML, представляет собой совершенно отдельную систему. Вот почему
phtml
файлы расположены отдельно от файлов модуля кода . Вы можете найти эти файлы впапки.
Наиболее хорошо написанные профессиональные расширения распространяются в виде расширений Magento Connect, которые устанавливают один или несколько модулей кода Magento , и содержат ряд пользовательских
phtml
шаблонов и XML-файлов макета, установленных вbase
пакете разработки .Конкретные вещи, которые вы можете сделать с модулями кода, бесчисленны и могут охватить более чем любой ответ Stack Exchange. Я написал серию статей, которые, хотя и немного устарели, но все же являются хорошим основанием для введения в концепции кодирования Magento.
Наконец, Re:
Я немного предвзят, но я продаю расширение для отладки Magento под названием Commerce Bug (нажмите на небольшую ссылку отладки). Это собирает и отображает всю информацию, которую разработчик должен знать при работе с Magento. Это огромная помощь, когда вы изучаете систему (я построил ее, чтобы помочь мне изучить систему, когда), и остается полезной, когда вы работаете изо дня в день в системе Magento. Если вы платите почасово за свою работу, вы вернете цену покупки для вашего первого проекта.
источник
В дополнение к ответу @ philwinkle, я хочу ответить на ваше утверждение относительно переопределения классов с использованием приоритета пути PHP.
Считайте, что это экстренное решение, если нет другого способа выполнить то, что вы хотите. Часто вы можете указать, какой класс использовать, с помощью параметра конфигурации XML или с помощью переписывания класса (также указанного в config XML).
Недостатки хак-пути include :
источник
Прежде всего, вы не должны думать о переписывании или расширении основных модулей или классов. Вы должны изучить архитектуру Magento, написать собственный тестовый модуль / расширение с небольшими функциональными возможностями, которые не имеют чистоты Magento, концепции EAV, иерархии макетов, темы Magento и потока разработки. Я ссылаюсь на эту ссылку: Modern Magento 1.X Workflow и инструменты разработки . Удачи
источник