2014-06-17 5 views
8

Gaufrette Stream 래퍼를 사용하여 AsseticBundle에게 프로젝트 자산을 어디에 덤프할지 알려주고 있지만이를 인식 할 수는 없습니다.AsseticBundle에서 Gaufrette Stream 래퍼 사용하기

이처럼 내 config_dev.yml의 knp_gaufrette 섹션 모습입니다 : 내가 제대로 등록되어 있는지 확인하는 간단한 작업을 사용 래퍼를 테스트

knp_gaufrette: 
    adapters: 
     dev_adapter: 
      local: 
       directory: /vagrant/test 
       create: true 

    filesystems: 
     dev_adapter: 
      adapter: dev_adapter 

    stream_wrapper: ~ 

, 그리고 그것을 잘 작동합니다 :

public function thanksAction() 
{ 
    file_put_contents('gaufrette://dev_adapter/test.txt', "ABC\n", FILE_APPEND); 

    return new Response(file_get_contents('gaufrette://dev_adapter/test.txt')); 
} 

그럼 내가 (너무 config_dev.yml에서)이 같은 assetic 번들 구성을 설정 :

assetic: 
    read_from: gaufrette://dev_adapter 
    write_to: gaufrette://dev_adapter 

Dumping all dev assets. 
Debug mode is on. 

10:53:28 [dir+] gaufrette://dev_adapter/css 



    [RuntimeException]          
    Unable to create directory gaufrette://dev_adapter/css 



assetic:dump [--watch] [--force] [--period="..."] [write_to] 

추가 정보 :

심포니/심포니 : 2.5.0
심포니/assetic-번들 : 2.3.0 내가 console assetic:dump --env=dev를 사용하여 자산을 덤프 할 때

는 그러나, 나는이 오류
knplabs/knp-gaufrette-bundle : 0.1.7

+0

이 문제를 해결 했습니까? –

+0

아니, 여전히 아닙니다. –

+0

내 경우에는 assetic : dump 명령으로 PHP에서 mkdir() 디렉토리를 생성 할 수 없기 때문에 팝업됩니다. 래퍼를 사용하여 디렉토리를 지원하지 않는 객체 저장소 (OpenStack swift)에 파일을 업로드하고 있습니다. 이 문제를 지금 당장 해결할 방법을 모르십시오. ( –

답변

0

Amazon S3 스트림 래퍼를 연결하는 데 동일한 문제가있었습니다.

내 마지막 해결책은 mkdir()에 대한 호출을 주석 처리하고 반환 값 Assetic의 DumpCommand를 확인하는 것이 었습니다.

private function doDump(AssetInterface $asset, OutputInterface $stdout) 
{ 
    // ... 

    //if (false === @mkdir($dir, 0777, true)) { 
    // throw new \RuntimeException('Unable to create directory '.$dir); 
    //} 

    // ... 
} 

종속성 관리자를 사용하는 경우 명령을 새 명령 클래스에 복사하고 필요한 줄을 주석 처리하십시오.

경로에 존재하지 않는 모든 디렉토리/리소스가 자동으로 생성됩니다.

예 : 디렉토리에 assets 폴더가 비어 있습니다. s3://bucket-name/assets/css/style.css을 누르면 css 폴더와 style.css 파일이 생성됩니다.