1

私はちょうどZF2で作業を始めました...私は初期化cachesessionて設定ファイルでそれをアプリケーション(どこでも)でサービスマネージャーを使用してまたは...私はロックなしで何時間もGoogleを検索しています.. 。ドキュメントで有用なものを見つけることができませんでした...

module.config.php(アプリケーションモジュール)でこれを試しました:

'service_manager' => array(
        'factories' => array(
            'cache' => '\Zend\Cache\StorageFactory',
        ),
    ),
    'cache' => array(
        'storage' => array(
            'adapter' => 'Filesystem',
            'options' => array(
                'cache_dir' => __DIR__ . '/../../../data/cache'
            ),
        ),
        'plugins' => array('WriteControl', 'IgnoreUserAbort'),
        'options' => array(
            'removeOnFailure' => true,
            'exitOnAbort' => true,
            'ttl' => 100
        ),
    ),

このエラーが発生しました:While attempting to create cache(alias: cache) an invalid factory was registered for this instance type. 有効なファクトリは何ですか?だから誰かがここで私を助けることができますか?戦車...

4

2 に答える 2

1

Zend\Cache\StorageFactory実装されていないため、代わりにファクトリとしてクロージャを使用してくださいZend\ServiceManager\FactoryInterface

'service_manager' => array(
    'factories' => array(
        'cache' => function () {
            return Zend\Cache\StorageFactory::factory(array(
                'storage' => array(
                    'adapter' => 'Filesystem',
                    'options' => array(
                        'cache_dir' => __DIR__ . '/../../../data/cache',
                        'ttl' => 100
                    ),
                ),
                'plugins' => array(
                    'IgnoreUserAbort' => array(
                        'exitOnAbort' => true
                    ),
                ),
            ));
        },
    ),
)

ところで。キャッシュ構成をクリーンアップし、プラグインWriteControlとオプションremoveOnFailureをどこから取得しますか?

于 2012-11-21T21:27:32.360 に答える
0

私は同じエラー名でGoogleからこのトピックに来ましたが、明らかに異なる理由があります。エラーは、ファイルが見つからないというエラーが原因である可能性があります。このエラーが発生した場合は、構成レコードを確認してください

'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                ),
            ),

必要なファイル(私の場合はマッパー)が上位のルールに従ってディレクトリにあることを確認してください。

于 2013-05-24T07:42:17.090 に答える