IT

PHP에서 WSDL 캐시를 어떻게 지울 수 있습니까?

lottoking 2020. 9. 15. 08:00
반응형

PHP에서 WSDL 캐시를 어떻게 지울 수 있습니까?


를 통해 php_info()WSDL에 캐시가 유지되는 경우 ( /tmp이 WSDL로 시작하는 모든 파일을 삭제하는 것이 안전 경우),하지만 난 반드시 알 수 있습니다.

네, 해야 우리 에서 불과 삭제 모든 것을 할 수있을 /tmp,하지만 난 어떤 모든 WSDL 파일을 삭제하면이 영향을 수 밖에 모르겠어요 .


WSDL 캐시 파일을 신뢰할 수 있습니다. 다음을 사용하십시오.

ini_set("soap.wsdl_cache_enabled", 0);

또는 동적으로 :

$client = new SoapClient('http://somewhere.com/?wsdl', array('cache_wsdl' => WSDL_CACHE_NONE) );

서버의 / tmp 폴더에있는 모든 wsdl * 파일을 제거하십시오.

WSDL 파일은 php.ini에 정의 된 모든 캐시 파일의 기본 위치에 캐시가됩니다. 세션 파일과 동일한 위치.


wsdl URL에서 캐시 버스터를 사용하는 것이 좋습니다.

우리 앱에서는 wsdl URL에 SVN Revision ID를 사용하는 클라이언트가 구조 변경을 즉시 알 수 있습니다. 이것은 우리 앱에서 작동합니다. 왜냐하면 서버 측을 설명 할 때마다 그에 따라 클라이언트도 조정해야하기 때문입니다.

$client = new SoapClient('http://somewhere.com/?wsdl&rev=$Revision$');

svn이 지정해야합니다. 모든 리포지토리에서 기본적으로 활성화되어 있습니다.

두 구성 요소 (서버, 클라이언트)에 대한 책임이있는 다른 VN을 사용하지 않는 경우 wsdl URL에서 캐시 버스터로 시스템을 표시 할 수 있습니다.


코드를 이미 배포했거나 구성을 설명 수없는 경우 wsdl에서 모든 임시 파일을 제거 할 수 있습니다.

rm /tmp/wsdl-*

문서화의 자료 :

나는 지금 (2014)이 모든 가치 있고 올바른 접근 방식 중에서 오직 하나만이 말하는 것을 관찰했습니다. 서버의 WSDL에 기능을 추가로 설치 클라이언트가 새 기능을 인식하지.

  • WSDL_CACHE_NONE참조 변수를 추가 해도 도움이되지 않습니다.
  • 캐시 버스터를 추가해도 도움이되지 않습니다.
  • soap.wsdl_cache_enabledPHP ini 설정 이 도움이되었습니다.

나는 그것이 세 가지 모두의 조합인지, 또는 일부 기능이 끔찍하게 구현되어 무작위로 쓸모없는 상태가 있는지 여부 또는 이해되지 않은 기능 계층이 확실하지 않습니다.

따라서 마지막으로 문제를 해결해야합니다.


php.ini파일을 편집 soap.wsdl_cache_enabled하고 값을 검색하여 설정하십시오.0

[soap]
; Enables or disables WSDL caching feature.
; http://php.net/soap.wsdl-cache-enabled
soap.wsdl_cache_enabled=0

참고 URL : https://stackoverflow.com/questions/303488/in-php-how-can-you-clear-a-wsdl-cache

반응형