1

ZF2 から ZF3 への移行の過程で、HTMLPurifier をフィルターとして搭載しようとしていました。

ここの記事では、FilterPluginManager にフィルターを追加する方法について説明してい ます https://zendframework.github.io/zend-filter/writing-filters/

私は必要なことをしたと思った: https://github.com/Saeven/Purifier/blob/master/src/Soflomo/Purifier/Module.php

フィルターを使用しようとすると、期待どおりにファクトリが呼び出されます: https://github.com/Saeven/Purifier/blob/master/src/Soflomo/Purifier/Factory/Filter/PurifierFilterFactory.php#L14

しかし、ファクトリは、次のエラーで ->get('HTMLPurifierEngine') を試行すると停止します:

Uncaught Zend\ServiceManager\Exception\ServiceNotFoundException: サービス "HTMLPurifierEngine" をファクトリに解決できません。構成中にそれを提供したことは確かですか? /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

明らかな何かが欠けているに違いありません。じっと見つめすぎたのかな…

このエラーを回避するためにモジュールを構成する方法を知っていますか? サービスがコンテナーに表示されないのはなぜですか?

ありがとう!

4

3 に答える 3

0

ZF3 では、どのクラスマップがどのように使用されるかに関して、いくつかの変更がありました。

私がいつも見逃していた明らかなことは、クラスマップを生成しましたか?

試す

$ php composer.phar dump-autoload -o

アプリケーションのルート ディレクトリにあります。

于 2016-10-10T19:17:06.007 に答える
0

構成キャッシュを有効にしていますか? このような問題を引き起こす可能性があります。

于 2016-10-09T19:17:23.270 に答える
0

構成ファイルでは、フィルターにはキーinput_filtersではなく、独自のエントリがあります。service_manager

'input_filters' => array(
    'factories' => [
        'HTMLPurifierEngine' => HtmlPurifierFactory::class,
    ],
),
于 2016-10-10T07:57:22.477 に答える