一聚教程网:一个值得你收藏的教程网站

热门教程

laravel框架中环境与缓存使用配置

时间:2022-06-25 00:58:29 编辑:袖梨 来源:一聚教程网

般一个项目的开发需要经历开发,测试,预发布,发布这四个流程。
因此在larave中对这个功能的支持也做的非常好来看代码。laravel默认使用的是production环境,也就是生产环境,那么我们怎么修改呢?
我们找到bootstrap文件夹下面的start.php文件的这几行代码:

 代码如下 复制代码

$env = $app->detectEnvironment(array(
    'local' => array('your-mechine-name'),
));

那么这个该怎么配置呢?
加入我们这个项目的生产域名为:www.111com.net,那么我们在本地开发,我个人习惯可以改为:www.fbbin.dev,那么测试环境可以改为:www.fbbin.test,

 代码如下 复制代码

$env = $app->detectEnvironment(array(
    'local' => array('www.111cn.dev'),
    'test'  => array('www.fbbin.test'),
    'production' => array('www.111com.net'),
 ));

其实后面的数组可以指定多个域名了,这样就很方便的解决了 多个人同时在本地开发但是域名根据自己喜好配置的问题了。
如果你还有其他的开发流程,同样的方法添加就好了。
那么现在环境指定了,我们该怎么为当前的环境之前配置项呢?
我们看到我们的app/config目录下面都是配置项,那么我们只要在当前目录建立一个以当前环境名字命名的文件夹,然后把相关的配置文件写在里面就好了。
比如我们现在的本地的开发环境,那么我们建立文件夹:app/config/local,那么这个里面可以配置我本地的databases.php的数据库配置文件,session.php session的配置,cache缓存的配置,等等,
那么系统在加载配置项的时候,会优先加载我们环境的配置项。
这样,问题搞定了。
如果要获取当前的运行环境,可通过如下代码:

 代码如下 复制代码

app()->enviroment()


laravel框架缓存使用配置

其实从某种意义来说session也是一种缓存技术,为什么这么说,请看下下面分析。
laravel的缓存支持一下驱动”file”, “database”, “apc”, “memcached”, “redis”, “array”,其他的都不说,这里主要说下memcached和redis,
laravel框架你会发现他没有支持memcache缓存,而是memcached缓存,为什么,其实memcached缓存是memcache的一个升级版,相比而言,加入了一个锁的机制,详细可以去问百度。关于memcached的缓存配置,在cache.php文件中可以找到。
这里说下redis,在cache.php中是找不到redis的配置项的,那么在哪里呢?他在databases.php文件中个,laravel把它当作一种DB来配置的。
同样的session,如果你的驱动选择redis的话,他的配置同样的也是在这里选择。

下面是我的配置代码:

 代码如下 复制代码
'redis' => array(
 'cluster' => false,
 'default' => array(
  'host'     => '202.109.72.87',
  'port'     => 6379,
  'database' => 0,
 ),
 'cache' => array(
  'host'     => '202.109.72.87',
  'port'     => 6379,
  'database' => 0,
 ),
),

这里不得不说的一个问题在配置以redis为驱动的缓存服务还是session服务,我们都只能使用default这个配置项目,而不能指定特有的配置项,比如我想给我cache配置cache这个key指定的服务器,session也制定其他的,但是,laravel不支持酱紫(可能是我还不知道怎么弄,如果有大牛晓得了,请赐教,谢谢),那么我们要想我们的缓存服务器用我们指定的cache索引所指定的服务该怎么办呢?我们可以试试laravel的IOC,如下:
方案1:

 代码如下 复制代码

$redisCache = App::make('cache'); // Assumes "redis" set as your cache
$redisCache->setConnection('cache'); // Your redis cache connection
$redisCache->put('testtCacheIndex', 'fbbinValue', 10000);

方案2:

 代码如下 复制代码

$redis = Redis::connection('cache');
$redis->set('fbbin', 'fbbinValue');
var_dump($redis->get('fbbin'))

热门栏目