Mam aplikację symfony 2.8 iw wersji composer.json
plik Mam bibliotekę htmlpurifier, której chcę użyć:
"require": {
...
"ezyang/htmlpurifier": "^4.8"
},
Instaluje się i mogę zobaczyć bibliotekę w moim /vendor/
informator. Composer automatycznie umieszcza dla mnie mapowanie przestrzeni nazw.
return array(
...
"HTMLPurifier" => array($vendorDir . "/ezyang/htmlpurifier/library"),
...
);
i instrukcje na główna strona określ, że potrzebujesz autoloadera, a następnie użyj różnych klas.
<?php
require_once "/path/to/htmlpurifier/library/HTMLPurifier.auto.php";
$config = HTMLPurifier_Config::createDefault(); //defined in HTMLPurifierConfig.php
$purifier = new HTMLPurifier($config); //defined in HTMLPurifierHTMLPurifier.php
$clean_html = $purifier->purify($dirty_html);
?>
W porządku, teraz mam problem z używaniem biblioteki darn.
w mojej klasie miałem use HTMLPurifierHTMLPurifier.auto;
Który był błędem składniowym (nie ma żadnych okresów w a) use
komunikat).
Więc spróbowałem
use HTMLPurifierConfig;
class Test
{
public function blah()
{
$config = Config::createDefault();
}
}
ale Symfony skarżył się, że znalazł plik Config, ale nazwa klasy nie była taka sama (nazwa pliku to Config.php
a nazwa klasy to HTMLPurifier_Config
). Próbowałem zastąpić instrukcję użycia use HTMLPurifierConfig as HTMLPurifier_Config;
I dał mi ten sam błąd, twierdząc, że może znaleźć plik, ale nie klasę.
Więc jestem zdezorientowany. Jaki jest najlepszy sposób radzenia sobie z bibliotekami zainstalowanymi przez kompozytora, które mają plik autoloadera, który ładuje wszystkie klasy dla tej biblioteki? Czy muszę zmienić wszystkie klasy, aby pasowały do nazw plików lub odwrotnie, aby autoloader Symfony używał czy jest to łatwiejszy sposób, że po prostu przeoczam?
Jak zawsze, dziękuję.
Odpowiedzi:
2 dla odpowiedzi № 1Wywołałeś nieistniejącą przestrzeń nazw. Postępuj zgodnie z próbką kodu
use HTMLPurifier_Config as Config;
class Test
{
public function blah()
{
$config = Config::createDefault();
}
}
Dzięki