2010-04-25 7 views
6

क्या कोई उपकरण है जो PHP फ़ाइल द्वारा उपयोग की जाने वाली कक्षाओं के नामों को सूचीबद्ध कर सकता है?PHP निर्भरता ढूँढना

उदाहरण के लिए, अगर मैं इस फाइल पर यह भाग गया:

<? 
class Test { 
    public function __construct(Obj1 $x) { 
    $y = new Obj2(); 
    $str = "Obj3"; 
    $z = new $str(); 
    } 
} 
?> 

यह रिपोर्ट करेंगे "obj1" और "obj2"। अगर यह वास्तव में स्मार्ट था तो यह "Obj3" की रिपोर्ट भी कर सकता है, लेकिन यह आवश्यक नहीं है।

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

कुछ ऐसा है जिसे PHP_Depend कहा जाता है, जो निर्भरताओं की संख्या को ग्राफ कर सकता है, लेकिन वे रिपोर्ट नहीं कर सकते हैं कि वे क्या हैं।

अद्यतन: मुझे असली समाधान नहीं मिला, लेकिन मैंने अपने उद्देश्यों के लिए कुछ करीब पाया। आप एक फ़ाइल को टोकननाइज़ कर सकते हैं, और सभी T_STRING टोकन खोज सकते हैं। यह आपको फ़ाइल में उल्लिखित सभी वर्ग नाम देगा। यह आपको अन्य चीजें भी देगा, जैसे फ़ंक्शन नाम और स्थिरांक। लेकिन अगर आपके वर्ग के नामों को अलग करना आसान है (उदा। उनके पास प्रारंभिक कैप्स हैं), तो यह कोई समस्या नहीं होनी चाहिए।

$contents = file_get_contents($path); 
$tokens = token_get_all($contents); 
foreach ($tokens as $token) { 
    if (is_array($token) && $token[0] === T_STRING) { 
    echo $token[1]."\n"; 
    } 
} 
+0

हम्म, * कक्षाओं * के नाम फ़ाइल निर्भरताओं को खोजने के लिए वास्तव में प्रासंगिक नहीं हैं, है ना? क्योंकि फ़ाइल निर्भरताओं को खोजने के बारे में SO के कई प्रश्न हैं। –

+1

मुझे नहीं लगता कि आप वास्तव में कोड चलाने के बिना फ़ाइल निर्भरताओं को पा सकेंगे। लेकिन मुझे लगता है कि एक पार्सर कम से कम कक्षा के नाम निकाल सकता है, जो मेरे उद्देश्यों के लिए पर्याप्त होना चाहिए। –

+0

सम्मान के साथ यह एक पुराना सवाल है, क्या आपने कभी टोकननाइज़र से बेहतर कुछ भी पाया है? मैं जो कुछ वर्णन करता हूं उसे ठीक करने के लिए कुछ ढूंढ रहा हूं। –

उत्तर

1

वहाँ PHPXref है, जो एक पीएचपी पार संदर्भित दस्तावेज़ जनरेटर है।

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