3

用於Zend Framework 2應用程序性能優化的must-haves之一是緩存配置。這個想法是將它們合併到一個大的配置文件(或者實際上是兩個文件,例如module-classmap-cache.phpmodule-config-cache.php),這樣配置文件就不需要在每個請求上打開和合並。 (見羅布·艾倫的「Caching your ZF2 merged configuration」的文章在official documentation的信息以及如何使用):如何在Zend Framework 2中緩存內存中的應用程序配置?

application.config.php

return [ 
    'modules' => [ 
     ... 
    ], 
    'module_listener_options' => [ 
     ... 
     'config_cache_enabled' => true, 
     'config_cache_key' => 'app_config', 
     'module_map_cache_enabled' => true, 
     'module_map_cache_key' => 'module_map', 
     'cache_dir' => './data/cache', 
    ], 
]; 

我想多一點,以優化它,並加載從內存中緩存(例如APCu)配置。它是由框架提供的嗎?或者我必須自己寫這個功能嗎?

回答

2

緩存機制在ConfigListenerModuleManager(的write config & read config源)的實現。 正如您在那裏看到的那樣,唯一支持的緩存方法是將緩存的配置寫入文件。

它被實例化作爲DefaultListenerAggregatesource)默認的,其再次在MVC模塊(source)的ModuleManagerFactory硬編碼。

爲了用自己的邏輯來代替這一點,你就必須:

  • 用自己更換ConfigListener(或至少延長各部件)
  • 更改ModuleManagerFactory明確設定在延遲創建之前,在DefaultListenerAggregate上擁有ConfigListener

儘管可行,但並不認爲這是值得的。由於合併的配置文件是一個php文件,它應該由OpCache緩存。 OpCache最終是一個php優化的內存緩存。所以我認爲它會比任何通用內存商店更快。

相關問題