2010-02-07 10 views
10

Magento का एक बड़ा कोड बेस (6000+ php फ़ाइलें) है, एक जटिल ऑटोलोडिंग तर्क का उपयोग करता है, और एक्सएमएल में बहुत सी कॉन्फ़िगरेशन है। मैं एक आईडीई की तलाश में हूं जो इस कोड बेस के आस-पास अपना छोटा मस्तिष्क प्राप्त कर सकता है - मुझे दिखाएं कि एक समारोह कहां घोषित किया गया है, जहां इसे कहा जाता है, आदि। क्या कोई आईडीई है जो इस जानवर को संभाल सकती है? लगता है इसी तरहक्या कोई PHP आईडीई है जो Magento के कोड बेस को संभाल सकता है?

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

एक सहायक वर्ग हो रही है:: इसके अतिरिक्त

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

, -

संपादित जोड़ना उदाहरण

यहां उत्पाद Magento तरह से लोड करने के लिए का एक उदाहरण है गुणों के गेटर्स और सेटर्स अक्सर मॉडल से ग्रहण किए जाते हैं, जिन्हें कहीं भी एक्सएमएल फ़ाइल में घोषित किया जा सकता है कोड की बजाय,।

+0

मैं यहाँ सवाल है मुख्य रूप से वस्तुओं instanciating और वर्गों की चर्चा करते हुए की Magento के असामान्य तरीके के साथ:

Git भंडार देखें। कोड बेस का आकार चिंता का कम है। – Laizer

+0

क्या आप इस तरह के एक त्वरण का उदाहरण बना सकते हैं? –

+0

यह भी याद रखें कि उत्पादों को लोड करने के लिए उपयोग किए जाने वाले हैंडल हमेशा आपके विचार के तरीके को मानचित्र नहीं बना सकते हैं। जबकि कैटलॉग/उत्पाद को Mage_Core_Catalog_Model_Product पर मैप करना चाहिए, किसी ने इसे पूरी तरह से अलग वर्ग में ओवरराइड कर दिया है और कुछ तरीकों को फिर से लिखा है। –

उत्तर

14

शायद आपके इच्छित उत्तर नहीं, लेकिन संभवतः फाइलों की संख्या यहां आपके पन्नी नहीं होगी। चूंकि Magento ऑब्जेक्ट्स को तुरंत चालू करने के लिए अजीब तरीकों का उपयोग करता है (Mage::getModel आदि), सामान्य कोड पूर्णता पूरी तरह से हानि पर होती है। इसके शीर्ष पर, Magento PHP के जादू कार्यों का भारी उपयोग करता है, जो निश्चित रूप से कोड पूर्ण होने से पूरी तरह मुक्त हैं।

मैंने Magento (Komodo, Zend Studio, ग्रहण) का उपयोग करके कुछ आईडीई के साथ काम किया है, और मैंने कभी भी बहुत अच्छा परिणाम नहीं लिया है। कोमोडो एकमात्र ऐसा था जिसने कोरोनरी अनुमान लगाने की कोशिश नहीं की थी, इसलिए मैं अब कुछ समय से इसका उपयोग कर रहा हूं।

आशा है कि मदद करता है। धन्यवाद!

जो

6

यह दो कारकों तक नीचे जा रहा है: आईडीई स्मार्टनेस (क्या यह सभी स्वत: लोड किए गए वर्गों को पहचानने जा रहा है?) और सादा प्रदर्शन (लुकअप लेक्सिकॉन बनाने के लिए फ़ाइल पेड़ से चलने में आईडीई कितनी देर लगती है ? यह कितनी बार ताज़ा करने जा रहा है?)

क्या आईडीई फाइलों की मात्रा को संभाल सकता है या नहीं, यह निर्भर करता है कि आपकी मशीन कैसे सुसज्जित है। मैं आपको सबसे लोकप्रिय PHP आईडीई के परीक्षण संस्करणों के माध्यम से जाने की सलाह देता हूं, और यह देखता हूं कि कौन सा सबसे अच्छा है। यह पता लगाना बहुत आसान होना चाहिए कि आप उनके साथ काम कर सकते हैं या नहीं।

मैं नुस्फेयर के phpEd (14-दिन परीक्षण here) के साथ एक काम के लिए। मैंने कभी भी उस परियोजना के साथ काम नहीं किया है, लेकिन बड़े लोग और मैं कोड लुकअप कार्यक्षमता से संतुष्ट हूं। शायद अधिकांश आईडीई की तरह, यह एक ऑटोलोड लोड होने पर मैन्युअल जोड़ों को शामिल करने की अनुमति देता है।

तो फिर वहाँ Zend स्टूडियो (डाउनलोड here) और ग्रहण पीडीटी (here) है, और भी बहुत कुछ शामिल this question में को देखने के लिए। उनमें से सभी PHP के लिए कोड पूर्ण नहीं करते हैं, इसलिए आपको उन लोगों को चुनना होगा जो करना है।

+1

पीडीटी के साथ ग्रहण का उपयोग कर रहा हूं और यह कुशलता से काम करता है – MANCHUCK

1

मैंने नेटबीन का उपयोग बड़े PHP परियोजनाओं पर काम करने के लिए किया है (यह बड़ी जावा और सी परियोजनाओं को भी संभालता है)। मेरी वर्तमान केकेपीएचपी परियोजनाओं में 35000 फाइलें हैं, उनमें से 4000-5000 बाहरी पुस्तकालयों सहित PHP फाइलें हैं।

आईडीई कुछ समय के लिए उत्तरदायी है, लेकिन यदि आप इसे रात भर चलते रहते हैं तो आईडीई सुस्त हो जाता है और आपको इसे पुनरारंभ करना होगा ।

7

यदि आप एक मुफ्त आईडीई के लिए जा रहे हैं, तो एक्लिप्स पीडीटी ठीक काम करेगा। यह बिना किसी समस्या के उन सभी फ़ाइलों को संभाल सकता है। यदि आप अधिक पूर्ण-विशेषीकृत आईडीई चाहते हैं, तो मैं ज़ेंड स्टूडियो का चयन करूंगा। ज़ेंड स्टूडियो अनिवार्य रूप से अतिरिक्त सुविधाओं के साथ ग्रहण पीडीटी है (जैसे एक ब्राउज़र टूलबार में बनाया गया वास्तव में अच्छा डीबगर/प्रोफाइलर, और बॉक्स से बेहतर कोड स्वरूपण)।

+3

मैं अब पीडीटी के साथ काम कर रहा हूं, और यह Magento की स्वत: लोडिंग funkiness के बारे में पूरी तरह से अनजान प्रतीत होता है। मैं इसे कैसे उजागर करूं? – Laizer

+0

परियोजना के लिए अपने पुस्तकालयों में Magento के लिए पथ जोड़ने का प्रयास करें। – mylesmg

13

नेटबीन्स प्रशंसक स्वयं। आप जो खोज रहे हैं वह क्लास टाइप संकेत है कि दोनों ज़ेंड स्टूडियो और नेबीन समर्थन करते हैं। Magento इन सेटिंग में धीमा रहा है, लेकिन कोड में इसके कुछ मौके हैं।

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

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

मैं वास्तव में इसकी सराहना करता हूं। धन्यवाद! –

+0

वर्तमान में ऊपर यह लिंक मृत है। –

2

मैं पाया है कि ग्रहण (Aptana, पीडीटी, या Zend), के किसी भी स्वाद का उपयोग करने और/* @var तरह प्रलेखन सुविधाओं का अच्छा इस्तेमाल कर रही है ... */टिप्पणी चमत्कार करता है

उदाहरण के लिए, अगर मैं निम्नलिखित संरचना के साथ Strube_MyModule नामक कस्टम मॉड्यूल पर काम कर रहा हूँ: \ 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 \ कस्टम

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

Strube .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 प्लगइन का प्रयास करें आईडीई के दशक में Magento संभाल कर सकते हैं कि वस्तुओं का stantiate (जैसे Mage :: सहायक ('सहायक'), Mage :: getModels ('मॉड्यूल/मॉडल'), आदि)।

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

10

मैं PHPStorm के लिए एक खुला स्रोत प्लगइन विकसित किया है, हो सकता है आप एक बार देख ले करना चाहते हैं: http://www.magicento.com

प्लगइन संभाल कर सकते हैं कि आप क्या कह रहे हैं और यह भी अधिक सुविधाएं हैं, जैसे एक्सएमएल फाइलों में स्वतः पूर्ण। मैं हर हफ्ते और अधिक सुविधाएं जोड़ूंगा, क्योंकि मैं अपने रोजमर्रा के काम में प्लगइन का उपयोग करता हूं। मुझे आशा है कि यह आपके लिए भी उपयोगी हो जाएगा।

1

जेटब्रेन ने अभी पीएचपीएसटॉर्म का एक संस्करण जारी किया जो Magento में फैक्ट्री विधियों को संबोधित करता है। http://blog.jetbrains.com/webide/2013/04/phpstorm-6-0-1-eap-build-129-177/ http://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Advanced+Metadata

+1

ऐसा लगता है कि http://magicento.com/ - उपरोक्त @Enrique द्वारा उल्लिखित - पहले से ही इन नई सुविधाओं को एकीकृत कर चुका है। – Laizer

2

देखो PHPSTORM IDE लिए this विस्तार। मैं इसका उपयोग करता हूं और बहुत अच्छा है।

1

@Laizer उदास का उपयोग करके, विनई ने एक शेल स्क्रिप्ट बनाई जो उस क्लास मैप को उत्पन्न करता है जो PhpStorm को पढ़ने और स्वत: पूर्ण कार्यों और कक्षाओं को जानता है। https://github.com/Vinai/phpstorm-magento-mapper

संबंधित मुद्दे

 संबंधित मुद्दे