承接 xlabs/resultcachebundle 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

xlabs/resultcachebundle

Composer 安装命令:

composer require xlabs/resultcachebundle

包简介

Doctrine2 Result Cache bundle

README 文档

README

A redis driven result cache driver.

Installation

Install through composer:

php -d memory_limit=-1 composer.phar require xlabs/resultcachebundle

In your AppKernel

public function registerbundles()
{
    return [
    	...
    	...
    	new XLabs\ResultCacheBundle\XLabsResultCacheBundle(),
    ];
}

Configuration sample

Default values are shown below:

# app/config/config.yml
  
x_labs_result_cache:
    redis_settings:
        host: 192.168.5.23
        port: 6379
        database_id: 9
    _key_namespace: 'xlabs:resultcache'
    custom_cache_enabled: (default false)

Also, make sure you ORM definition uses the following parameters for the result_cache driver:

# app/config/config.yml
...
doctrine:
    ...
    orm:
        ...
        result_cache_driver:
            type: service
            id: xlabs_result_cache

Create entity annotations

Whenever the entity manager performs a flush operation on an entity holding this annotations, it will clear the ResultCache key specified.

This is how you would set annotations for a given entity:

<?php

    use XLabs\ResultCacheBundle\Annotations as XLabsResultCache;
    ...
  
    /**
     * @ORM\Entity
     * @ORM\Table(name="myTable")
     * @XLabsResultCache\Clear(onFlush={}, {
     *      @XLabsResultCache\Key(onFlush={"update", "delete"}, type="literal", method="getXLabsResultCacheKeyForItem"),
     *      @XLabsResultCache\Key(onFlush={"insert", "delete"}, type="literal", value="bf_galleries_"),
     *      @XLabsResultCache\Key(onFlush={"insert", "delete"}, type="prefix", method="getXLabsResultCacheKeyForUserGalleries")
     * })
     */
    class myEntity
    {
        ...
    }

onFlush
Values: "insert", "update" and "delete"
Description: Clear cache key when the flush action matches the action listed in this variable. If set under the "Clear" annotation, it will affect all the keys listed below, unless the key has a specific "onFlush" variable set.

type
Values: "literal" | "prefix" | "suffix" | "regex"
Description: the result cache key/s will be removed with the corresponding methods "delete", "deleteByRegex", "deleteByPrefix" or "deleteBySuffix".

value
Value: string matching the result cache key that we want to clear.

method
Value: allows creating a method in the entity that will return the result cache key that we want to clear.

If no "value" nor "method" are set, the resulting result cache clear that would expect to clear would be, following example above, "myentity_", useful for ID specific queries.

If 'custom_cache_enabled' is set to 'true', then Doctrine´s Result Cache is not used, and replaced by a custom cache instead, where the whole query result is serialized and stored, improving performance.

统计信息

  • 总下载量: 781
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 8
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-11-14

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固