/ / Korzystanie z pakietu zainstalowanego przez kompozytora bezpośrednio w Symfony - symfony, composer-php

Używanie pakietu instalacyjnego bezpośrednio w Symfony - symfony, composer-php

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 № 1

Wywoł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