Php symfony缓存文件系统是否处理同一目录中的ext2 32000文件?

Php symfony缓存文件系统是否处理同一目录中的ext2 32000文件?,php,caching,symfony1,ext2,Php,Caching,Symfony1,Ext2,symfony缓存系统是否处理同一目录中的ext2 32000文件 我有80000个用户,我想缓存他们的配置文件,但symfony缓存系统是否处理ext2限制 我也在为其他将面临同样问题的人发帖。我不能100%确定我的答案是否正确,但在PROJECT/lib/symfony/cache/sfCacheFile.class.php中有一种方法:返回文件路径。似乎对ext2文件系统的限制没有任何保护 但有一个非常简单的解决方案-重写该类: 在PROJECT/apps/APP/config/facto

symfony缓存系统是否处理同一目录中的ext2 32000文件

我有80000个用户,我想缓存他们的配置文件,但symfony缓存系统是否处理ext2限制


我也在为其他将面临同样问题的人发帖。

我不能100%确定我的答案是否正确,但在
PROJECT/lib/symfony/cache/sfCacheFile.class.php中有一种方法:返回文件路径。似乎对
ext2
文件系统的限制没有任何保护

但有一个非常简单的解决方案-重写该类:

  • PROJECT/apps/APP/config/factories.yml
    中设置您自己的缓存类:

    default:
    # Others factories (if any)
    
      view_cache:
        class: myOwnFileCache
        param:
          automatic_cleaning_factor: 0
          cache_dir:                 %SF_TEMPLATE_CACHE_DIR%
          lifetime:                  86400
          prefix:                    %SF_APP_DIR%/template
    
  • 现在创建该类并确保它扩展了
    sfFileCache
    并覆盖
    getFilePath()

    }

  • 清除缓存:
    /symfony cc

  • 现在,您需要32000个以完全相同的两个字母/数字开头的缓存键来压缩文件系统

    # PROJECT/lib/PROJECT/cache/myOwnFileCache.class.php        
    class myOwnFileCache extends sfFileCache {
        protected getFilePath($key) {
            /*
                Convert from: abcdef
                          to: a/b/abcdef
            */
            $key = substr($key, 0, 1) . DIRECTORY_SEPARATOR . substr($key, 1, 1) . DIRECTORY_SEPARATOR . $key;
            return parent::getFilePath($key);
        }