b3it/laravel-memcached-plus

此包已废弃,不再维护。没有建议的替代包。

扩展了内置的Laravel 5 Cache Memcached驱动程序,增加了对持久连接、SASL和Memcached选项的支持。

4.1 2017-05-31 09:53 UTC

README

StyleCI Build Status Total Downloads Latest Stable Version Latest Unstable Version License

摘要

此包适用于Laravel 5.0 - 5.2。从5.3版本开始,我提交给 laravel/framework 的两个PR已合并,因此此包的功能从Laravel 5.3版本起即可直接使用。

与云Memcached服务(如MemCachiermemcached cloud)集成可能需要5.0至5.2版本内置Laravel Cache memcached驱动程序中不可用的Memcached功能。

这些包括

  • SASL认证
  • 自定义选项
  • 持久连接

添加3个新的配置项,此包可以 增强 内置的Laravel 5 Cache memcached驱动程序。可选地,此包还允许使用这些额外的配置项来配置memcached会话。

请继续阅读详细说明 - 您可能需要同时参考示例应用程序

要求

  • = PHP 5.4,支持 ext-memcached

  • 要使用 SASL,必须编译时带有SASL支持。这是在Heroku上的默认设置。

安装

可以在Packagist上作为Composer包安装,您只需执行以下操作:

composer require b3it/laravel-memcached-plus

如果您的本地环境不符合要求,您可能需要添加 ignore-platform-reqs 选项

composer require b3it/laravel-memcached-plus --ignore-platform-reqs

配置

安装完成后,您可以使用此包来增强Laravel的CacheSession服务。

服务提供者

本节讨论Laravel应用程序配置文件 app/config.php

providers 数组中,您需要替换以下内置服务提供者:

  • Illuminate\Cache\CacheServiceProvider
  • Illuminate\Session\SessionServiceProvider(可选)

建议的做法是注释掉内置的服务提供者,并添加此包中的服务提供者

'providers' => [
    ...
    //'Illuminate\Cache\CacheServiceProvider',
    ...
    //'Illuminate\Session\SessionServiceProvider',
    ...

    /*
     * Application Service Providers...
     */
     ...

    'B3IT\MemcachedPlus\CacheServiceProvider',
    'B3IT\MemcachedPlus\SessionServiceProvider', // optional
],

B3IT\MemcachedPlus\SessionServiceProvider 是可选的。只有当您需要时才添加此服务提供者

  • 您想指定一个非默认的memcached存储来用于会话,默认是“memcached”,或者
  • 您想使用此包提供的memcached特性来处理会话

缓存

本节讨论了Laravel的缓存配置文件 config/cache.php

此包为与memcached存储一起使用提供了以下额外的配置项

这些可以在存储配置中使用,如下所示

'stores' => [
    'memcachedstorefoo' => [
        'driver'  => 'memcached',
        'persistent_id' => 'laravel',
        'sasl'       => [
            env('MEMCACHIER_USERNAME'),
            env('MEMCACHIER_PASSWORD')
        ],
        'options'    => [
            Memcached::OPT_NO_BLOCK         => true,
            Memcached::OPT_AUTO_EJECT_HOSTS => true,
            Memcached::OPT_CONNECT_TIMEOUT  => 2000,
            Memcached::OPT_POLL_TIMEOUT     => 2000,
            Memcached::OPT_RETRY_TIMEOUT    => 2,
        ],
        'servers' => [
            [
                'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100
            ],
        ],
    ],
],

请注意,由于此包 增强了Laravel 5内置的memcached缓存驱动程序,驱动程序字符串仍然是memcached

如果您不熟悉如何在Laravel中使用多个缓存存储,您可以通过以下方式从应用程序代码中访问此存储

$value = Cache::store('memcachedstorefoo')->get('key');

会话

本节讨论了Laravel的会话配置文件 config/session.php

如果您使用memcached会话,您将已将driver配置项设置为'memcached'。

如果您已添加上述讨论的B3IT\MemcachedPlus\SessionServiceProvider,则store配置项可用。以下是一个新片段,您可以将其粘贴到会话配置文件中,以了解其使用方法

    /*
    |--------------------------------------------------------------------------
    | Session Cache Store
    |--------------------------------------------------------------------------
    |
    | When using the "apc" or "memcached" session drivers, you may specify a
    | cache store that should be used for these sessions. This value must
    | correspond with one of the application's configured cache stores.
    |
    */

    'store' => null,

要使用前面的memcached 'plus'存储示例与会话一起使用,您可以按以下方式设置

    'store' => 'memcachedstorefoo',

3和4之间的破坏性更改

Memcached选项的配置已更新,以使用Memcached常量而不是字符串常量名称。

session.memcached_store变量已被重命名为session.store

laravel-memcached-plus实战

我创建了一个演示应用,您可以通过它查看此包如何与Laravel 5集成以及如何在Heroku上运行它。

支持

如果您有任何评论或疑问,请告诉我。

谢谢!