2016-10-09 3 views
1

ZF2에서 ZF3으로 마이그레이션하는 과정에서 필터로 HTMLPurifier를 가져 오려고했습니다. https://github.com/Saeven/Purifier/blob/master/src/Soflomo/Purifier/Module.php젠드 프레임 워크 3, 필터 팩토리가 구성된 서비스에 액세스 할 수없는 컨테이너를 전달 중임

필터를 사용하려고 시도하는 공장이 예상 될 때 호출됩니다

기사는 여기에 내가 필요한 일을 거라고 생각 FilterPluginManager https://zendframework.github.io/zend-filter/writing-filters/

에 필터를 추가하는 방법에 대해 설명합니다 : https://github.com/Saeven/Purifier/blob/master/src/Soflomo/Purifier/Factory/Filter/PurifierFilterFactory.php#L14

하지만 시도 할 때 공장은 사망에 -> 수 ('HTMLPurifierEngine')이 오차 :

Uncaught Zend\ServiceManager\Exception\ServiceNotFoundException: Unable to resolve service "HTMLPurifierEngine" to a factory; are you certain you provided it during configuration? in /Users/Saeven/Documents/Circlical/code/Cloudshare/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:675

재미있는 것은,이 서비스는 확실히 여기에 정의되어 있습니다 : 내가 뭔가를 분명 실종해야 https://github.com/Saeven/Purifier/blob/master/config/module.config.php#L20

. 어쩌면 너무 오래 쳐다 보지도 ...

이 오류를 피하기 위해 모듈을 구성하는 방법을 알고 있습니까? 서비스가 컨테이너에 보이지 않는 이유는 무엇입니까?

감사합니다.

+0

여기에 코드의 주요 부분을 입력하십시오. 읽기 쉽습니다. 더 많은 것, 외부 연결은 끊을 수 있었다 ... –

+0

나는 해결책을 발견했다, 그것은 지금 이해되는 SM 변화의 어둡게 결합이었다. 나는 나중에 해결책을 게시 할 것이다. – Saeven

+0

해결책을 답으로 게시하면 나중에 다른 사람들에게 도움이 될 것입니다 ... –

답변

0

구성 캐싱을 사용할 수 있습니까? 그러한 문제가 발생할 수 있습니다. 구성 파일에서

+0

Hm no config cache ... – Saeven

0

는, 필터는 자신의 항목 input_filters이, 그리고 키 service_manager에 :

'input_filters' => array(
    'factories' => [ 
     'HTMLPurifierEngine' => HtmlPurifierFactory::class, 
    ], 
), 
+0

이것은 필터 자체가 아니라 필터가 필요로하는 서비스의 이름입니다. – Saeven

0

는 ZF3에서 classmaps가 어떻게 사용되는지 어느에 일부 변화가 있었다.

나는 항상 빠져있는 명백한 것 : 당신은 클래스 맵을 생성 했습니까?

는 응용 프로그램의 루트 디렉토리에

$ php composer.phar dump-autoload -o 

을보십시오.