Hinzufügen von externen Bibliotheken, um Symfony2-Projekt
Ich versuche, fügen Sie eine externe Bibliothek (PHP Einfache DOM-Parser, http://simplehtmldom.sourceforge.net/index.htm), um ein Symfony2 Projekt. Ich fand ein tutorial, das erklärt, wie Bibliotheken von Drittanbietern zu Symfony2 http://www.kiwwito.com/article/add-third-party-libraries-to-symfony-2.
Ich eine class-Datei wie:
# vendor/phpsimpledom/lib/Phpsimpledom/simple_html_dom.php
require_once __DIR__.'/src/simple_html_dom.php';
class Phpsimpledom_Phpsimpledom extends simple_html_dom_node {
}
und eingetragene meiner Klasse in meinem Autoloader (autoload.php):
$loader->registerNamespaces(array(
...
'Phpsimpledom' => __DIR__.'/../vendor/phpsimpledom/lib/',
...
),));
Ich bin versucht zu rufen:
$phpsimpledom = new \Phpsimpledom();
aber das throughs mir eine Fehlermeldung (Fatal error: Class 'simple_html_dom_node' nicht gefunden).
Jedoch: Die main-Datei der Bibliothek (simple_html_dom.php) besteht aus Funktionen, die gehören nicht zu einer Klasse.
Wenn ich versuche, die Datei direkt, wird es auch nicht funktioniert:
$loader->registerNamespaces(array(
...
'Phpsimpledom' => __DIR__.'/../vendor/phpsimpledom/lib/Phpsimpledom/src/simple_html_dom.php',
...
),));
Irgendwelche Tipps?
DANK!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du versuchst, registrieren Sie einen namespace, aber Ihre Klasse hat keinen namespace. Versuchen Sie, ein namespace oder verwenden RegisterPrefixes().
BTW: wussten Sie, dass man die Symfony-Komponenten ist im Grunde das gleiche zu tun, als php-simpledom? Es heißt DomCrawler und es hat eine Unterstützung für xpath und CSS-Selektoren.
Ich bin neu auf Symfony2, aber wie kann ich sehen, Sie sind nicht die Achtung der PSR für autoloader.
Bin ich vermutlich denken, Sie tun sollten:
Beachten Sie, dass der richtige Dateiname wäre
/vendor/phpsimpledom/lib/Phpsimpledom/Phpsimpledom.php
als der Anruf muss den namespace zu arbeiten.Hoffe, es funktioniert jetzt.