Laravel建站05--缓存、时间日期处理包
缓存
Laravel 给多种缓存系统提供丰富而统一的 API,缓存配置信息位于 config/cache.php,在这个文件中你可以为你的应用程序指定默认的缓存驱动,Laravel 支持当前流行的缓存系统,如非常棒的 Memcached 和 Redis 。
Memcached
1、配置
使用 Memcached 驱动需要安装 Memcached PECL 扩展包 。你可以把所有 Memcached 服务器都列在 config/cache.php 这个配置信息文件中。
'memcached' => [
'driver' => 'memcached',
'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
'sasl' => [
env('MEMCACHED_USERNAME'),
env('MEMCACHED_PASSWORD'),
],
'options' => [
// Memcached::OPT_CONNECT_TIMEOUT => 2000,
],
'servers' => [
[
'host' => env('MEMCACHED_HOST', '127.0.0.1'),
'port' => env('MEMCACHED_PORT', 11211),
'weight' => 100,
],
],
],
我用本机的memcached测试,Laravel的cache配置采用了默认配置,PHP代码如上。
2、测试缓存
打开之前写好的ArticelController.php,修改显示文章详情的方法为:
public function show($id)
{
$article = Cache::get('article_'.$id);
if(!$article){
$article = Article::find($id);
Cache::put('article_'.$id, $article, Carbon::now()->addMinutes(30));
}
//return view('article')->withArticle(Article::find($id));
return view('article', ['article' => $article]);
}
还要在在文件中添加缓存和时间日期处理包--Carbon的引用
use Illuminate\Support\Facades\Cache;
use Carbon\Carbon;
先判断是否能从缓存中取到数据,如果没有缓冲,再从数据库里获取。最后把模型对象传递到前台的视图中。
时间日期处理包--Carbon
Carbon – 继承自 PHP DateTime 类的 API 扩展,它使得处理日期和时间更加简单。Laravel 中默认使用的时间处理类就是 Carbon。
由于 Laravel 项目已默认安装了此包,所以不需要用 composer 安装它了。
只需要添加命名空间引用就好了:use Carbon\Carbon;
获取当前时间
可以同 now() 方法获取当前的日期和时间。如果你不指定参数,它会使用 PHP 配置中的时区:
echo Carbon::now(); //2017-05-18 10:21:20
如果你想使用一个不同的时区,你需要传递一个有效的时区作为参数:
// 直接使用字符串
echo Carbon::now('Europe/London'); //2016-10-14 20:21:20
// 或者
echo Carbon::now(new DateTimeZone('Europe/London'));
时间格式本地化
可以在 app/Providers/AppServiceProvider.php 的 boot() 方法中添加下面的代码来设置全局本地化:
public function boot()
{
\Carbon\Carbon::setLocale('zh');
}
这样就可以在前台调用,然后显示中文了。
比如在blade里显示文章创建时间:
$article->updated_at->diffForHumans()
加入 -diffForHumans() 之前,显示的是具体的时间,比如:2017-05-10 02:05:56 。用它之后,就变成 1周前 了。这样感觉很人性化。
更多详细用法,可以参考 Carbon 文档。
文中的源代码可以在我的GitHub上获取到。欢迎交流。
Carbon部分参考:日期及时间处理包 Carbon 在 Laravel 中的简单使用 - Specs' Blog-就爱PHP
Laravel建站05--缓存、时间日期处理包的更多相关文章
- laravel的时间日期处理包Carbon用法
时间日期处理包--Carbon Carbon – 是继承自 PHP DateTime 类的 API 扩展,它使得处理日期和时间更加简单.Laravel 中默认使用的时间处理类就是 Carbon. La ...
- [基础常识]阿里云ecs从购买到环境搭建和建站!!(phpstudy一件包)
首先如何购买ECS?发现有些人购买5G硬盘,我个人认为买硬盘应该购买20以上!这样以后好处理! 进入http://www.aliyun.com/product/ecs/?spm=5176.7189 ...
- Laravel建站02--配置Laravel
Laravel项目的根目录下有.env文件,如果没有可以把.env.example改名为.env 这个文件是配置文件,可以把app_key.数据库.redis缓存等配置信息写在这个文件里. 目前5.4 ...
- Laravel建站01--开发环境部署
内容导航 安装git 安装composer 安装Laravel 既然是开发环境,就需要源代码管理.这里使用git来管理. 一:部署开发环境之前安装git 在 Linux 上安装git 如果你想在 Li ...
- Laravel建站03--建立前台文章列表和文章详情
经过了前面的开发环境搭建和数据库配置.git配置的准备工作以后,现在可以开始动作做点什么了. 先从简单的开始,那就先来个文章列表和详情页吧. 这期间可以学习到路由.建立model.controller ...
- Laravel建站04--建立后台文章管理
路由配置 Route::group(['middleware' => 'auth', 'namespace' => 'Admin', 'prefix' => 'admin'], fu ...
- 仿联想商城laravel实战---6、自建配置文件和缓存(如何读取自己创建的配置文件的信息)
仿联想商城laravel实战---6.自建配置文件和缓存(如何读取自己创建的配置文件的信息) 一.总结 一句话总结: config()及相应的方法 1.前端插件选择好了,后端开发超级省力? 比如多图上 ...
- Java 8新的时间日期库,这二十个案例看完你还学不会算我的!!!
Java对日期,日历及时间的处理一直以来都饱受诟病,尤其是它决定将java.util.Date定义为可修改的以及将SimpleDateFormat实现成非线程安全的.看来Java已经意识到需要为时间及 ...
- (转) Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?
Web 建站技术中,HTML.HTML5.XHTML.CSS.SQL.JavaScript.PHP.ASP.NET.Web Services 是什么? 建站有很多技术,如 HTML.HTML5.XHT ...
随机推荐
- ssh 远程执行绝对路径命令mysqld_multi 报my_print_defaults不存在
通过SSH直接执行远程命令(这种方式会使用Bash的non-interactive + non-login shell模式)找不到命令参考:http://ghoulich.xninja.org/201 ...
- java面试题之final、finalize和finally的区别
finally:finally是一个关键字,与try和catch一起用于异常的处理,finally块一定会执行,无论在try快中是否有发生异常. finalize:finalize方法是在对象被回收之 ...
- [转] Makefile 基础 (6) —— Makefile 使用条件判断
该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客:(最原始版本) http://blog.csdn.net/haoel/article/details/2886 我转自 ...
- PHP分页类(较完美)
<?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $lis ...
- Java面试进阶部分集合
框架基础 反射:反射是Java开发的一类动态相关机制.因为本身Java语言并不是一款动态语言,如果我们想要得到程序动态的效果,因此便引入了反射机制这一概念. 怎么表达反射? 能用反射做什么? PS:某 ...
- iOS开发之手势gesture详解(一)
前言 在iOS中,你可以使用系统内置的手势识别(GestureRecognizer),也可以创建自己的手势.GestureRecognizer将低级别的转换为高级别的执行行为,是你绑定到view的对象 ...
- lunix cat tail more等用法
cat主要有三大功能: 1.一次显示整个文件. $ cat filename 2.从键盘创建一个文件. $ cat > filename 只能创建新文件,不能编辑已有文件. 3.将几 ...
- Django学习笔记(12)——分页功能
这一篇博客记录一下自己学习Django中分页功能的笔记.分页功能在每个网站都是必要的,当页面因需要展示的数据条目过多,导致无法全部显示,这时候就需要采用分页的形式进行展示. 分页在网站随处可见,下面展 ...
- Java 浅析,生成OFD文件
摘要:这几天遇到个需要,需要提供用户下载电子证照,最简单的方法实现:word做了一份模板,利用网页工具转成OFD文件,http://www.yozodcs.com/page/example.html用 ...
- http put/delete方式请求
HttpClient使用Delete方式提交数据 1. http请求主要有以下几种方法来对指定资源做不同操作: HTTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URI指 ...