A Redis bundle for Symfony supporting Predis and PhpRedis

Overview

RedisBundle

Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads Build Status

About

This bundle integrates Predis and PhpRedis into your Symfony 3.4+ application, providing a fast and convenient interface to Redis.

Using the native PhpRedis extension is recommended as it is faster and our main development platform. If the extension is not available and cannot be installed in your environment Predis is considered a safe and portable alternative, and our integration should be functionally identical.

Installation

Use Composer:

composer require snc/redis-bundle

Documentation

Read the documentation in Resources/doc/

License

See LICENSE.

Comments
  • 2.1.5 (lazy loading) somehow breaks set method on session client

    2.1.5 (lazy loading) somehow breaks set method on session client

    Hey guys,

    the lazy-loading introduced with the latest patch somehow seems to break the set method.

    When calling it, the following error pops up:

    Redis::set() expects at most 3 parameters, 4 given
    

    although it gets called with 3 parameters (in a controller):

        private function setRefreshTokenCachedResponse(Request $request, Response $response)
        {
            $redis = $this->container->get('snc_redis.session');
            $redis->set(
                $request->get('refresh_token'),
                $response->getContent(),
                self::REFRESH_TOKEN_RESPONSE_CACHE_LIFETIME
            );
        }
    
    phpredis needs-testing on-hold 
    opened by sawmurai 43
  • (bc) problem with 4.0 redis

    (bc) problem with 4.0 redis

    PHP Redis 4.0 was released 17-03-2018 and.. we have some bc:

    Warning: Declaration of Snc\RedisBundle\Client\Phpredis\Client::append() should be compatible with Redis::append($key, $value)

    Proposition:

    • release new major version for 4.0 php redis
    • in current major version fix composer.json and lock to 3.1.x php redis
    bug phpredis 
    opened by jroszkiewicz 39
  • BC break: zAdd does not support adding multiple members at once

    BC break: zAdd does not support adding multiple members at once

    We notices this after upgrading snc/redis-bundle (2.1.4 => 3.2.1).

    In 2.1.4:

    $this->get('snc_redis.mydb')->zAdd('key', 1, 'item1', 2, 'item2');
    

    Adds both members.

    In 3.2.1, same code only adds the first member.

    opened by umpirsky 33
  • 30 seconds wasted in session locking

    30 seconds wasted in session locking

    Hey,

    having some issues with session locking. Figured out that #132 relates to this. My problem are such things in the logs (and, for sure, seeing the rendering time) before my actual code is running:

    [2015-05-18 10:36:13] snc_redis.INFO: Executing command "SETNX sf9it65cploqnpr3ok88lo7iu8p5.loc[...] 1" [] []
    [2015-05-18 10:36:13] snc_redis.INFO: Executing command "SETNX sf9it65cploqnpr3ok88lo7iu8p5.loc[...] 1" [] []
    ... 100 more of them ...
    [2015-05-18 10:36:44] snc_redis.INFO: Executing command "SETNX sf9it65cploqnpr3ok88lo7iu8p5.loc[...] 1" [] []
    [2015-05-18 10:36:44] snc_redis.INFO: Executing command "SETNX sf9it65cploqnpr3ok88lo7iu8p5.loc[...] 1" [] []
    

    Stack trace is:

    #0  Snc\RedisBundle\Logger\RedisLogger->logCommand() called at [/var/www/core/vendor/snc/redis-bundle/Snc/RedisBundle/Client/Predis/Connection/ConnectionWrapper.php:163]
    #1  Snc\RedisBundle\Client\Predis\Connection\ConnectionWrapper->executeCommand() called at [/var/www/core/vendor/predis/predis/lib/Predis/Connection/PredisCluster.php:213]
    #2  Predis\Connection\PredisCluster->executeCommand() called at [/var/www/core/vendor/predis/predis/lib/Predis/Client.php:246]
    #3  Predis\Client->executeCommand() called at [/var/www/core/vendor/predis/predis/lib/Predis/Client.php:228]
    #4  Predis\Client->__call()
    #5  Predis\Client->setnx() called at [/var/www/core/vendor/snc/redis-bundle/Snc/RedisBundle/Session/Storage/Handler/RedisSessionHandler.php:111]
    #6  Snc\RedisBundle\Session\Storage\Handler\RedisSessionHandler->lockSession() called at [/var/www/core/vendor/snc/redis-bundle/Snc/RedisBundle/Session/Storage/Handler/RedisSessionHandler.php:149]
    #7  Snc\RedisBundle\Session\Storage\Handler\RedisSessionHandler->read() called at [/var/www/core/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Proxy/SessionHandlerProxy.php:69]
    #8  Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy->read()
    #9  session_start() called at [/var/www/core/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php:148]
    #10 Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage->start() called at [/var/www/core/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php:262]
    #11 Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage->getBag() called at [/var/www/core/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Session.php:89]
    #12 Symfony\Component\HttpFoundation\Session\Session->get() called at [/var/www/core/vendor/symfony/symfony/src/Symfony/Component/Security/Http/Firewall/ContextListener.php:76]
    #13 Symfony\Component\Security\Http\Firewall\ContextListener->handle() called at [/var/www/core/vendor/symfony/symfony/src/Symfony/Component/Security/Http/Firewall.php:69]
    #14 Symfony\Component\Security\Http\Firewall->onKernelRequest()
    #15 call_user_func() called at [/var/www/core/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/WrappedListener.php:61]
    #16 Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke()
    #17 call_user_func() called at [/var/www/core/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:164]
    #18 Symfony\Component\EventDispatcher\EventDispatcher->doDispatch() called at [/var/www/core/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:53]
    #19 Symfony\Component\EventDispatcher\EventDispatcher->dispatch() called at [/var/www/core/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php:170]
    #20 Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() called at [/var/www/core/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php:112]
    #21 Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch() called at [/var/www/core/app/bootstrap.php.cache:2997]
    #22 Symfony\Component\HttpKernel\HttpKernel->handleRaw() called at [/var/www/core/app/bootstrap.php.cache:2970]
    #23 Symfony\Component\HttpKernel\HttpKernel->handle() called at [/var/www/core/app/bootstrap.php.cache:3119]
    #24 Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle() called at [/var/www/core/app/bootstrap.php.cache:2368]
    #25 Symfony\Component\HttpKernel\Kernel->handle() called at [/var/www/core/web/app.php:37]
    

    Is there any way to stop this? Sure, I can disable the session locking, but I guess there must be a weird other reason for that. Anyone already stumbled over this?

    Would be happy about some hints ;) Thx in advance!

    Regards Sven

    needs-testing 
    opened by e7o-de 33
  • Add Support for Phpredis\RedisCluster (#453)

    Add Support for Phpredis\RedisCluster (#453)

    This shoudl fix issue #453 with a couple of constraints:

    Added a configuration parameter to switch between RedisCluster implementations (snc_redis.phpredis_clusterclient.class) and based on cluster option in client configuration switch between \Redis and \RedisCluster.

    Snc\RedisBundle\Client\Phpredis\ClientInterface is implemented by both Snc\RedisBundle\Client\Phpredis\Client and Snc\RedisBundle\Client\Phpredis\ClientCluster, but directed node commands are commented out.

    feature phpredis enhancement 
    opened by furester 26
  • [3.x] Build custom Redis client based on the installed extension

    [3.x] Build custom Redis client based on the installed extension

    |Q |A | |--- |--- | |Branch |master| |Bug fix? |no | |New feature? |no | |BC breaks? |no | |Deprecations?|no | |Tests pass? |yes | |Fixed tickets|#399 | |License |MIT | |Doc PR |n/a |

    Fixes #399.

    This PR reverts the changes made at #405 and #487.

    phpredis enhancement 
    opened by phansys 22
  • [Bug] DSN is not interpolated at runtime with environment variable

    [Bug] DSN is not interpolated at runtime with environment variable

    Hello,

    I just upgraded from 2.0.6 to 2.1.0 and my app broke because the DSN was not updated.

    It looks like the issue is similar to https://github.com/snc/SncRedisBundle/issues/302.

    I checked my cache and the value of the config is hard-coded instead of using the env variable.

    Here is my config :

    snc_redis:
        clients:
            default:
                type: predis
                alias: default
                dsn: "%env(REDIS_DSN)%"
        session:
            client: default
            prefix: session
    

    Am I missing something ?

    In the meantime I moved back to 2.0.6 and everything is back to normal.

    Let me know for anything and thanks for your help.

    bug 
    opened by B-Galati 21
  • Create cluster connection correctly for one host

    Create cluster connection correctly for one host

    Fixes #402, #267 (might also fix some other clustering issues when only one dsn is defined)

    If only one dsn is defined when cluster option is passed connection instance class is incorrect (should be Predis\Connection\Aggregate\RedisCluster.

    The problem is that we're passing Predis\Connection\ParametersInterface as first argument to client, but we should pass array instead cause only then Predis\Client::createConnection method will create correct connection class.

    opened by linasm83 19
  • SncRedis doesn't work with runtime environment variables

    SncRedis doesn't work with runtime environment variables

    Currently SncRedis doesn't allow to use the new environment variables, apparently this bundle does something before the envs are setted. So you can't use redis_dsn: "%env(REDIS_DSN)%" because you receive that literal string instead the current env value.

    Info: http://symfony.com/blog/new-in-symfony-3-2-runtime-environment-variables PR: https://github.com/symfony/symfony/pull/19681

    In the PR there is a comment:

    magnusnordlander commented on 20 Aug This is an interesting approach, but it is not as backwards compatible as one would think. There are bundles out there today, which as a part of their extension actually manipulate parameters. SncRedisBundle e.g. splits DSNs in the extension. Passing one of these parameters there will at best cause some kind of syntax error in the bundle, or at worst cause old environment values to be cached.

    opened by luishdez 19
  • Updated Predis to work with 1.*, not 0.8

    Updated Predis to work with 1.*, not 0.8

    I'm not sure if you'll have any use for this or be interested in any of the changes, but these are changes I made to get SncRedisBundle working with Predis 1.0 -- take them or leave them. Tests look to be passing (with two failures that were present before the changes I've made.)

    opened by mattmontgomery 19
  • Add support for PHP 8

    Add support for PHP 8

    This includes upgrading to PHPUnit 9 for PHP 8 support. As PHPUnit 9 only supports PHP >= 7.3, support for older PHP versions is dropped as they can no longer be automatically tested against.

    opened by nicwortel 18
  • Add options to force TLS Version in the connection string

    Add options to force TLS Version in the connection string

    Hi guys, I've been dealing with an issue that is not directly related to this bundle If you want more details https://github.com/phpredis/phpredis/issues/1726 and https://bugs.php.net/bug.php?id=79501

    TL;DR with PHP >= 7.4, tls v1.3 is used by default and seems to result in random frozen connections (Both Predis and PHPRedis sa it's at the php layer) The quick fix in the meanwhile is to force the connection to use tls 1.2, this is achieved by using the following connection string tlsv1.2://my-redis-server:6379 instead of tls://my-redis-server:6379

    After looking at the factories, the change is pretty basic to do Here: https://github.com/snc/SncRedisBundle/blob/master/src/Factory/PhpredisClientFactory.php#L134 And here: https://github.com/snc/SncRedisBundle/blob/master/src/Factory/PredisParametersFactory.php#L49

    But what I am not sure about and why I am creating this issue is to ask your opinion on how to provide this information in the snc bundle config.

    So far I've come up with 2 ideas:

    1. Add an option in the config (Easy and quick to do)
    snc_redis:
        clients:
            default:
                type: phpredis
                dsn: 'rediss://[email protected]:6379'
                options:
                    tls_version: 1.2
    
    1. Add the information in the DSN (Requires extra parsing and "hard" to understand but closer to what is done by the bundle)
    snc_redis:
        clients:
            default:
                type: phpredis
                dsn: 'redissv1.2://[email protected]:6379'
    

    I'm gonna provide a MR for that, I just wanted your opinion first
    On my side I think I'm leaning more towards the 2nd option as it's closer to the reality even if more complex

    I've noticed this issue too: https://github.com/snc/SncRedisBundle/issues/604 which is kind of related without being related
    The TLS version is not an SSL options but part of the URL itself

    enhancement 
    opened by lbassin 10
  • Be able to pass TLS options to predis and phpredis

    Be able to pass TLS options to predis and phpredis

    Hi, it is now needed for this bundle to support passing tls options like verify_peer and ca_file to the client libraries.

    For PHPRedis the options are documented here: https://github.com/phpredis/phpredis/issues/1600#issuecomment-673362758

    And for predis: https://github.com/predis/predis

    enhancement 
    opened by tarjei 0
  • predis cluster support environment variables

    predis cluster support environment variables

    SncRedis config does not support env variables of "json" type, at least for dsn property. Example .env

    REDIS_SENTINELS="[\"redis://redis-sentinel1.dev:26379\", \"redis://redis-sentinel2.dev:26379\", \"redis://redis-sentinel3.dev:26379\"]"
    

    Example config

    snc_redis:
        clients:
            default:
                type: predis
                alias: default
                dsn: '%env(json:REDIS_SENTINELS)%'
    

    PHP warnings

    PHP Warning:  strrpos() expects parameter 1 to be string, array given in /home/app/src/vendor/snc/redis-bundle/DependencyInjection/Configuration/RedisDsn.php on line 172
    PHP Warning:  preg_match() expects parameter 2 to be string, array given in /home/app/src/vendor/snc/redis-bundle/DependencyInjection/Configuration/RedisDsn.php on line 185
    PHP Warning:  preg_match() expects parameter 2 to be string, array given in /home/app/src/vendor/snc/redis-bundle/DependencyInjection/Configuration/RedisDsn.php on line 190
    PHP Warning:  preg_match() expects parameter 2 to be string, array given in /home/app/src/vendor/snc/redis-bundle/DependencyInjection/Configuration/RedisDsn.php on line 203
    PHP Warning:  strpos() expects parameter 1 to be string, array given in /home/app/src/vendor/snc/redis-bundle/DependencyInjection/Configuration/RedisDsn.php on line 212
    

    JSON support would simplify SncRedis config as sentinel dsn count may differ in different enviroments.

    dx predis enhancement clustering 
    opened by mSprunskas 4
Releases(4.5.0)
  • 4.5.0(Dec 31, 2022)

    What's Changed

    • Support predis 2 by @franmomu in https://github.com/snc/SncRedisBundle/pull/686
    • Upgrade psalm to version 5 by @franmomu in https://github.com/snc/SncRedisBundle/pull/687
    • Add Relay\Relay support by @ostrolucky in https://github.com/snc/SncRedisBundle/pull/688
    • Predis: Fix specifying password via options instead of DSN by @ostrolucky in https://github.com/snc/SncRedisBundle/pull/691

    Full Changelog: https://github.com/snc/SncRedisBundle/compare/4.4.2...4.5.0

    Source code(tar.gz)
    Source code(zip)
  • 4.4.2(Dec 16, 2022)

    What's Changed

    • predis: Fix config for replicated setups by @HypeMC in https://github.com/snc/SncRedisBundle/pull/685

    New Contributors

    • @HypeMC made their first contribution in https://github.com/snc/SncRedisBundle/pull/685

    Full Changelog: https://github.com/snc/SncRedisBundle/compare/4.4.1...4.4.2

    Source code(tar.gz)
    Source code(zip)
  • 4.4.1(Dec 10, 2022)

    What's Changed

    • Fix predis compatibility in non-replicated setups by @ostrolucky in https://github.com/snc/SncRedisBundle/commit/9e6b11167fc476287ed1cf4768371ff4487738ef

    Full Changelog: https://github.com/snc/SncRedisBundle/compare/4.4.0...4.4.1

    Source code(tar.gz)
    Source code(zip)
  • 4.4.0(Dec 7, 2022)

    What's Changed

    • Add session locking warning by @mevdschee in https://github.com/snc/SncRedisBundle/pull/682
    • Add phpredis Sentinel support by @ostrolucky in https://github.com/snc/SncRedisBundle/commit/6f654e43ed9042e4ca53496e7a2b109fc6749ae0
    • Fix compatibility with phpredis 6.0 by @ostrolucky in https://github.com/snc/SncRedisBundle/commit/af457cd9d6c237c241a57eb7e5518d6c8f9ed72f)

    Full Changelog: https://github.com/snc/SncRedisBundle/compare/4.3.2...4.4.0

    Source code(tar.gz)
    Source code(zip)
  • 4.3.2(Nov 10, 2022)

    What's Changed

    • Enable usage of username in dsn by @AntoineVallerand in https://github.com/snc/SncRedisBundle/pull/678
    • RedisCallInterceptor: log even in case of failure by @ostrolucky in https://github.com/snc/SncRedisBundle/commit/e7ee8c435a99ef6a914a19d2ef2d2039af5e41c4
    • Make RedisLogger resettable by @ostrolucky in https://github.com/snc/SncRedisBundle/commit/cbbaf9e2b82a221961025f8e1c0c27f2a7e32cfa

    New Contributors

    • @AntoineVallerand made their first contribution in https://github.com/snc/SncRedisBundle/pull/678

    Full Changelog: https://github.com/snc/SncRedisBundle/compare/4.3.1...4.3.2

    Source code(tar.gz)
    Source code(zip)
  • 4.3.1(Oct 28, 2022)

    What's Changed

    • Fix ConnectionWrapper with aggregated connections by @specdrum-agc in https://github.com/snc/SncRedisBundle/pull/675
    • Fix composer constraint that prevents installing predis 2.0 @ostrolucky https://github.com/snc/SncRedisBundle/commit/8d1d72e7ad8cb08fda6e0cf3fa0025a661b6e6e0

    New Contributors

    • @specdrum-agc made their first contribution in https://github.com/snc/SncRedisBundle/pull/675

    Full Changelog: https://github.com/snc/SncRedisBundle/compare/4.3.0...4.3.1

    Source code(tar.gz)
    Source code(zip)
  • 4.2.0(Jun 12, 2022)

    What's Changed

    • Add redis ACL support for phpredis by @mattiabasone in https://github.com/snc/SncRedisBundle/pull/660
    • Remove non UTF-8 chars from Stopwatch section names by @KDederichs in https://github.com/snc/SncRedisBundle/pull/662
    • #661: avoid sending non-utf8 data to Symfony Stopwatch by @Pazns in https://github.com/snc/SncRedisBundle/pull/663
    • Declare conflict with predis 2.0 by @ostrolucky in https://github.com/snc/SncRedisBundle/commit/be8d131e0aed4c60ed0f22e2eab902973982bd03

    New Contributors

    • @mattiabasone made their first contribution in https://github.com/snc/SncRedisBundle/pull/660
    • @Pazns made their first contribution in https://github.com/snc/SncRedisBundle/pull/663

    Full Changelog: https://github.com/snc/SncRedisBundle/compare/4.1.6...4.2.0

    Source code(tar.gz)
    Source code(zip)
  • 4.1.6(Mar 5, 2022)

    What's Changed

    • Fix handling methods with references when logging is enabled with phpredis by @ostrolucky in https://github.com/snc/SncRedisBundle/pull/653

    Full Changelog: https://github.com/snc/SncRedisBundle/compare/4.1.5...4.1.6

    Source code(tar.gz)
    Source code(zip)
  • 4.1.5(Jan 28, 2022)

    What's Changed

    • fix socket connection by @araab in https://github.com/snc/SncRedisBundle/pull/650
    • Fix Predis logging with non-string query command arguments by @ostrolucky in https://github.com/snc/SncRedisBundle/commit/f23d544741df8ff2fe56fa3391f02bedc7725a9f

    New Contributors

    • @araab made their first contribution in https://github.com/snc/SncRedisBundle/pull/650

    Full Changelog: https://github.com/snc/SncRedisBundle/compare/4.1.4...4.1.5

    Source code(tar.gz)
    Source code(zip)
  • 4.1.0(Jan 16, 2022)

    What's Changed

    • Make prefix/suffix interceptors for phpredis logging customizable by @ostrolucky in https://github.com/snc/SncRedisBundle/pull/645

    Full Changelog: https://github.com/snc/SncRedisBundle/compare/4.0.2...4.1.0

    Source code(tar.gz)
    Source code(zip)
  • 4.0.2(Jan 6, 2022)

    What's Changed

    • Fix unix socket connections with recent phpredis versions by @ostrolucky in https://github.com/snc/SncRedisBundle/pull/643

    Full Changelog: https://github.com/snc/SncRedisBundle/compare/4.0.1...4.0.2

    Source code(tar.gz)
    Source code(zip)
  • 4.0(Dec 5, 2021)

    Full Changelog: https://github.com/snc/SncRedisBundle/compare/3.6.0...4.0

    • Support PHP 8.1+ phpredis thanks to autogenerated logging proxies
    • Add new redis:query command which is not limited to just flushall/flushdb like the old ones were
    • Remove deprecated functionality and support of old dependencies, see below

    Check UPGRADE.md file to see how to upgrade your application and see list of removed features, or potentially BC breaking changes.

    Source code(tar.gz)
    Source code(zip)
  • 3.6.0(Nov 30, 2021)

    What's Changed

    • Make param/return types of RedisSessionHandler PHP 8.1 compatible by @ruudk in https://github.com/snc/SncRedisBundle/pull/632
    • Deprecate swiftmailer integration by @ostrolucky in https://github.com/snc/SncRedisBundle/pull/634
    • Deprecate session integration by @ostrolucky in https://github.com/snc/SncRedisBundle/pull/635
    • Deprecate RateLimit class by @ostrolucky in https://github.com/snc/SncRedisBundle/commit/a06fffda9ff9cf4412e75788d8a112bafdc27732
    • Deprecate doctrine integration by @ostrolucky in https://github.com/snc/SncRedisBundle/commit/36092ac67402bb77cff052ed67afbe884367eaa0

    New Contributors

    • @ruudk made their first contribution in https://github.com/snc/SncRedisBundle/pull/632

    Full Changelog: https://github.com/snc/SncRedisBundle/compare/3.5.2...3.6.0

    Source code(tar.gz)
    Source code(zip)
  • 3.5.0(Nov 1, 2021)

    Changelog

    3.5.0 (2021-11-01)

    Full Changelog

    Implemented enhancements:

    • Doctrine Cache 2.x #611
    • Migrate from Travis CI to GitHub Actions #602
    • Function Redis::delete() is deprecated #521
    • Connections not properly closed on Kernel shutdown #400
    • Exception handling if redis is not avaialble #105

    Fixed bugs:

    • The service alias "doctrine.orm.default_metadata_cache" does not exist. #613
    • rPush ignores variadic arguments #612
    • The "snc_redis.default" service or alias has been removed or inlined when the container was compiled. #605

    Closed issues:

    • Deprecated: Function ReflectionType::__toString() #610
    • Test against the next Symfony version (5.3) #601

    Merged pull requests:

    * This Changelog was automatically generated by github_changelog_generator

    Source code(tar.gz)
    Source code(zip)
  • 3.4.1(Oct 14, 2021)

    3.4.1

    Full Changelog

    Fixed bugs:

    • falsy "failed (MOVED)" error logs when using cluster mode (following #416) #466

    Closed issues:

    • Memory leak with logging: true #626
    • SessionHandler configuration deprecation #624
    • Logging in cluster mode works only for first query #615

    Merged pull requests:

    Source code(tar.gz)
    Source code(zip)
  • 3.4.0(May 25, 2021)

  • 3.3.0(Jan 12, 2021)

  • 3.2.4(Nov 7, 2020)

  • 3.2.3(Jun 5, 2020)

  • 3.2.2(Apr 30, 2020)

    Full Changelog

    Source code(tar.gz)
    Source code(zip)
  • 2.1.13(Jan 9, 2020)

  • 3.2.1(Nov 18, 2019)

  • 3.2.0(Nov 14, 2019)

    Full Changelog

    • Add PhpRedis \RedisCluster support (#454) - @furester (af2f8f)

    • Add many DSN support for phpredis cluster (#542) - @B-Galati (e48635)

    • Ensure compatibility with Symfony 4.4 (fix #461) (#543) - @B-Galati (7f4249)

    • [BC BREAK] Deprecate support for redis profiler storage starting from Sf 4.4 (#543) - @B-Galati (7f4249)

      As per Symfony:

      This interface exists for historical reasons. The only supported implementation is FileProfilerStorage. As the profiler must only be used on non-production servers, the file storage is more than enough and no other implementations will ever be supported.

    • Symfony 5 / Doctrine Bundle 2 compat (#544) - @B-Galati (6a7751)

    • Drop support for Sf 4.0/4.1 as they are unmaintained (#544) - @B-Galati (6a7751)

    Source code(tar.gz)
    Source code(zip)
  • 3.1.1(Oct 9, 2019)

    Full Changelog

    • Autoconfigure RedisBaseCommand to add snc_redis.command tag (#528) - @maxhelias (24ddb3)
    • Simplify injection of client locator using ServiceLocatorTagPass (#535) - @rpkamp (97b1ec)
    • Fix check for connection_persistent with phpredis factory (#538) - @starred-gijs (8e692b)
    • Added simple condition to get rid of Warning: Invalid argument supplied for foreach() (#534) - @imper86 (663ac6)
    • No longer use curly brackets for substring (#532) - @rpkamp (c5b6b1)
    • Fix a non-existent service "snc_redis.phpredis.monolog" (#531) - @phakpoom (58fd82)
    • Fix C&P error in Phpredis Client Proxy Class (#526) - @deegital (fef7a3)
    • Add tests for #538 and #534 - @B-Galati (a713f0)
    Source code(tar.gz)
    Source code(zip)
  • 2.1.12(Oct 9, 2019)

  • 3.1.0(Aug 1, 2019)

  • 2.1.11(Jul 31, 2019)

  • 3.0.0(Jul 28, 2019)

    Full Changelog

    See UPDATE.md to know how to upgrade from v2 to v3

    • Remove single php 7.3 from travis
    • Bump predis minimum version to 1.1
    • Add 4.3-dev and 4.4-dev symfony version to CI
    • Bump php minimum version to 7.1.3 (Same as Symfony 4)
    • fix #249 - fix session handler lock key prefix (#503)
    • Fix Swiftmailer version in requirements
    • Fix: Explicitly configure Travis build matrix (#474)
    • Supply name for new TreeBuilder instead of calling root method (#471)
    • Enhancement: Add note about usage with symfony/web-profiler-bundle (#470)
    • Fix: No need to verify whether hard dependency is not null (#469)
    • Enable Lazy service for phpredis (#440)
    • Use RedisDsn to build connection options for env based config (#439)
    • Fix support for DSN env variable with phpredis (#432)
    • fix #182 token serialization while lock remove (#437)
    • fix #419: Create a service locator for clients to be used in the commands. (#433)
    • Create cluster connection correctly for one host (#416)
    • Fix support for Heroku style REDIS_URL env variables (#413)
    • Use destructor to close session (partially reverted #348) (#412)
    • Add Serialization option (#411)
    • Remove ancient logging facilities
    • Properly detect Swiftmailer install
    • Check that Doctrine cache configs reference an object manager
    • Fix predis logging using symfony cache component
    • Make alias configuration default to client name
    • Command executions should be logged as DEBUG instead of INFO. In systems where INFO is being used to log informative messages like 'user logged in'.A loop with redis for e.g. in a background-process will pollute the logs extremely.
    • Update docs about private services
    • Make all bundle services private
    • Improve DX when dependencies are missing
    • Add PHPUnit 7 support and fix sample config for Symfony 3/4
    • Add session fixation note in the update notes
    • Default 7.1/7.2 builds use symfony 4.0 so force 3.4 instead of building twice with 4.0
    • Implement new Symfony 3.4+ session handler to gain session fixation protection and avoid unnecessary writes
    Source code(tar.gz)
    Source code(zip)
  • 2.1.10(Jul 28, 2019)

    Full Changelog

    • Wrap Parameters in array when using replication - fix #381 #516 (duxet)
    • Execute flushdb/flushall in all nodes of cluster #514 (peter-gribanov)
    • Use semver for PHP version at composer.json, added support for PHP 7.3 at Travis #508 (phansys)
    • Update method signatures in Client in order to respect its parent #507 (phansys)
    • Leverage "options.parameters" config in PhpredisClientFactory::create\(\) #505 (phansys)
    • fix #249 - fix session handler lock key prefix #503 (B-Galati)
    • fix #383 - deprecates redis service alias in favor of 'snc_redis.{alias}' #501 (B-Galati)
    Source code(tar.gz)
    Source code(zip)
📐 Symfony Bundle to generate database diagrams

Doctrine Diagram Bundle ?? Symfony Bundle to generate database diagrams.

Jawira Portugal 10 Jan 8, 2023
A Redis based, fully automated and scalable database cache layer for Laravel

Lada Cache A Redis based, fully automated and scalable database cache layer for Laravel Contributors wanted! Have a look at the open issues and send m

Matt 501 Dec 30, 2022
This is raw connection between redis server and django python app

Django_Redis This repository contains the code for this blogpost. Running the Application Clone the repository git clone https://github.com/xxl4tomxu9

Tom Xu 1 Sep 15, 2022
Поддержка очередей Redis (и на RabbitMq, и на Filesystem, и через DBAL) в Битриксе

Модуль для Битрикса, организующий работу с очередями через Redis (и не только) Поддерживаемый транспорт: Redis RabbitMq Filesystem DBAL Установка comp

Fedy 4 Aug 20, 2021
Async Redis client implementation, built on top of ReactPHP.

clue/reactphp-redis Async Redis client implementation, built on top of ReactPHP. Redis is an open source, advanced, in-memory key-value database. It o

Christian Lück 240 Dec 20, 2022
a distributed-redis-lock implementation for hyperf2.*

hyperf-redis-lock English | 中文 an easy redis-based distributed-lock implementation for hyperf 2.*。 This extension features distributed-lock includes b

lysice 11 Nov 8, 2022
The query filter bundle allows you to filter data from QueryBuilder and the Database

The query filter bundle allows you to filter data from QueryBuilder and the Database. you can filter multiple columns at the same time and also you can filter relation fields with two-level deep and without any join in your query builder.

Milad Ghofrani 0 Apr 8, 2022
The query sorting bundle allows you to sort data from QueryBuilder and the Database

The query sorting bundle allows you to sort data from QueryBuilder and the Database. you can sort multiple columns at the same time and also you can sort relation fields with two-level deep and without any join in your query builder.

Bugloos 12 Oct 6, 2022
A Symfony application for managing and automating regular backups of MySQL databases.

DbSaver DbSaver is an application written by Bastien LOUGHIN allowing you to make automatic daily backups (and manual backups) for your MySQL database

Bastien 35 Nov 11, 2022
Symfony 5 PHP 8 DDD CQRS Backend POC

Book Shop A POC for DDD and CQRS applications using Symfony as framework and running with php8 User Stories Come store manager voglio aggiungere/modif

Patrick Luca Fazzi 15 Sep 23, 2022
Symfony 5.2 + api platform project with ELK stack + elastic FileBeats for the log management. All running in 7 docker containers: nginx, php 8, mysql, elastic search, logstash, kibana, fileBeats.

Symfony with ELK and Elastic FileBeats Stack Prerequisites: Make sure that docker and docker-compose are installed in your machine and available for y

null 13 May 20, 2022
Provides integration for Doctrine with various Symfony components.

Doctrine Bridge The Doctrine bridge provides integration for Doctrine with various Symfony components. Resources Contributing Report issues and send P

Symfony 3k Dec 23, 2022
TO DO LIST WITH LOGIN AND SIGN UP and LOGOUT using PHP and MySQL please do edit the _dbconnect.php before viewing the website.

TO-DO-LIST-WITH-LOGIN-AND-SIGN-UP TO DO LIST WITH LOGIN AND SIGN UP and LOGOUT using PHP and MySQL please do edit the _dbconnect.php before viewing th

Aniket Singh 2 Sep 28, 2021
MOP is a php query handling and manipulation library providing easy and reliable way to manipulate query and get result in a fastest way. ( WEBSITE VERSION )

Mysql Optimizer mysql optimizer also known as MOP is a php query handling and manipulation library providing easy and reliable way to manipulate query

null 3 Feb 14, 2022
phpMyFAQ - Open Source FAQ web application for PHP and MySQL, PostgreSQL and other databases

phpMyFAQ 3.1 What is phpMyFAQ? phpMyFAQ is a multilingual, completely database-driven FAQ-system. It supports various databases to store all data, PHP

Thorsten Rinne 547 Dec 27, 2022
Connect and work with MySQL/MariaDB database through MySQLi in PHP. This is an introductory project, If you need a simple and straightforward example that takes you straight to the point, you can check out these examples.

First MySQLi PHP Connect and work with MySQL/MariaDB database through MySQLi in PHP. The above exercises are designed for students. This is an introdu

Max Base 4 Feb 22, 2022
Online Navaratri Anjali and Bhog booking system. admin and user side.

Online-Navaratri-booking-php-project This online navaratri booking system integrate with razorpay and written on PHP, html and javascript. User PAGE U

Narayan Pote 1 Nov 19, 2021
Staggered import of large and very large MySQL Dumps even through the web servers with hard runtime limit and those in safe mode.

Staggered import of large and very large MySQL Dumps (like phpMyAdmin dumps) even through the web servers with hard runtime limit and those in safe mode. | Persian Translation Version

Amir Shokri 5 Jan 8, 2022
Clean up your Magento database by removing orphaned, unused and wrongly added attribute, attribute values and settings (for M2).

Magento 2 EAV Cleaner Console Command Purpose of this project is to check for different flaws that can occur due to EAV and provide cleanup functions.

FireGento e. V. - Hackathons 41 Dec 14, 2022