1:找到这个文件:
Laravel/vendor/laravel/framework/src/Illuminate/Session/SessionManager.php
这是session的一个管理器文件。
我们增加以下代码:
代码如下 | 复制代码 |
/** |
这个主要是正佳一个memcahce的缓存支持,
我们知道在laravel中个,memcahce的驱动逻辑很多都是走的是cache的驱动逻辑实现的,那么接下来我们就要修改cache这块了
2:找到文件:
Laravel/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php
在该文件中增加以下代码:
代码如下 | 复制代码 |
/** $memcache = $this->app['memcache.connector']->connect($servers); return $this->repository(new MemcacheStore($memcache, $this->getPrefix())); |
其实session的memcahce最终的驱动走向还是走这个方法的,那么我们在这个方法中看到了”$this->app['memcache.connector']->”这个代码,
那么这连接器又是在哪里存储进app这个属性里面的呢?
它其实是在我们启动app时,版定相关的serviceProvider的时候注册进去的,那么接下来我们找到文件:
Laravel/vendor/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php
修改如下:
代码如下 | 复制代码 |
/** $this->app['memcached.connector'] = $this->app->share(function() $this->registerCommands(); |
我们看到这个闭包函数中返回了MemcacheContector的对象,那么这个class怎么弄呢?我们创建个吧
文件地址:Laravel/vendor/laravel/framework/src/Illuminate/Cache/MemcacheConnector.php
文件代码如下:其实是拿MemcachedContector的代码改的
代码如下 | 复制代码 |
use Memcache; class MemcacheConnector { /** // For each server in the array, we'll just extract the configuration and add if ($memcache->getVersion() === false) return $memcache; /** |
那么按照第二步的流程这个文件会执行connect的方法,执行完成之后返回一个Memcache的对象,
这时候第二步那里根据这边来创建了一个MemcacheStore的存储器,那么这个文件也是需要我们创建,很简单,拿一份memcachedSrote改一下就好了。
文件地址:Laravel/vendor/laravel/framework/src/Illuminate/Cache/MemcacheStore.php
拷贝过来之后我们要改以下几个地方:
1:应用的类名:
代码如下 | 复制代码 |
use Memcache; class MemcacheStore implements StoreInterface { |
构造函数的类型处:
代码如下 | 复制代码 |
public function __construct(Memcache $memcache, $prefix = '') { $this->memcache = $memcache; $this->prefix = strlen($prefix) > 0 ? $prefix.':' : ''; } |
get方法的修改,我们直接返回值就可以了。
代码如下 | 复制代码 |
/** * Retrieve an item from the cache by key. * * @param string $key * @return mixed */ public function get($key) { return $this->memcache->get($this->prefix.$key); } |
put方法要修改下:
代码如下 | 复制代码 |
/** $this->memcache->set($this->prefix.$key, $value, $compress, $minutes * 60); |
这样子就基本改完了。
那么我么在用cache和session的时候就可以使用memcahe作为驱动了,那么这个memcache的配置信息怎么办呢?
还是跟memcached的配置一样,在cache.php的memcached索引中配置即可。
这里说明下,上篇文章中说到的关于redis无法使用指定的服务器的问题,实际上在cache和session.php的配置文件中,都有一个connection的索引
配置项,那么只要在这里指定就可以了,比如:connection=>session,就说明是用database.php的redis的session这个key指定的配置信息了。
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔