Symfony에서 WebDAV 디렉토리를 관리하고 파일을 읽고 쓰는 방법을 다시 구현할 수 있기를 원합니다. 그렇게하기 위해 SabreDAV를 발견했습니다. SabreDAV는 그 자체로 필요한 모든 기본 클래스가있는 프레임 워크입니다.Symfony의 응답 시스템이 있거나없는 다른 동작
내 문제는 SabreDAV 만 사용하여 WebDAV 서버를 실행하는 것은 쉽지만 Symfony를 사용할 때는 잘 작동하지 않습니다.
심포니없이, 그것은 아래로 비등 :
$ 서버 = 새로운 DAV의 \ 서버 ($ rootDirectory);
$ server-> exec();
그리고 cadaver를 사용하여 내 디렉토리에 액세스 할 수 있습니다. 여기
더보기 : http://code.google.com/p/sabredav/wiki/GettingStarted
내가 사용 심포니 내 컨트롤러에서 동일한 작업을 수행하려고 :
반환 새로운 응답 ($ 서버 ->를 간부 인());
그러나 어떤 이유로 cadaver는 폴더에 대한 액세스 권한이 없습니다. Symfony에서 응답이 작동하는 방식에 대해 뭔가 빠져있는 것 같지만, 뭐라 구요? SabreDAV는 자체의 HTTP 요청 및 응답 시스템을 사용하지만 Symfony가 $ _SERVER와 같은 초 글로벌 변수를 혼란에 빠뜨리지 않는다면 문제가되지 않습니다. 심포니의 요청과 응답에 대한
: http://symfony.com/doc/current/book/http_fundamentals.html#requests-and-responses-in-symfony 다음
내가 무슨 짓을했는지; 그것은 조금 느린 더 나은 방법이 있어야합니다,하지만 난 그 순간에 그와 함께 할 수 있도록합니다 : Controller.php을 :
이$path=(__DIR__.'/../../../../web/public/');
$path=realpath($path);
$publicDir= new \MyClasses\FS\MyDirectory($path);
$server = new \Sabre\DAV\Server($publicDir);
$server->setBaseUri('/Symfony/web/app_dev.php/');
{
$SyRequest = Request::createFromGlobals();
$_server=$SyRequest->server->all();
$_post=$SyRequest->request->all();
}
{
$SaRequest=new \MyClasses\HTTP\Request($_server,$_post);
$resourceStream=false;
$SaRequest->setBody($SyRequest->getContent($resourceStream),$resourceStream);
}
{
$server->httpRequest=$SaRequest;
$SaResponse=new \MyClasses\HTTP\Response();
$server->httpResponse=$SaResponse;
$server->exec();
}
{
$content=ob_get_clean();
}
{
$SyResponse=new Response($content,http_response_code(),headers_list());
}
return $SyResponse;
감사합니다. 이미 시도했으나 상태 코드가 누락되었습니다. 그런데 SabreDAV에 감사드립니다. – MrRobinson