Magento 플러그인 개발 학습


30

저는 13 년 이상 PHP 개발자로 일해 왔으며 WordPress와 같은 다른 인기있는 프로젝트가있는 한 PHP 자체에 대한 광범위한 지식을 보유하고 있습니다. 마 젠토에 대한 경험이 없습니다.

이제 Magento를 사용하는 회사에서 정규직으로 일하고 있습니다. 모든 개발 작업은 Magento에서 진행될 것입니다.

마 젠토를 처음으로 본 후의 나의 초기 생각은 무엇입니까? 그러나 저의 숙련 된 개발자가 나와서 기억합니다. PHP 일뿐입니다.

그래서 나는 좀 더 숙련 된 Magento Developers에 대한 답변을 얻을 수있는 기본적인 Magento 질문이 있습니다 ...

  1. 이 사이트 옆에서 마 젠토 개발에 관해 배울 수있는 가장 유용한 곳은 무엇입니까?
  2. 확장 / 플러그인은 지금까지 매우 혼란 스럽습니다. WordPress와 같은 다른 플랫폼을 사용하면 플러그인을 자체 폴더에 배치 할 수 있으며 모든 파일은 해당 폴더에 있습니다. 지금까지 내가 본 것에서 플러그인이 Magento의 여러 폴더에 흩어져있을 수 있습니다. 맞습니까?
  3. 핵심 기능을 재정의하는 방법에 대해 배웠습니다. 따라서 코어의 파일이 여기 /app/code/core/Mage/SitemapModel/Resource/Catalog에 있으면이 위치에 파일을 만들어서 재정의 할 수 /app/code/local/Mage/SitemapModel/Resource/Catalog있으므로 확장 프로그램 / 플러그인에서 어떻게 작동합니까? 핵심 기능을 재정의해야하는 플러그인을 만드는 경우 해당 확장 기능이 작동하려면 파일이 모든 곳에 있어야합니까?
  4. magento로 시작하기를 원했던 다른 정보가 있습니까?

통찰력에 감사드립니다. 이것은 여러 부분으로 된 질문이라는 것을 알고 있지만 대답은 나 자신과 다른 시작에 도움이 될 것이라고 생각합니다. 필요한 경우이 공개 위키를 만들 것입니다.


1
stackexchange에 끈적 거리는 것과 같은 것이 있다면이 Q & A가 될 것입니다! 이것이 어떤 자원으로 바뀌
었는가

@McNab Sticky 기능은 없지만 가장 많이 투표 한 질문은 일반적으로 더 높은 순위에 올라 더 자주 나타납니다. 또한이 페이지 magento.stackexchange.com/?tab=month 이 질문을 지금 2 번으로 표시하여 일종의 끈적 끈적한이지만 "달"이라고 표시되어 끈적 거림을 얼마나 오래 유지할지 잘 모르겠습니다. 나는 그것이 훌륭한 자원으로 바뀌었고 앞으로 쉽게 접근 할 수 있도록 호의를 베풀었다. BTW이 커뮤니티를 친구들과 공유하여 영구적 인 집이되고 베타 기간 이후에도 죽지 않도록하십시오
JasonDavis

답변:


24

질문의 첫 부분 인 " 어떻게 배우고 / 어디서 시작합니까? " 에 중점을 둘 것입니다.

전 Zend Framework 개발자 인 Magento를 개발하는 데 도움을 준 가장 큰 도움은 지난 2 년 동안 Magento U가 가져온 온라인 학습의 폭발이었습니다. 이외에도 공식 교육에서 - 나는에 의해 주로 학습 하고 , 그리고 지금은 5 년 이상 젠토 "를하고"있다.

구체적인 학습 자료 :

학습 도구 외에도 가장 큰 학습 도구는 타사 Magento 모듈을 검사하는 것입니다. 코드를 완전히 읽고 배웁니다. 핵심 모듈에서 학습하여 동일한 작업을 수행 할 수 있습니다.

학습 여정에 도움이되는 일부 사이트 :

http://magento-quickies.tumblr.com/

http://alanstorm.com/

http://colin.mollenhour.com/

http://magentotherightway.com/

일부 서사시 개발자는 다음을 수행합니다.

Alistair Stead : https://github.com/alistairstead

파브리 치오 브랑 카 : https://github.com/fbrnc/

Vinai Kopp : https://github.com/Vinai

소셜 참여 - '락스타'개발자를 만나 트위터에서 팔로우하세요. 도움이 필요할 때 특정 사람들에게 연락하십시오. 이 공동체는 놀랍게도 접근 할 수 있습니다. 커뮤니티를 활용하십시오.

일부 트위터 목록 :

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에 만들고 육체를 누르십시오. 우리를 추적하고 질문을 해주세요. 지역 모임에 나가십시오. 해당 지역에 밋업이 없으면 시작 하십시오 . 끈기있게 행동하십시오. 지식이 부족하여 네트워킹하고 사람들을 만나지 못하게하십시오. 지역 사회에서의 관계는 배당금으로 지불됩니다.


14

내 2 센트 @ philwinkle의 답변을 훌륭하게합니다.

공식 PDF 두 개가 있습니다

1) Magento Extension 개발자 안내서

처음부터 단계별로 사용자 지정 확장 프로그램을 만드는 방법에 대한 80 페이지. 모듈 "뉴스"는 처음부터 개발되었습니다. 모듈의 파일 및 폴더 구조, 구성 파일, 컨트롤러, 모델, 블록을 보여줍니다.

2) Magento의 디자이너 안내서는 http://www.magentocommerce.com/resources/magento-user-guide 에서 찾을 수 있습니다 .

모범 사례에 따라 자신 만의 테마를 구성하고 만드는 방법에 대한 60 페이지.

Allan McGregor의 Magento- Magento PHP 개발자 가이드 -PHP 배경 지식을 가진 사람들을 위해 특별히 새로운 책 이 있으며 아마존과 다양한 블로그에서 Magento 개발자의 아주 좋은 리뷰를 가지고 있습니다

비디오 채널 : Magento Commerce YouTube 채널

마 젠토 컨퍼런스 비디오를 만나보세요

다른 좋은 블로그 :

http://magebase.com/
http://inchoo.net/blog/
http://www.kingletas.com/
http://blog.belvg.com/category/magento-news/developer-certification http : / /fbrnc.net/tag : 마 젠토
http://www.demacmedia.com/category/magento-commerce/


1
이것은 대단합니다-멋진 자료!
philwinkle

8

여기까지 큰 대답이 있습니다. 에 관해서

확장 / 플러그인은 지금까지 매우 혼란 스럽습니다. WordPress와 같은 다른 플랫폼을 사용하면 플러그인을 자체 폴더에 배치 할 수 있으며 모든 파일은 해당 폴더에 있습니다. 지금까지 내가 본 것에서 플러그인이 Magento의 여러 폴더에 흩어져있을 수 있습니다. 맞습니까?

마젠 토의 용어는 약간 혼란스러워집니다. 플랫폼의 초기 개발은 무자비하게 빠르며 잘못된 시작과 방향 변경으로 인해 중복되는 개념이 나타나는 경우가 많습니다. 확장 프로그램 / 플러그인 / 모듈 / 개발자 및 추가 및 내 코드를 시스템에 추가하는 것이 이러한 영역 중 하나입니다.

젠토 연결 확장은 단순히 젠토 시스템에 설치 될 수있는 파일의 패키지입니다. Magento의 다른 프로그래밍 하위 시스템과 완전히 분리되어 있습니다.

당신이 익숙한 것에 더 가깝다면 Magento Code Modules 입니다. 대략적으로 말하면, 코드 모듈은 Magento가 단일 단위로 보는 PHP 파일의 모음입니다. 모듈은 세 개의 폴더 중 하나에 있습니다

app/code/core
app/code/community
app/code/local

Magento를 사용자 정의하거나 새로운 기능을 추가하려면 거의 항상 코드 모듈로 시작해야합니다. 실제로 Magento 자체는 약 60-70 개의 코드 모듈 위에 구축됩니다. 예를 들어, Mage_Cms모듈

app/code/core/Mage/Cms

Magento의 CMS 기능을 작동시키는 코드가 들어 있습니다. 당신은 마 젠토에 키티 고양이를 추가하는 모듈을 만들려고했다면 당신은라는 이름의 모듈을 만들 수 있습니다 Jasondavis_Kitties과에 배치

app/code/community/Jasondavis/Kitties

Re : core, communitylocal— 첫 번째는 Magento 개발자를위한 것이므로 만지지 마십시오. 두 번째는 커뮤니티에 배포하려는 확장을위한 것입니다. 마지막은 특정 시스템을 위해 로컬로 개발하려는 확장을위한 것입니다.

마지막 혼란은 디자인 패키지와 관련이 있습니다. Magento가 HTML을 렌더링하고 관리하는 데 사용하는 코드는 완전히 별개의 시스템입니다. 이것이 phtml파일이 코드 모듈 파일 과 분리되어있는 이유 입니다. 이 파일들은

app/design

폴더.

가장 잘 작성된 전문적인 확장은 하나 또는 여러 개의 Magento 코드 모듈 을 설치하는 Magento Connect 확장으로 배포되며 디자인 패키지에 설치된 많은 사용자 지정 템플릿 및 레이아웃 XML 파일이 포함되어 있습니다.phtmlbase

코드 모듈로 할 수있는 구체적인 작업은 무수히 많으며 하나 이상의 Stack Exchange 답변이 다룰 수 있습니다. 나는 약간 날짜가 있지만 마젠 토의 코딩 개념에 대한 탄탄한 기초가 되는 일련의 기사 를 썼다 .

마지막으로 Re :

magento로 시작하기를 원했던 다른 정보가 있습니까?

나는 이것에 약간 편견이 있지만 Commerce Bug 라는 작은 Magento 디버깅 확장 프로그램을 판매합니다 (작은 디버그 링크 클릭). Magento로 작업 할 때 개발자가 알아야하는 모든 정보를 수집하고 표시합니다. 그것은 당신이 시스템을 배우고있을 때 큰 도움이됩니다. (시스템을 다시 배우는 데 도움이되도록 만들었습니다.) Magento 시스템에서 매일 일할 때 도움이됩니다. 작업에 대해 시간당 요금을 청구하는 경우 첫 번째 프로젝트에서 구매 가격을 환불합니다.


7

@philwinkle의 답변 외에도 PHP include path 우선 순위를 사용하여 클래스를 재정의하는 것에 대한 진술에 회신하고 싶습니다.

원하는 것을 달성 할 수있는 다른 방법이 없다면 비상 해결책을 고려하십시오. 구성 XML 설정을 통해 또는 클래스 다시 쓰기 (구성 XML에도 지정)를 사용하여 사용할 클래스를 지정할 수있는 경우가 종종 있습니다. 포함 경로 해킹
의 단점은 다음 과 같습니다 .

  • 컨트롤러에서 작동하지 않습니다
  • PHP 클래스 외에는 작동하지 않습니다 (예 : config.xml 파일)
  • Magento를 업그레이드 할 때 변경 사항을 로컬 복사본에 병합해야합니다
  • 대부분의 Magento 개발자는 단순히 Mage 네임 스페이스의 모듈을 코어 코드 풀에 있다고 가정하기 때문에 디버깅이 혼란 스럽습니다.

1
절대적으로 맞습니다. 별도의 답변 없이이 작업을 수행하는 방법을 정말로 확신하지 못했습니다.
philwinkle

나는 그것을 별도로 유지하는 것이 좋은 생각이라고 생각합니다.
Vinai 2016 년

좋은 내가이 "오른쪽"보지 않았다 알았지 만 다른 방법이 있다면 난 여전히 감사를 배울 많이 가지고, 그래서 나는 확실하지 않았다, 알고
JasonDavis

4

우선 핵심 모듈이나 클래스를 다시 작성하거나 확장하는 것에 대해 생각해서는 안됩니다. Magento 아키텍처를 배우고 Magento, EAV 개념, 레이아웃 계층 구조, Magento 테마 및 디자인 흐름을 정리하지 않은 기능이 거의없는 자체 테스트 모듈 / 확장을 작성해야합니다. 이 링크를 참조하십시오 : Modern Magento 1.X Workflow and Development Tools . 행운을 빕니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.