2012-01-09 7 views
6

पर बाहरी लाइब्रेरी जोड़ें मैं एक सिम्फनी 2 प्रोजेक्ट में बाहरी लाइब्रेरी (PHP सरल डोम पार्सर, http://simplehtmldom.sourceforge.net/index.htm) जोड़ने की कोशिश कर रहा हूं। मैंने एक ट्यूटोरियल लिया जो बताता है कि तृतीय पक्ष पुस्तकालयों को सिम्फनी 2 http://www.kiwwito.com/article/add-third-party-libraries-to-symfony-2 में कैसे शामिल किया जाए।Symfony2 प्रोजेक्ट

मैं की तरह एक वर्ग फ़ाइल की स्थापना:

# vendor/phpsimpledom/lib/Phpsimpledom/simple_html_dom.php 

require_once __DIR__.'/src/simple_html_dom.php'; 

class Phpsimpledom_Phpsimpledom extends simple_html_dom_node { 
} 

और मेरे Autoloader (autoload.php) में मेरी कक्षा पंजीकृत: कॉल करने के लिए

$loader->registerNamespaces(array(
... 
'Phpsimpledom' => __DIR__.'/../vendor/phpsimpledom/lib/', 
... 
),)); 

मैं कोशिश कर रहा हूँ:

$phpsimpledom = new \Phpsimpledom(); 

लेकिन यह मुझे एक त्रुटि के माध्यम से (घातक त्रुटि: कक्षा 'simple_html_dom_node' नहीं मिला)।

हालांकि: पुस्तकालय की मुख्य फ़ाइल (simple_html_dom.php) में ऐसे कार्य होते हैं जो किसी वर्ग से संबंधित नहीं होते हैं।

जब मैं सीधे फ़ाइल का उपयोग करने की कोशिश है, यह भी काम नहीं करता:

$loader->registerNamespaces(array(
... 
'Phpsimpledom' => __DIR__.'/../vendor/phpsimpledom/lib/Phpsimpledom/src/simple_html_dom.php', 
... 
),)); 

किसी भी संकेत?

धन्यवाद!

उत्तर

8

आप एक नामस्थान पंजीकृत करने का प्रयास कर रहे हैं लेकिन आपकी कक्षा में कोई नामस्थान नहीं है। इसमें नामस्थान जोड़ने का प्रयास करें या RegisterPrefixes() का उपयोग करें।

बीटीडब्ल्यू: क्या आप जानते थे कि सिम्फनी घटकों में से एक मूल रूप से php simpledom जैसा ही काम कर रहा है? इसे डोमक्रॉलर कहा जाता है और इसका एक्सपीएथ और सीएसएस चयनकर्ता दोनों के लिए समर्थन है।

2

मैं सिम्फनी 2 के लिए नया हूं लेकिन जैसा कि मैं देख सकता हूं, आप ऑटोलोडर के लिए पीएसआर का सम्मान नहीं कर रहे हैं।

मैं सोच आपको क्या करना चाहिए मुमकिन कर रहा हूँ:

# /vendor/phpsimpledom/lib/Phpsimpledom/Phpsimpledom.php 

require_once __DIR__.'/src/simple_html_dom.php'; 

class Phpsimpledom_Phpsimpledom extends simple_html_dom_node { 

} 

ध्यान दें कि सही फ़ाइल नाम /vendor/phpsimpledom/lib/Phpsimpledom/Phpsimpledom.php होगा के रूप में कॉल नाम स्थान काम करने के लिए शामिल करना चाहिए।

आशा है कि यह अब काम करता है।