2010-02-07 6 views
10

Magento는 대규모 코드 기반 (6000 개 이상의 PHP 파일)을 가지고 있으며 복잡한 자동 로딩 로직을 사용하며 XML로 많은 구성을 가지고 있습니다. 이 코드베이스 주위에 작은 두뇌를 얻을 수있는 IDE를 찾고 있어요 - 함수가 선언 된 곳, 호출 된 곳 등을 보여주세요.이 짐승을 처리 할 수있는 IDE가 있습니까? 유사한Magento의 코드 기반을 처리 할 수있는 PHP IDE가 있습니까?

$product = Mage::getModel('catalog/product')->load($productID) 

헬퍼 클래스를 얻기 같습니다 : -

편집 추가 예

다음은 마 젠토 방식을 제품로드하는 방법의 예

$helper = Mage::getHelper('catalog/product') 

또한, 애트리뷰트의 getter와 setter는 종종 XML 파일에서 어딘가에 선언 될 수있는 모델로부터 가정된다 코드보다는.

+0

:

는 자식 저장소를 참조하십시오. 코드 기반의 크기는 걱정거리가 적습니다. – Laizer

+0

그러한 인스턴스 생성의 예를 만들 수 있습니까? –

+0

제품을로드하는 데 사용되는 핸들이 항상 생각대로 매핑되지 않을 수도 있습니다. 카탈로그/제품이 Mage_Core_Catalog_Model_Product에 매핑되어야하지만 누군가 다른 메소드를 완전히 다른 클래스로 재정의하고 메소드 중 일부를 다시 작성할 수도 있습니다. –

답변

14

아마 당신이 원하는 대답은 아니지만, 파일 수는 아마도 여기에있는 호일이 아닙니다. Magento는 객체를 인스턴스화하는 이상한 방법을 사용하기 때문에 (Mage::getModel 등) 정상적인 코드 완성은 완전히 손실됩니다. 게다가 Magento는 PHP의 마술 기능을 많이 사용합니다. 물론 코드 완성은 완전히 면제됩니다.

Magento (Komodo, Zend Studio, Eclipse)를 사용하여 몇 가지 IDE로 작업 해본 결과 절대로 좋은 결과를 얻지 못했습니다. 관상 동맥이없는 유일한 사람은 코모도 (Komodo) 였으므로 지금 당분간은 사용하고 있습니다.

희망이 있습니다. 감사!

6

이것은 IDE 영리성 (모든 자동로드 된 클래스를 인식 할 예정입니까?)과 일반 성능 (IDE이 파일 사전을 검색하여 파일을 탐색하여 조회 사전을 작성하는 데 얼마나 걸리는지에 달려 있습니다. ? 얼마나 자주 새로 고침됩니까?)

IDE에서 이러한 파일 양을 처리 할 수 ​​있는지 여부는 컴퓨터의 설치 방법에 따라 크게 달라집니다. 가장 인기있는 PHP IDE의 시험 버전을 살펴보고 어느 것이 가장 적합한 지 확인하십시오. 당신이 그들과 함께 일할 수 있는지 없는지를 알아내는 것은 아주 쉽습니다.

Nusphere 's phpEd (14 일 시험판 here)와 한 번 작업 할 때 사용합니다. 나는 그 큰 프로젝트로 일한 적이 없지만 큰 프로젝트와 나는 코드 조회 기능에 만족한다. 아마 대부분의 IDE와 마찬가지로 자동로드가 누락 된 경우를 대비하여 include를 수동으로 추가 할 수 있습니다.

젠드 스튜디오 (here 다운로드)와 이클립스 PDT()가 있으며, this question에서 살펴볼 내용이 더 있습니다. 모든 사람들이 PHP 용 코드 완성을하는 것은 아니므로 PHP 코드 완성을 선택해야합니다.

+1

메신저 PDT와 이클립스를 사용하여 다소 효율적으로 작동 – MANCHUCK

1

Netbeans를 사용하여 대규모 PHP 프로젝트에서 작업했습니다. 또한 대형 Java 및 C 프로젝트를 처리합니다. 현재 CakePHP 프로젝트는 35000 개의 파일을 가지고 있으며 4000-5000 개는 외부 라이브러리 등 PHP 파일입니다.

IDE는 일정 시간 동안 응답하지만 하룻밤 동안 계속 실행하면 IDE가 느려지고 다시 시작해야합니다 .

7

무료 IDE를 사용하려는 경우 Eclipse PDT가 정상적으로 작동합니다. 문제없이 모든 파일을 처리 할 수 ​​있습니다. 더 많은 기능을 갖춘 IDE를 원한다면 Zend Studio를 선택하십시오. Zend Studio는 본질적으로 추가 기능 (예 : 브라우저 툴바에 내장 된 정말 멋진 디버거/프로파일 러, 그리고 더 나은 코드 포맷팅)을 갖춘 Eclipse PDT입니다.

+3

나는 지금 PDT와 함께 일하고있어, Magento의 자동 로딩 펑키에 대해 완전히 우둔한 것처럼 보입니다. 나는 그것을 어떻게 계몽 할 것인가? – Laizer

+0

프로젝트의 라이브러리에서 Magento에 대한 경로를 추가하십시오. – mylesmg

13

직접 Netbeans 팬. 찾고있는 것은 입니다. Zend Studio와 Nebeans가 모두 지원하는 클래스 유형 힌트입니다. Magento는 이러한 설정을 느리게 수행했지만 코드에 일부 경우가 있습니다.

http://files.zend.com/help/Zend-Studio-7/code_assist_concept.htm

 
/* @var $myVar TestClass */ 
$myVar = new getClass(); 
+0

정말 고맙습니다. 감사! –

+0

현재 위의 링크가 작동하지 않습니다. –

2

내가 찾은 그 이클립스 (Aptana를, PDT, 또는 젠드)의 맛을 사용하고/* @var 같은 문서 기능을 잘 활용 ... */코멘트 경이를한다. 예를 들어

, 나는 다음과 같은 구조로 Strube_MyModule라는 사용자 지정 모듈 일하고 경우 :

 
    Strube\ 
     MyModule\ 
      Block\ 
       Custom.php 
      template\ 
       mymodule\ 
        custom.phtml 

스트 루베 \ 인 MyModule 블록 \ \ Custom.php

<?php 
    class Strube_MyModule_Block_Custom extend Mage_Core_Block_Template { 
    public function _construct() { 
     $this->setTemplate('../../../../path/to/template/mymodule/custom.phtml'); 
    } 

    /** 
    * Eclipse is smart enough to follow PHP-Docs 
    * 
    * @return Mage_Customer_Model_Customer 
    */ 
    public function getCustomer() { 
     return Mage::getSingleton('customer/session')->getCustomer(); 
    } 
    } 

템플릿 \의 인 MyModule의 \ 사용자 지정 .phtml

<?php 
    /** 
    * PHP DOC! 
    */ 
    /* @var $this Strube_MyModule_Block_Custom */ 
    // Now you can auto-complete $this->... 
    // You can also <ctrl> + click on functions that descent from $this 
    echo $this->getChildHtml(); 

    // It will also autocomplete based on PHP-doc @return tags 
    echo $this->getCustomer()->getName(); 
3

Magento를 처리 할 수있는 Eclipse 기반 IDE 용 Magento 플러그인을 사용해보십시오. Mage :: helper ('helper'), Mage :: getModels ('module/model') 등과 같은 객체의 모습을 보여줍니다. http://www.magicento.com

플러그인은 당신이 요구하는 것을 처리 할 수 ​​있으며, 같은 더 많은 기능을 가지고 :

http://code.google.com/p/magento-plugin

10

나는 어쩌면 당신이보고 싶을, PHPStorm위한 오픈 소스 플러그인을 개발했습니다 XML 파일에서 자동 완성. 필자는 일상 작업에서 플러그인을 사용하기 때문에 매주 더 많은 기능을 추가 할 것입니다. 나는 그것이 당신을 위해 또한 유용하게되기를 바랍니다.

1

@Laizer sad를 사용하여 Vinai는 PhpStorm이 함수와 클래스를 읽고 자동 완성하는 클래스 맵을 생성하는 쉘 스크립트를 생성했습니다. 내가 주로 객체를 instanciating와 클래스를 참조의 젠토의 특별한 방법을 여기 걱정 https://github.com/Vinai/phpstorm-magento-mapper

관련 문제