2015-03-15 10 views

Odpowiedz

6

Wygląda na to trzeba będzie tworzyć własne komendy:

<?php 

namespace Your\Namespace\Command; 

use Symfony\Bundle\AsseticBundle\Command\AbstractCommand; 

class DumpSingleAsset extends AbstractCommand 
{ 
    protected function configure() 
    { 
     $this 
      ->setName('assetic:dump_single_asset') 
      ->setDescription('Dumps a single asset') 
      ->addArgument('name', InputArgument::REQUIRED, 'The name of the asset') 
     ; 
    } 


    protected function execute(InputInterface $input, OutputInterface $output) 
    { 
     $name = $input->getArgument('name'); 
     $this->dumpAsset($name, $output); // Inherited from AbstractCommand 
    } 
} 

Assetic docs pokazuje sposób bardziej prosty sposób zrzucić aktywa, ale nie mogłem znaleźć żadnej dokumentacji z wewnętrznymi AsseticBundle, ja po prostu czytać the code of the Command.

0

Mam własny dysk skomplikowane rozwiązania podobnego problemu przyczyna muszę zrzucić aktywa nie są obecne na szablonach gałązka pochodzących z pliku bazy danych lub JSON.

Tylko nazwa zasobu, nie rozumiem, jak można to zrobić bez dodatkowych wyjaśnień. Jeśli wydrukujesz wartość $ name podczas uruchamiania składnicy aktywów, otrzymujesz coś takiego jak "afd49f7". Symfony2 czyta wszystkie javascripts i bloki stylów bloków na szablonach gałązek i automatycznie przypisuje tę nazwę klucza.

Jeśli spróbujesz zminimalizować jeden plik ręcznie, lepiej użyj bezpośrednio kompresora yui lub podobnego, inaczej, jeśli naprawdę potrzebujesz zrzutu, zbiór zasobów do jednego pliku (kolekcja może zawierać tylko jeden plik) lub pojedynczy plik, ale używając symfony2 musisz użyć "nazwanych zasobów" i czegoś podobnego do polecenia sugerowanego przez parla. Zobacz odpowiednią sekcję na stronie How to Use Assetic for Asset Management, a także sprawdź numer AsseticBundle Configuration.

W każdym razie powyższe polecenie nie działa w Symfony2 v2.3 (LTS), ponieważ metoda dumpAsset jest deklarowana jako prywatna w DumpCommand, a AbstractCommand nie istnieje.

Jeśli używasz Symfony2 v2.3, musisz przepisać całe polecenie dodając opcję --name i zmienić ->setName('assetic:dump') na coś innego.

Powiązane problemy